

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

# 从中发布 SDK 指标 AWS SDK for Java 2.x
<a name="metrics"></a>

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

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

## SDK 指标入门
<a name="getting-started-with-metrics"></a>

要在应用程序中启用指标收集，请根据您的使用案例选择适当的 `[MetricPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/MetricPublisher.html)` 接口实现，并按照详细的设置说明进行操作：

**对于长时间运行的应用程序：**
+ 使用 `[CloudWatchMetricPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/publishers/cloudwatch/CloudWatchMetricPublisher.html)`
+ 有关完整的设置说明、代码示例和配置选项，请参阅[从长时间运行的应用程序发布 SDK 指标](metric-pub-impl-cwmp.md)。

**对于 AWS Lambda 函数：**
+ 使用 `[EmfMetricLoggingPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/publishers/emf/EmfMetricLoggingPublisher.html)`
+ 有关完整的设置说明、依赖关系和特定于 Lambda 的配置，请参阅[发布 SDK AWS Lambda 函数指标](metric-pub-impl-emf.md)。

**对于故障排除和控制台输出：**
+ 使用 `[LoggingMetricPublisher](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/metrics/LoggingMetricPublisher.html)`
+ 有关本地开发和故障排除的设置说明、格式选项以及示例，请参阅[将 SDK 指标输出到控制台进行开发和调试](metric-pub-impl-logging.md)。

## 快速实施预览
<a name="quick-implementation-preview"></a>

以下是针对每个使用案例启用指标的具体示例：

**长时间运行的应用程序：**

```
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 客户端的指标限制
<a name="metrics-using-s3-crt-based-client"></a>

[基于AWS CRT 的 S3 客户端](crt-based-s3-client.md)目前不支持 SDK 指标收集。 AWS 基于 CRT 的 S3 客户端实例的构建器不提供配置指标发布者的方法。[https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3CrtAsyncClientBuilder.html)

## 指标何时可用？
<a name="when-are-metrics-available"></a>

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

## 收集哪些信息？
<a name="what-information-is-collected"></a>

指标收集包括以下内容：
+ API 请求的数量，包括请求成功还是失败
+ 有关 AWS 服务 您在 API 请求中调用的信息，包括返回的异常
+ 封送、签名和 HTTP 请求等各种操作的用时
+ HTTP 客户端指标，例如打开的连接数、待处理的请求数以及所使用的 HTTP 客户端的名称

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

有关完整列表，请参阅[服务客户端指标](metrics-list.md)。

## 我该如何使用这些信息？
<a name="how-can-i-use-this-information"></a>

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

有关更多信息，请参阅《[亚马逊 CloudWatch 日志用户指南》中的 “使用亚马逊 CloudWatch 日志指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) [[” 和 “使用亚马逊 CloudWatch 日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)警报](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)”。