2

我正在编写 CDK 来创建我漂亮的Cloudwatch 仪表板我想出了如何使用 Lambda 函数创建带有指标的小部件。但我找不到为 Dynamodb 表创建指标的方法。

Lambda 函数有自己的指标属性

lambdaFunction.metricErrors()
lambdaFunction.metricInvocations()

因此,我可以将 lambdaFunction 的指标添加到我的 Cloudwatch 仪表板 const dashboard = new Dashboard(this, 'Dashboard', { dashboardName: 'ImageMetadataServiceCloudWatch' })

const widget = new cloudwatch.GraphWidget({
    title: title,
    left: [
        lambdaFunction.metricErrors(),
        lambdaFunction.metricInvocations()
    ],
    right: [
        lambdaFunction.metricDuration()
    ]
});

dashboard.add(widget);

但我不知道获取 Dynamodb 表的指标。

4

2 回答 2

2

这是答案。祝未来的 CDK 用户好运,欢迎来到 CDK 世界。

private metricForDynamoDBTable(table: dynamodb.Table, metricName: string, options: cloudwatch.MetricOptions = { }): cloudwatch.Metric {
    return new cloudwatch.Metric({
        metricName,
        namespace: 'AWS/DynamoDB',
        dimensions: {
          TableName: table.tableName
        },
        unit: cloudwatch.Unit.COUNT,
        label: metricName,
        ...options
    });
}
于 2019-07-27T14:46:37.807 回答
0

在此处发布用于创建仪表板的 python 示例,因为互联网上使用 Python 的 CDK 资源并不多:

    config_table_dashboard = aws_cloudwatch.Dashboard(self, "id", dashboard_name="provisionedthroughtput")
    dynamodb_metrics = []
    dynamodb_WCU_throughput = aws_cloudwatch.Metric(
        metric_name="ConsumedWriteCapacityUnits",
        namespace="AWS/DynamoDB",
        dimensions={"TableName": "table-name"},
        statistic="Average",
        unit=aws_cloudwatch.Unit.COUNT,
        period=core.Duration.minutes(amount=5))
    dynamodb_metrics.append(dynamodb_WCU_throughput)
    config_table_dashboard.add_widgets(aws_cloudwatch.GraphWidget(title="Dynamodb table provision", left=dynamodb_metrics))
于 2020-12-18T05:28:30.450 回答