CloudWatch Examples

2024-09-01 02:38
文章标签 examples cloudwatch

本文主要是介绍CloudWatch Examples,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文连接:《AWS SDK for Java——Developer Guide》


译文↓


这部分提供了使用Java的AWS开发工具包编写CloudWatch程序的示例。

CloudWatch实时监控AWS资源以及运行在AWS上的应用。您可以使用CloudWatch收集和跟踪指标,这些指标是用来测量资源和应用程序的可变因素。CloudWatch警报根据您定义的规则发送通知或自动更改正在监视的资源。

更多信息,请参阅CloudWatch用户指南。

注意

这些示例只包括演示每种技术所需的代码。完整的代码请参见GitHub。您可以下载一个单独的源文件或者在本地克隆版本库,以获得所有示例来构建和运行。


从CloudWatch获取指标

列举指标

要列举CloudWatch指标,需创建ListMetricsRequest并调用AmazonCloudWatchClientlistMetrics方法。您可以使用ListMetricsRequest按命名空间、指标名称或者维度来筛选返回的指标。

注意

AWS服务发布的指标和维度列表可以在Amazon CloudWatch用户指南的Amazon CloudWatch指标和维度参考中找到。


导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.ListMetricsRequest;
import com.amazonaws.services.cloudwatch.model.ListMetricsResult;
import com.amazonaws.services.cloudwatch.model.Metric;


代码

final AmazonCloudWatch cw =AmazonCloudWatchClientBuilder.defaultClient();
boolean done = false;
while(!done) {ListMetricsRequest request = new ListMetricsRequest().withMetricName(name).withNamespace(namespace);ListMetricsResult response = cw.listMetrics(request);for(Metric metric : response.getMetrics()) {System.out.printf("Retrieved metric %s", metric.getMetricName());}request.setNextToken(response.getNextToken());if(response.getNextToken() == null) {done = true;}
}

指标通过调用getMetrics方法返回到ListMetricsResult中。结果可能被分页。要检索下一批结果,请使用ListMetricsResult对象的getNextToken方法的返回值在原始请求对象上调用setNextToken,然后将修改过的请求对象传回给另一个调用listMetrics

更多信息

·请参阅Amazon CloudWatch API Reference的ListMetrics。


发布自定义指标数据

许多AWS服务在以"AWS/"开头的命名空间中发布自己的指标。您可以发布自定义指标数据使用您自己的命名空间(只要不是以"AWS/"开头就可以)。

发布自定义指标数据

要发布自定义指标数据,请使用PutMetricDataRequest调用AmazonCloudWatchClientputMetricData方法。PutMetricDataRequest必须包含要用于的自定义命名空间的数据以及有关MetricDatum对象中数据点本身的信息。

注意

您不能指定命名空间以"AWS/"开头。以"AWS/"开头的命名空间保留供Amazon Web Services产品使用。


导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.Dimension;
import com.amazonaws.services.cloudwatch.model.MetricDatum;
import com.amazonaws.services.cloudwatch.model.PutMetricDataRequest;
import com.amazonaws.services.cloudwatch.model.PutMetricDataResult;
import com.amazonaws.services.cloudwatch.model.StandardUnit;


代码

final AmazonCloudWatch cw =AmazonCloudWatchClientBuilder.defaultClient();
Dimension dimension = new Dimension().withName("UNIQUE_PAGES").withValue("URLS");
MetricDatum datum = new MetricDatum().withMetricName("PAGES_VISITED").withUnit(StandardUnit.None).withValue(data_point).withDimensions(dimension);
PutMetricDataRequest request = new PutMetricDataRequest().withNamespace("SITE/TRAFFIC").withMetricData(datum);
PutMetricDataResult response = cw.putMetricData(request);


更多信息

·请参阅Amazon CloudWatch用户指南的使用Amazon CloudWatch指标。

·请参阅Amazon CloudWatch用户指南的AWS命名空间。

·请参阅Amazon CloudWatch API Reference的PutMetricData。


使用CloudWatch警报

创建警报

基于CloudWatch指标创建警报,请使用设置了警报条件的PutMetricAlarmRequest来调用AmazonCloudWatchClient的putMetricAlarm方法。

导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.ComparisonOperator;
import com.amazonaws.services.cloudwatch.model.Dimension;
import com.amazonaws.services.cloudwatch.model.PutMetricAlarmRequest;
import com.amazonaws.services.cloudwatch.model.PutMetricAlarmResult;
import com.amazonaws.services.cloudwatch.model.StandardUnit;
import com.amazonaws.services.cloudwatch.model.Statistic;

