如何将CloudWatch Metrics Insight查询转为CDK Metric(Fargate vCPU)
如何用CDK实现CloudWatch中Fargate vCPU使用率的查询仪表盘?
我正在修改一个Serverless EventBridge ETL示例,已升级到CDK v2,部署和功能验证都正常,但新增的CloudWatch仪表盘组件无法显示Fargate vCPU使用率数据。
手动配置的CloudWatch查询Source
手动配置时,能正常显示数据的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代码及问题
我用以下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" } }) ] });
但生成的Source和手动配置不符,导致无数据显示,生成的Source如下:
{ "view": "timeSeries", "title": "ExtractECSJob", "region": "us-west-2", "metrics": [ [ "AWS/Usage", "ResourceCount", "Resource", "vCPU", "Service", "Fargate", "Type", "Resource", { "stat": "Sum" } ] ], "period": 300 }
尝试MathExpression的错误
我尝试用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.
提问
如何将手动的metrics source定义映射到CDK构造?usingMetrics中应该配置什么内容?
内容的提问来源于stack exchange,提问作者LNI
相关产品推荐
相关产品推荐

