<dependencies>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>cloudwatch</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>cloudwatchevents</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>cloudwatchlogs</artifactId>
</dependency>
</dependencies>
CloudWatchClient cloudWatchClient = CloudWatchClient.builder()
.region(Region.US_EAST_1)
.credentialsProvider(DefaultCredentialsProvider.create())
.build();
PutMetricDataRequest request = PutMetricDataRequest.builder()
.namespace("MyNamespace")
.metricData(
MetricDatum.builder()
.metricName("MyMetric")
.value(123.45)
.unit(StandardUnit.COUNT)
.build())
.build();
cloudWatchClient.putMetricData(request);
GetMetricDataResponse response = cloudWatchClient.getMetricData(
GetMetricDataRequest.builder()
.metricDataQueries(
MetricDataQuery.builder()
.id("m1")
.metricStat(
MetricStat.builder()
.metric(
Metric.builder()
.namespace("MyNamespace")
.metricName("MyMetric")
.build())
.period(60)
.stat("Average")
.build())
.build())
.build());
for(MetricDataResult result : response.metricDataResults()) {
System.out.println(result.id() + ": " + result.values());
}
PutMetricAlarmRequest request = PutMetricAlarmRequest.builder()
.alarmName("MyAlarm")
.comparisonOperator(ComparisonOperator.GREATER_THAN_OR_EQUAL_TO_THRESHOLD)
.evaluationPeriods(1)
.metricName("MyMetric")
.namespace("MyNamespace")
.period(60)
.threshold(100)
.statistic(Statistic.AVERAGE)
.actionsEnabled(false)
.alarmDescription("This is my custom metric alarm")
.alarmActions("arn:aws:sns:us-east-1:123456789012:MyTopic")
.build();
cloudWatchClient.putMetricAlarm(request);