X-Ray SDK for Java 的 AWS X-Ray 指标 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

X-Ray SDK for Java 的 AWS X-Ray 指标

本主题介绍 AWS X-Ray 命名空间、指标和维度。您可以使用 X-Ray SDK for Java 从收集的 X-Ray 分段发布未采样的 Amazon CloudWatch 指标。这些指标源自分段的开始时间和结束时间以及错误、故障和限制状态标志。使用这些跟踪指标可以公开子分段内的重试和依赖关系问题。

CloudWatch 在本质上是一个指标存储库。指标是 CloudWatch 中的核心概念,代表了数据点的时间顺序集。您(或 AWS 服务)可将指标数据点发布到 CloudWatch,并且您可以按一组有序的时间序列数据来检索关于这些数据点的统计数据。

指标通过名称、命名空间以及一个或多个维度进行唯一定义。每个数据点都有一个时间戳和一个可选的度量单位。当请求统计数据时,返回的数据流根据命名空间、指标名称和维度加以识别。

有关 CloudWatch 的更多信息,请参阅 Amazon CloudWatch 用户指南

X-Ray CloudWatch 指标

ServiceMetrics/SDK 命名空间包括以下指标。

指标 可用统计数据 描述 单位

Latency

平均值、最小值、最大值、计数

开始时间和结束时间之间的差异。平均值、最小值和最大值均描述了操作延迟。计数描述调用计数。

毫秒

ErrorRate

Average、Sum

显示 4xx Client Error 状态代码且导致错误的失败的请求比率。

百分比

FaultRate

Average、Sum

显示 5xx Server Error 状态代码且导致故障的失败的跟踪比率。

百分比

ThrottleRate

Average、Sum

返回 419 状态代码的限制跟踪比率。这是 ErrorRate 指标的子集。

百分比

OkRate

Average、Sum

导致 OK 状态代码的跟踪请求的比率。

百分比

X-Ray CloudWatch 维度

您可以用下表中的维度来优化针对经 X-Ray 分析的 Java 应用程序返回的指标。

维度 说明

ServiceType

服务的类型,例如 NONEAWS::EC2::Instance(如果未知)。

ServiceName

服务的规范名称。

启用 X-Ray CloudWatch 指标

使用以下过程在已分析的 Java 应用程序中启用跟踪指标。

配置跟踪指标

  1. aws-xray-recorder-sdk-metrics 包添加为 Maven 依赖项。有关更多信息,请参阅 X-Ray SDK for Java 子模块

  2. 启用新的 MetricsSegmentListener() 作为全局记录器版本的一部分。

    例 src/com/myapp/web/Startup.java

    import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.AWSXRayRecorderBuilder; import com.amazonaws.xray.plugins.EC2Plugin; import com.amazonaws.xray.plugins.ElasticBeanstalkPlugin; import com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy; @Configuration public class WebConfig { ... static { AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder .standard() .withPlugin(new EC2Plugin()) .withPlugin(new ElasticBeanstalkPlugin()) .withSegmentListener(new MetricsSegmentListener()); URL ruleFile = WebConfig.class.getResource("/sampling-rules.json"); builder.withSamplingStrategy(new LocalizedSamplingStrategy(ruleFile)); AWSXRay.setGlobalRecorder(builder.build()); } }
  3. 使用 Amazon Elastic Compute Cloud (Amazon EC2)、Amazon Elastic Container Service (Amazon ECS) 或 Amazon Elastic Kubernetes Service (Amazon EKS) 部署 CloudWatch 代理以收集指标:

  4. 将开发工具包配置为与 CloudWatch 代理通信。默认情况下,开发工具包与地址 127.0.0.1 上的 CloudWatch 代理进行通信。您可以通过将环境变量或 Java 属性设置为 address:port 来配置备用地址。

    例 环境变量

    AWS_XRAY_METRICS_DAEMON_ADDRESS=address:port

    例 Java 属性

    com.amazonaws.xray.metrics.daemonAddress=address:port

验证配置

  1. 登录 AWS 管理控制台并通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 打开 Metrics (指标) 选项卡以观察指标的流入。

  3. (可选)在 CloudWatch 控制台的 Logs (日志) 选项卡上,打开 ServiceMetricsSDK 日志组。查找与主机指标匹配的日志流,并确认日志消息。