从AWS SDK for Java 2.x 发布 SDK 指标
使用AWS SDK for Java 2.x,您可以收集应用程序中服务客户端和请求的指标,在 Amazon CloudWatch Logs 中分析输出并据此采取行动。
默认情况下,SDK 中的指标收集处于禁用状态。本主题可帮助您启用和配置指标收集。
SDK 指标入门
要在应用程序中启用指标收集,请根据您的使用案例选择适当的 MetricPublisher 接口实现,并按照详细的设置说明进行操作:
对于长时间运行的应用程序:
-
有关完整的设置说明、代码示例和配置选项,请参阅从长时间运行的应用程序发布 SDK 指标。
对于 AWS Lambda 函数:
-
有关完整的设置说明、依赖项和特定于 Lambda 的配置,请参阅为 AWS Lambda 函数发布 SDK 指标。
对于故障排除和控制台输出:
-
有关本地开发和故障排除的设置说明、格式选项以及示例,请参阅将 SDK 指标输出到控制台进行开发和调试。
快速实施预览
以下是针对每个使用案例启用指标的具体示例:
长时间运行的应用程序:
MetricPublisher metricsPub = CloudWatchMetricPublisher.create(); DynamoDbClient ddb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(metricsPub)) .build();
Lambda 函数:
EmfMetricLoggingPublisher emfPublisher = EmfMetricLoggingPublisher.builder() .namespace("MyApp") .build(); DynamoDbClient dynamoDb = DynamoDbClient.builder() .overrideConfiguration(c -> c.addMetricPublisher(emfPublisher)) .build();
开发和调试:
MetricPublisher loggingPublisher = LoggingMetricPublisher.create(); S3Client s3 = S3Client.builder() .overrideConfiguration(c -> c.addMetricPublisher(loggingPublisher)) .build();
基于 AWS CRT 的 S3 客户端的指标限制
基于 AWS CRT 的 S3 客户端目前不支持 SDK 指标收集。基于 AWS CRT 的 S3 客户端实例的生成器 S3CrtAsyncClientBuilder
指标何时可用?
指标通常在 SDK for Java 发出它们后的 5-10 分钟内可用。要获得准确和最新的指标,请在从 Java 应用程序发出指标至少 10 分钟后查看 Cloudwatch。
收集哪些信息?
指标收集包括以下内容:
-
API 请求的数量,包括请求成功还是失败
-
有关您在 API 请求中调用的 AWS 服务的信息,包括返回的异常
-
封送、签名和 HTTP 请求等各种操作的用时
-
HTTP 客户端指标,例如打开的连接数、待处理的请求数以及所使用的 HTTP 客户端的名称
注意
可用指标因 HTTP 客户端而异。
有关完整列表,请参阅服务客户端指标。
我该如何使用这些信息?
您可以使用 SDK 收集的指标来监控应用程序中的服务客户端。您可以查看总体使用趋势、识别异常情况、查看返回的服务客户端异常,或者深入了解特定问题。您还可以使用 Amazon CloudWatch Logs 创建警报,以便在应用程序达到您定义的条件时立即通知您。
有关更多信息,请参阅《Amazon CloudWatch 用户指南》中的使用 Amazon CloudWatch Logs 指标和使用 Amazon CloudWatch Logs 警报。