代码

final AmazonCloudWatch cw =AmazonCloudWatchClientBuilder.defaultClient();
Dimension dimension = new Dimension().withName("InstanceId").withValue(instanceId);
PutMetricAlarmRequest request = new PutMetricAlarmRequest().withAlarmName(alarmName).withComparisonOperator(ComparisonOperator.GreaterThanThreshold).withEvaluationPeriods(1).withMetricName("CPUUtilization").withNamespace("AWS/EC2").withPeriod(60).withStatistic(Statistic.Average).withThreshold(70.0).withActionsEnabled(false).withAlarmDescription("Alarm when server CPU utilization exceeds 70%").withUnit(StandardUnit.Seconds).withDimensions(dimension);
PutMetricAlarmResult response = cw.putMetricAlarm(request);

列举警报

要列举创建的CloudWatch警报,可以使用DescribeAlarmsRequest来调用AmazonCloudWatch的describeAlarms方法,您可以使用它来设置结果的选项。

导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.DescribeAlarmsRequest;
import com.amazonaws.services.cloudwatch.model.DescribeAlarmsResult;
import com.amazonaws.services.cloudwatch.model.MetricAlarm;

代码

final AmazonCloudWatch cw =AmazonCloudWatchClientBuilder.defaultClient();
boolean done = false;
while(!done) {DescribeAlarmsRequest request = new DescribeAlarmsRequest();DescribeAlarmsResult response = cw.describeAlarms(request);for(MetricAlarm alarm : response.getMetricAlarms()) {System.out.printf("Retrieved alarm %s", alarm.getAlarmName());}request.setNextToken(response.getNextToken());if(response.getNextToken() == null) {done = true;}
}

报警列表可以通过在describeAlarms返回的DescribeAlarmsResult上调用getMetricAlarms获得。

获得结果也许会被分页。要检索下一批结果,请使用DescribeAlarmsResult对象的getNextToken方法的返回值在原始请求对象上调用setNextToken,然后将修改过的请求对象传回给另一个调用describeAlarms

注意

您也可以检索特定指标的警报通过使用AmazonCloudWatchClient的describeAlarmsForMetric方法。使用方式与describeAlarms类似。


删除警报

要删除警报,使用设置了一个或多个想要删除的警报名称的DeleteAlarmsRequest来调用AmazonCloudWatchClientdeleteAlarms方法。

导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.DeleteAlarmsRequest;
import com.amazonaws.services.cloudwatch.model.DeleteAlarmsResult;

代码

 AmazonCloudWatchClientBuilder.defaultClient();
DeleteAlarmsRequest request = new DeleteAlarmsRequest().withAlarmNames(alarm_name);
DeleteAlarmsResult response = cw.deleteAlarms(request);


更多信息

·请参阅Amazon CloudWatch用户指南的创建Amazon CloudWatch警报。

·请参阅Amazon CloudWatch API Reference的PutMetricAlarm。

·请参阅Amazon CloudWatch API Reference的DescribeAlarms。

·请参阅Amazon CloudWatch API Reference的DeleteAlarms。


在CloudWatch中使用警报操作

使用CloudWatch警报操作,您可以创建执行操作的警报,如自动停止,终止,重新引导或恢复Amazon EC2实例。

注意

在创建警报时,可以通过PutMetricAlarmRequest的setAlarmActions方法向警报添加警报操作。

启动警报操作

为CloudWatch警报启动警报操作,请使用设置了一个或多个想要启动操作的警报名称的EnableAlarmActionsRequest来调用AmazonCloudWatchClient的enableAlarmActions方法。

导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.EnableAlarmActionsRequest;
import com.amazonaws.services.cloudwatch.model.EnableAlarmActionsResult;

代码

final AmazonCloudWatch cw =AmazonCloudWatchClientBuilder.defaultClient();
EnableAlarmActionsRequest request = new EnableAlarmActionsRequest().withAlarmNames(alarm);
EnableAlarmActionsResult response = cw.enableAlarmActions(request);

禁用警报操作

为CloudWatch警报禁用警报操作,请使用设置了一个或多个想要禁用操作的警报名称的DisableAlarmActionsRequest来调用AmazonCloudWatchClient的disableAlarmActions方法。

导入

