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

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

使用来自 SDK 的指标 Amazon SDK for Java

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

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

先决条件

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

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

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

    要启用向发布指标 CloudWatch,还需要在项目的依赖项中包含带有版本2.14.0号或更高版本号的 cloudwatch-metric-publisher 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>
  • 为 IAM 身份启用 cloudwatch:PutMetricData 权限,以允许 SDK for Java 编写指标。

如何启用指标收集

您可以在应用程序中为服务客户端或单个请求启用指标。

为特定请求启用指标

以下代码片段显示了如何为请求启用 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();

指标何时可用?

指标通常在 SDK for Java 发出它们后的 5-10 分钟内可用。要获得准确性和 up-to-date 指标,请在从 Java 应用程序发出指标至少 10 分钟后查看 Cloudwatch。

收集哪些信息?

指标收集包括以下内容:

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

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

  • 封送、签名和 HTTP 请求等各种操作的用时

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

注意

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

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

我该如何使用这些信息?

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

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

主题