【发布时间】:2022-11-11 00:24:03
【问题描述】:
我正在修改https://github.com/cdk-patterns/serverless/tree/main/the-eventbridge-etl/typescript 的示例,因为我想将仪表板小部件添加到显示 Fargate vCPU 使用情况的 CloudFormation 堆栈中。我已经能够升级应用程序以使用 CDK v2,并且已确认部署/功能。但是,我无法让仪表板中的 vCPU 小部件显示任何数据。
如果我从 AWS CloudWatch 的 Source 字段中手动配置小部件,查询如下所示:
{
"metrics": [
[ { "expression": "SELECT COUNT(ResourceCount) FROM SCHEMA(\"AWS/Usage\", Class,Resource,Service,Type) WHERE Service = 'Fargate' AND Resource = 'vCPU'", "label": "Query1", "id": "q1" } ],
[ "AWS/Usage", "ResourceCount", "Service", "Fargate", "Type", "Resource", { "id": "m1" } ]
],
"view": "timeSeries",
"title": "ExtractECSJob",
"region": "us-west-2",
"timezone": "Local",
"stat": "Sum",
"period": 300
}
但是,当我尝试使用 CDK 时,使用以下 TypeScript 代码:
const extractECSWidget = new GraphWidget({
title: "ExtractECSJob",
left: [
new Metric({
namespace: "AWS/Usage",
metricName: "ResourceCount",
statistic: "Sum",
period: Duration.seconds(300),
dimensionsMap: {
"Service": "Fargate",
"Type": "Resource",
"Resource": "vCPU"
}
})
]
});
这不会转化为上述内容,并且此小部件中未显示任何信息。新源如下所示:
{
"view": "timeSeries",
"title": "ExtractECSJob",
"region": "us-west-2",
"metrics": [
[ "AWS/Usage", "ResourceCount", "Resource", "vCPU", "Service", "Fargate", "Type", "Resource", { "stat": "Sum" } ]
],
"period": 300
}
如何将上述指标源定义映射到 CDK 源构造?
我尝试使用 MathExpression 但使用以下内容:
let metrics = new MathExpression({
expression: "SELECT COUNT('metricName') FROM SCHEMA('\"AWS/Usage\"', 'Class','Resource','Service','Type') WHERE Service = 'Fargate' AND Resource = 'vCPU'",
usingMetrics: {}
})
const extractECSWidget = new GraphWidget({
title: "ExtractECSJob",
left: [
metrics
]
});
我在cdk diff 期间收到警告:
[Warning at /EventbridgeEtlStack/EventBridgeETLDashboard] Math expression 'SELECT COUNT(metricName) FROM SCHEMA($namespace, Class,Resource,Service,Type) WHERE Service = 'Fargate' AND Resource = 'vCPU'' references unknown identifiers: metricName, namespace, lass, esource, ervice, ype, ervice, argate, esource, vCPU. Please add them to the 'usingMetrics' map.
我应该在 usingMetrics 地图中添加什么?任何帮助表示赞赏。
【问题讨论】:
-
This does not translate to the above- 它翻译成什么?
标签: amazon-cloudwatch aws-cdk aws-fargate aws-cdk-typescript