import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
import com.amazonaws.services.cloudwatch.AmazonCloudWatchClientBuilder;
import com.amazonaws.services.cloudwatch.model.DisableAlarmActionsRequest;
import com.amazonaws.services.cloudwatch.model.DisableAlarmActionsResult;


代码

final AmazonCloudWatch cw =AmazonCloudWatchClientBuilder.defaultClient();
DisableAlarmActionsRequest request = new DisableAlarmActionsRequest().withAlarmNames(alarmName);
DisableAlarmActionsResult response = cw.disableAlarmActions(request);

更多信息

·请参阅Amazon CloudWatch用户指南的创建警报以停止、终止、重启或恢复实例。

·请参阅Amazon CloudWatch API Reference的PutMetricAlarm。

·请参阅Amazon CloudWatch API Reference的EnableAlarmActions。

·请参阅Amazon CloudWatch API Reference的DisableAlarmActions。


向CloudWatch发送事件

CloudWatch Events提供了一个接近实时的系统事件流,描述了AWS资源对Amazon EC2实例,Lambda函数,Kinesis流,Amazon ECS任务,Step Functions状态机,Amazon SNS主题,Amazon SQS队列或内置目标。您可以使用简单的规则匹配事件并将其路由到一个或多个目标函数或流。

添加事件

要添加自定义CloudWatch事件,请使用包含一个或多个提供有关每个事件的详细信息的PutEventsRequestEntry对象的PutEventsRequest对象来调用AmazonCloudWatchEventsClient的putEvents方法。您可以为入口指定多个参数,例如事件的来源和类型,与事件关联的资源等。

注意

您可以为每个putEvents调用指定至多10个事件。

入口

import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEvents;
import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClientBuilder;
import com.amazonaws.services.cloudwatchevents.model.PutEventsRequest;
import com.amazonaws.services.cloudwatchevents.model.PutEventsRequestEntry;
import com.amazonaws.services.cloudwatchevents.model.PutEventsResult;


代码

final AmazonCloudWatchEvents cwe =AmazonCloudWatchEventsClientBuilder.defaultClient();
final String EVENT_DETAILS ="{ \"key1\": \"value1\", \"key2\": \"value2\" }";
PutEventsRequestEntry request_entry = new PutEventsRequestEntry().withDetail(EVENT_DETAILS).withDetailType("sampleSubmitted").withResources(resource_arn).withSource("aws-sdk-java-cloudwatch-example");
PutEventsRequest request = new PutEventsRequest().withEntries(request_entry);
PutEventsResult response = cwe.putEvents(request);

添加规则

要创建或更新规则,请使用PutRuleRequest调用AmazonCloudWatchEventsClient的putRule方法,其中包含规则名称和可选参数(如事件模式,与规则关联的IAM角色以及描述规则运行频率的调度表达式)。

导入

import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEvents;
import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClientBuilder;
import com.amazonaws.services.cloudwatchevents.model.PutRuleRequest;
import com.amazonaws.services.cloudwatchevents.model.PutRuleResult;
import com.amazonaws.services.cloudwatchevents.model.RuleState;

代码

final AmazonCloudWatchEvents cwe =AmazonCloudWatchEventsClientBuilder.defaultClient();
PutRuleRequest request = new PutRuleRequest().withName(rule_name).withRoleArn(role_arn).withScheduleExpression("rate(5 minutes)").withState(RuleState.ENABLED);
PutRuleResult response = cwe.putRule(request);

添加目标

目标是触发规则时调用的资源。 示例目标包括Amazon EC2实例,Lambda函数,Kinesis流,Amazon ECS任务,Step Functions状态机和内置目标。

要将目标添加到规则,请使用包含要更新规则的PutTargetsRequest和要添加到规则的目标列表来调用AmazonCloudWatchEventsClient的putTargets方法。

导入

import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEvents;
import com.amazonaws.services.cloudwatchevents.AmazonCloudWatchEventsClientBuilder;
import com.amazonaws.services.cloudwatchevents.model.PutTargetsRequest;
import com.amazonaws.services.cloudwatchevents.model.PutTargetsResult;
import com.amazonaws.services.cloudwatchevents.model.Target;

代码

final AmazonCloudWatchEvents cwe =AmazonCloudWatchEventsClientBuilder.defaultClient();
Target target = new Target().withArn(function_arn).withId(target_id);
PutTargetsRequest request = new PutTargetsRequest().withTargets(target).withRule(rule_name);
PutTargetsResult response = cwe.putTargets(request);

