启用 SDK 指标Amazon SDK for Java - Amazon SDK for Java 2.x
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

启用 SDK 指标Amazon SDK for Java

使用Amazon SDK for Java 2.x,可以收集应用程序中服务客户端的指标,分析输出Amazon CloudWatch,然后对其进行操作。

默认情况下,SDK 中禁用指标收集。本主题可帮助您启用和配置它。

先决条件

必须先完成以下步骤,然后才能启用和使用指标:

  • 完成 设置Amazon SDK for Java 2.x 中的步骤。

  • 将您的项目依赖关系(例如,在您的pom.xmlbuild.gradle文件中)配置为使用版本2.14.0或更高版本Amazon SDK for Java。

    要允许将指标发布到CloudWatch,还要在项目的依赖项中包含cloudwatch-metric-publisher带有版本号2.14.0或更高版本的 artifactId。

    例如:

    <project> <dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.14.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>cloudwatch-metric-publisher</artifactId> <version>2.14.0</version> </dependency> </dependencies> </project>
注意

为了增强应用程序的安全性,您可以使用一组专用的证书将指标发布到CloudWatch。创建一个具有 cloudwatch:PutMetricData 权限的单独IAM用户,然后在应用程序 MetricPublisher配置中使用该用户的访问密钥作为凭证。

有关更多信息,请参阅《用户指南》中的 “Amazon CloudWatch权限参考” 和 “Amazon CloudWatch Events用户指南” 中的 “IAM添加和删除IAM身份权限”。

如何启用指标收集

您可以在应用程序中为服务客户端启用指标,也可以针对个人请求启用指标。

启用特定请求的指标

以下代码段显示了如何启用CloudWatch指标发布者向的请求Amazon DynamoDB。它使用默认指标发布器配置。

MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.create(); ddb.listTables(ListTablesRequest.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build());

启用特定服务客户端指标

以下代码段显示了如何使用服务客户端的默认设置启用CloudWatch指标发布器。

MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();

以下片段演示了如何为特定服务客户端的指标发布者使用自定义配置。自定义包括加载特定的证书配置文件、指定与服务客户端不同的区域,以及自定义发布者向其发送指标的频率CloudWatch。

MetricPublisher metricsPub = CloudWatchMetricPublisher.builder() .cloudWatchClient(CloudWatchAsyncClient.builder() .region(Region.US_WEST_2) .credentialsProvider(ProfileCredentialsProvider.create("cloudwatch")) .build()) .uploadFrequency(Duration.ofMinutes(5)) .build(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();

收集了哪些信息?

指标收集包括以下内容:

  • API 请求的数量,包括成功还是失败

  • 有关您在 API 请求中调用的Amazon服务的信息,包括返回的异常

  • 各种操作(例如编组、签名和 HTTP 请求)的持续时间

  • HTTP 客户端指标,例如打开的连接数、待处理的请求数以及所使用的 HTTP 客户端的名称

注意

可用指标因 HTTP 客户端而异。

有关完整列表,请参阅服务客户端指标

我该如何使用这些信息?

您可以使用 SDK 收集的指标来监控应用程序中的服务客户端。您可以查看总体使用趋势、识别异常情况、查看返回的服务客户端异常,或者深入了解特定问题。使用Amazon CloudWatch,您还可以创建警报,以便在应用程序达到您定义的条件时立即通知您。

有关更多信息,请参阅Amazon CloudWatch用户指南中的使用Amazon CloudWatch指标和使用Amazon CloudWatch警报

主题