这是 AWS CDK v2 开发者指南。较旧的 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 CloudWatch 闹铃
使用 aws-cloudwatch 软件包设置亚马逊指标 CloudWatch 警报。 CloudWatch 您可以使用预定义的指标或创建自己的指标。
使用现有指标
许 AWS 多 Construct Library 模块允许您通过将指标名称传递给具有指标的对象实例上的便捷方法来对现有指标设置警报。例如,给定一个 Amazon SQS 队列,你可以ApproximateNumberOfMessagesVisible从队列的 met ric () 方法中获取指标:
- TypeScript
-
const metric = queue.metric("ApproximateNumberOfMessagesVisible");
- JavaScript
-
const metric = queue.metric("ApproximateNumberOfMessagesVisible");
- Python
-
metric = queue.metric("ApproximateNumberOfMessagesVisible")
- Java
-
Metric metric = queue.metric("ApproximateNumberOfMessagesVisible");
- C#
-
var metric = queue.Metric("ApproximateNumberOfMessagesVisible");
创建自己的指标
按如下方式创建您自己的指标,其中命名空间值应类似SQS于 Amazon SQS 队列的 AWS/。您还需要指定指标的名称和维度:
- TypeScript
-
const metric = new cloudwatch.Metric({
namespace: 'MyNamespace',
metricName: 'MyMetric',
dimensionsMap: { MyDimension: 'MyDimensionValue' }
});
- JavaScript
-
const metric = new cloudwatch.Metric({
namespace: 'MyNamespace',
metricName: 'MyMetric',
dimensionsMap: { MyDimension: 'MyDimensionValue' }
});
- Python
-
metric = cloudwatch.Metric(
namespace="MyNamespace",
metric_name="MyMetric",
dimensionsMap=dict(MyDimension="MyDimensionValue")
)
- Java
-
Metric metric = Metric.Builder.create()
.namespace("MyNamespace")
.metricName("MyMetric")
.dimensionsMap(java.util.Map.of( // Java 9 or later
"MyDimension", "MyDimensionValue"))
.build();
- C#
-
var metric = new Metric(this, "Metric", new MetricProps
{
Namespace = "MyNamespace",
MetricName = "MyMetric",
Dimensions = new Dictionary<string, object>
{
{ "MyDimension", "MyDimensionValue" }
}
});
创建警报
有了现有指标或您定义的指标后,就可以创建警报。在此示例中,在过去三个评估周期中的两个评估周期中,当您的指标超过 100 时,就会发出警报。您可以通过酒店使用比较,例如在警报中使用小于。comparisonOperator
G reater-than-or-equal-to 是 AWS CDK 默认值,因此我们不需要指定它。
- TypeScript
-
const alarm = new cloudwatch.Alarm(this, 'Alarm', {
metric: metric,
threshold: 100,
evaluationPeriods: 3,
datapointsToAlarm: 2,
});
- JavaScript
-
const alarm = new cloudwatch.Alarm(this, 'Alarm', {
metric: metric,
threshold: 100,
evaluationPeriods: 3,
datapointsToAlarm: 2
});
- Python
-
alarm = cloudwatch.Alarm(self, "Alarm",
metric=metric,
threshold=100,
evaluation_periods=3,
datapoints_to_alarm=2
)
- Java
-
import software.amazon.awscdk.services.cloudwatch.Alarm;
import software.amazon.awscdk.services.cloudwatch.Metric;
Alarm alarm = Alarm.Builder.create(this, "Alarm")
.metric(metric)
.threshold(100)
.evaluationPeriods(3)
.datapointsToAlarm(2).build();
- C#
-
var alarm = new Alarm(this, "Alarm", new AlarmProps
{
Metric = metric,
Threshold = 100,
EvaluationPeriods = 3,
DatapointsToAlarm = 2
});
创建警报的另一种方法是使用指标的 createAlarm() 方法,该方法采用的属性与Alarm
构造函数基本相同。您无需传递该指标,因为它已经为人所知。
- TypeScript
-
metric.createAlarm(this, 'Alarm', {
threshold: 100,
evaluationPeriods: 3,
datapointsToAlarm: 2,
});
- JavaScript
-
metric.createAlarm(this, 'Alarm', {
threshold: 100,
evaluationPeriods: 3,
datapointsToAlarm: 2,
});
- Python
-
metric.create_alarm(self, "Alarm",
threshold=100,
evaluation_periods=3,
datapoints_to_alarm=2
)
- Java
-
metric.createAlarm(this, "Alarm", new CreateAlarmOptions.Builder()
.threshold(100)
.evaluationPeriods(3)
.datapointsToAlarm(2)
.build());
- C#
-
metric.CreateAlarm(this, "Alarm", new CreateAlarmOptions
{
Threshold = 100,
EvaluationPeriods = 3,
DatapointsToAlarm = 2
});