更多信息

·Amazon CloudWatch事件用户指南的使用PutEvents添加事件。

·Amazon CloudWatch事件用户指南的规则的计划表达式。

·Amazon CloudWatch事件用户指南的每个支持服务的 CloudWatch Events 事件示例。

·Amazon CloudWatch事件用户指南的事件与事件模式。

·Amazon CloudWatch Events API Reference的PutEvents。

·Amazon CloudWatch Events API Reference的PutTargets。

·Amazon CloudWatch Events API Reference的PutRule。

这篇关于CloudWatch Examples的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125714

相关文章

Image Transformation can make Neural Networks more robust against Adversarial Examples

Image Transformation can make Neural Networks more robust against Adversarial Examples 创新点 1.旋转解决误分类 总结 可以说简单粗暴有效

论文《Adversarial Examples on Graph Data: Deep Insights into Attack and Defense》笔记

【IG-Attack 2019 IJCAI】本文提出了一种基于integrated gradients的对抗攻击和防御算法。对于攻击,本文证明了通过引入integrated gradients可以很容易解决离散问题,integrated gradients可以准确反映扰动某些特征或边的影响,同时仍然受益于并行计算。对于防御,本文观察到目标攻击的被攻击图在统计上不同于正常图。在此基础上,本文提出了一

什么是 AWS CloudWatch?

AWS CloudWatch 是 AWS 提供的一项全面的监控和可观测性服务,使用户能够收集和可视化指标、日志和事件;设置警报;并根据预定义的条件自动执行操作。CloudWatch 提供对 AWS 资源和应用程序的运行状况、性能和运行状态的深入了解,使用户能够优化资源利用率并主动排除问题。 AWS CloudWatch提供的功能 Amazon CloudWatch 主要从三个主要来源收集数据:

AWS 使用 Amazon EC2 控制台安装和配置 CloudWatch 代理以添加其他指标如内存

默认情况下,Amazon CloudWatch 提供基本指标(例如 CPUUtilization 和 NetworkIn)用于监控 Amazon EC2 实例。要收集其他指标,您可以在 EC2 实例上安装 CloudWatch 代理,然后将该代理配置为发出所选指标。您可以使用 Amazon EC2 控制台执行此操作,而不必在每个 EC2 实例上手动安装和配置 CloudWatch 代理  戳->

Java Programming Examples

Java Programming Examples Example - Environment How to compile a java file? How to debug a java file? How to set classpath? java -cpjava -classpath How to view current classpath? windows C:> e

【Bazel 】- Examples to build C++ code

Examples to build C++ code This folder is part of the C++ Bazel Tutorial, found at https://bazel.build/start/cpp This package will showcase how to build C++ code in stages. 此文件夹是 C++ Bazel 教程的一部分,位于

规避攻击和毒化攻击Evasion Attacks and Adversarial Examples

"规避攻击(evasion attacks)"和"毒化攻击(poisoning attacks)"是两种常见的网络安全攻击类型,它们针对机器学习和深度学习模型进行攻击。 规避攻击(Evasion Attacks) 规避攻击是指攻击者通过修改输入数据,使得机器学习模型无法正确分类或预测。这种攻击通常利用模型对输入数据的处理方式来产生意想不到的结果,从而误导模型做出错误的判断。规避攻击可以通过以下

【对抗样本】【FGSM】Explaining and Harnessing Adversarial Examples 代码复现

简介 参考Pytorch官方的代码Adversarial Example Generation 参数设置(main.py) # 模型选择:GPUdevice = 'mps' if torch.backends.mps.is_available() else 'cpu'# 数据集位置dataset_path = '../../../Datasets'batch_size =

Qt5官方demo解析集33——Qt Quick Examples - Window and Screen

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集32——Qt Quick Examples - Threading 来到我们Qt Quick Examples的第二个例子了,之所以挑这个demo,主要是我们使用Qt开发界面(尤其是跨平台界面)时,本地屏幕信息与窗

Qt5官方demo解析集32——Qt Quick Examples - Threading

本系列所有文章可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 接上文Qt5官方demo解析集31——StocQt 因为涉及到QML线程看到这个例子,发现它是属于Qt Quick Example这个系列的。这个系列共有19个demo,涵盖了Qt Quick中多种元素,有空我们把这个系列一篇篇做下来,相信是一