AWS SDK for Java 2.x:全面的指标参考 - AWS SDK for Java 2.x

AWS SDK for Java 2.x:全面的指标参考

借助AWS SDK for Java 2.x,您可以从应用程序中的服务客户端收集指标,然后将这些指标发布(输出)到 Amazon CloudWatch

这些表列出了您可以收集的指标以及任何 HTTP 客户端使用要求。

有关为 SDK 启用和配置指标的更多信息,请参阅启用 SDK 指标

每次请求收集的指标

指标名称 描述 类型

ApiCallDuration

API 调用的持续时间。这包括所有已发起的调用尝试。

持续时间*

ApiCallSuccessful

如果 API 调用成功则为 true,否则为 false。

布尔值

CredentialsFetchDuration

获取 API 调用的签名凭证的持续时间。

持续时间*

EndpointResolveDuration 解析 API 调用所用端点的持续时间。 持续时间*

MarshallingDuration

将 SDK 请求封送到 HTTP 请求的持续时间。

持续时间*

OperationName

所调用服务操作的名称。

字符串

RetryCount

SDK 在执行请求时自动重试的次数。0 表示该请求第一次就成功了,没有进行任何重试。

有关配置重试行为的更多信息,请参阅重试策略

整数

ServiceId

服务的唯一 ID。

字符串

ServiceEndpoint

服务的端点。

URI

TokenFetchDuration

获取 API 调用的签名凭证的持续时间。 持续时间*

*java.time.Duration

为每次请求尝试收集的指标

每个 API 调用可能需要多次尝试才能收到响应。每次尝试都会收集这些指标。

核心指标

指标名称 描述 类型

AwsExtendedRequestId

服务请求的扩展请求 ID。

字符串

AwsRequestId

服务请求的请求 ID。

字符串

BackoffDelayDuration

在这次 API 调用尝试之前 SDK 已等待的持续时间。该值基于客户端上 BackoffStrategy 设置。有关更多信息,请参阅本指南的重试策略部分。

持续时间*

ErrorType

进行调用尝试时发生的错误类型。

以下是可能的值:

  • Throttling:服务响应时出现节流错误。

  • ServerError:服务响应时出现节流以外的错误。

  • ConfiguredTimeout:在 API 调用级别或 API 调用尝试级别出现客户端超时。

  • IO:发生了 I/O 错误。

  • Other:用于捕获所有未归入上述类别中的其他错误的“兜底”分类。

字符串
ReadThroughput

客户端的读取吞吐量,定义为 NumberOfResponseBytesRead / (TTLB - TTFB)。此值以每秒字节数为单位。

请注意,此指标仅测量从 ResponseTransformerAsyncResponseTransformer 内读取的字节。计算中不包括在转换器外部读取的数据(例如,当响应流作为转换器的结果返回时)。

双精度

ServiceCallDuration

连接到服务(或从连接池中获取连接)、发送序列化请求和接收初始响应(例如 HTTP 状态码和标头)的持续时间。这不包括从服务中读取整个响应的时间。

持续时间*

SigningDuration

签署 HTTP 请求的持续时间。

持续时间*

TimeToFirstByte 从将 HTTP 请求发送到服务(包括获取连接),到接收响应中标头的第一个字节的持续时间。 持续时间*
TimeToLastByte

从将 HTTP 请求发送到服务(包括获取连接),到接收响应的最后一个字节的持续时间。

请注意,对于返回流式响应的 API,此指标涵盖了从开始直至 ResponseTransformerAsyncResponseTransformer 完成的时间。

持续时间*

UnmarshallingDuration

将 HTTP 响应解组到 SDK 响应的持续时间。

注意:对于流式操作,这不包括读取响应有效载荷的时间。

持续时间*

*java.time.Duration

HTTP 指标

指标名称 描述 类型 需要 HTTP 客户端*

AvailableConcurrency

在不与目标服务器建立新连接的情况下,HTTP 客户端支持的额外并发请求数。

对于 HTTP/1 操作,这等于与服务建立的空闲 TCP 连接的数量。对于 HTTP/2 操作,这等于空闲流的数量。

注意:此值因 HTTP 客户端实现而异:

  • Apache 客户端:值适用于整个 HTTP 客户端

  • Netty 客户端:对每个端点单独计算值

  • 基于 AWS CRT 的客户端:对每个端点单独计算值

该值的范围限定于单个 HTTP 客户端实例,不包括同一 JVM 中其他 HTTP 客户端的并发。

整数

Apache、Netty、CRT

ConcurrencyAcquireDuration

从连接池中获取通道的持续时间。

对于 HTTP/1 操作,通道等于 TCP 连接。对于 HTTP/2 操作,通道等于 HTTP/2 流通道。

获取新通道可能包括以下时间:

  1. 正在等待并发许可,受客户端最大并发配置的限制。

  2. 如果池中没有可用的现有连接,则建立新连接。

  3. 如果启用了 TLS,则执行 TLS 握手和协商。

持续时间*

Apache、Netty、CRT

HttpClientName

用于请求的 HTTP 的名称。

字符串

Apache、Netty、CRT

HttpStatusCode

HTTP 响应的状态代码。

整数

任何

LeasedConcurrency

HTTP 客户端当前执行的请求数。

对于 HTTP/1 操作,这等于与服务建立的活跃 TCP 连接的数量(不包括空闲连接)。对于 HTTP/2 操作,这等于服务的活动 HTTP 流的数量(不包括空闲流容量)。

注意:此值因 HTTP 客户端实现而异:

  • Apache 客户端:值适用于整个 HTTP 客户端

  • Netty 客户端:对每个端点单独计算值

  • 基于 AWS CRT 的客户端:对每个端点单独计算值

该值的范围限定于单个 HTTP 客户端实例,不包括同一 JVM 中其他 HTTP 客户端的并发。

整数

Apache、Netty、CRT

LocalStreamWindowSize

执行此请求的流的本地 HTTP/2 窗口大小(以字节为单位)。

整数

Netty

MaxConcurrency

HTTP 客户端支持的最大并发请求数。

对于 HTTP/1 操作,这等于 HTTP 客户端可以汇集的最大 TCP 连接数。对于 HTTP/2 操作,这等于 HTTP 客户端可以汇集的最大流数。

注意:此值因 HTTP 客户端实现而异:

  • Apache 客户端:值适用于整个 HTTP 客户端

  • Netty 客户端:对每个端点单独计算值

  • 基于 AWS CRT 的客户端:对每个端点单独计算值

该值的范围限定于单个 HTTP 客户端实例,不包括同一 JVM 中其他 HTTP 客户端的并发。

整数

Apache、Netty、CRT

PendingConcurrencyAcquires

等待 HTTP 客户端并发的请求数。

对于 HTTP/1 操作,这等于等待 TCP 连接建立或从连接池返回的请求数。对于 HTTP/2 操作,这等于等待来自连接池的新流(可能还有新 HTTP/2 连接)的请求数。

注意:此值因 HTTP 客户端实现而异:

  • Apache 客户端:值适用于整个 HTTP 客户端

  • Netty 客户端:对每个端点单独计算值

  • 基于 AWS CRT 的客户端:对每个端点单独计算值

该值的范围限定于单个 HTTP 客户端实例,不包括同一 JVM 中其他 HTTP 客户端的并发。

整数

Apache、Netty、CRT

RemoteStreamWindowSize

执行此请求的流的远程 HTTP/2 窗口大小(以字节为单位)。

整数

Netty

*java.time.Duration

列中所用术语解释: