启用适用于企业支持的 AWS 开发工具包指标 - 适用于 Java 的 AWS 开发工具包。
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

启用适用于企业支持的 AWS 开发工具包指标

适用于企业支持的 AWS 开发工具包指标 (开发工具包指标) 可让企业客户从其主机和客户端上的 AWS 开发工具包收集指标,这些指标与 AWS 企业支持共享。开发工具包指标 提供的信息有助于加快检测和诊断 AWS 企业支持客户的 AWS 服务连接中发生的问题。

在每个主机上收集遥测数据时,它通过 UDP 中继到 127.0.0.1(也称为 localhost),在此处 CloudWatch 代理会汇总数据并将其发送到 开发工具包指标 服务。因此,要接收指标,需要将 CloudWatch 代理添加到您的实例。

设置开发工具包指标的以下步骤适用于为正在使用AWS SDK for Java的客户端应用程序运行 Amazon Linux 的 Amazon EC2 实例。如果在配置AWS SDK for Java时启用,开发工具包指标也可用于您的生产环境。

要使用 开发工具包指标,请运行最新版本的 CloudWatch 代理。了解如何在 Amazon CloudWatch User Guide 中为开发工具包指标配置 CloudWatch 代理

要使用AWS SDK for Java设置开发工具包指标,请按照以下说明操作:

  1. 使用AWS SDK for Java客户端创建应用程序以使用 AWS 服务。

  2. 在 Amazon EC2 实例上或您的本地环境中托管您的项目。

  3. 安装并使用最新的 1.x 版本的 AWS SDK for Java。

  4. 在 EC2 实例上或您的本地环境中安装和配置 CloudWatch 代理。

  5. 授权 开发工具包指标 收集和发送指标。

  6. 为适用于 Java 的 AWS 开发工具包启用开发工具包指标

有关更多信息,请参阅以下内容:。

为 AWS SDK for Java 启用 开发工具包指标

默认情况下,开发工具包指标 处于关闭状态,并且端口设置为 31000。下面是默认参数。

//default values [ 'enabled' => false, 'port' => 31000, ]

启用 开发工具包指标 与配置凭证以使用 AWS 服务无关。

您可以使用 4 个选项之一启用 开发工具包指标。

选项 1 设置环境变量

如果未设置 AWS_CSM_ENABLED,则开发工具包首先会检查 AWS_PROFILE 下的环境变量中指定的配置文件,以确定是否已启用 开发工具包指标。默认情况下,该选项设置为 false

要打开开发工具包指标,请将以下内容添加到环境变量中。

export AWS_CSM_ENABLED=true

其他配置设置可用。

注意 启用开发工具包指标不会将您的凭证配置为使用 AWS 服务。

选项 2:设置 开发工具包指标 代码

使用 Java 实施,您可以在构建服务客户端时在代码内部设置 开发工具包指标 配置。代码中设置的值将覆盖在下面描述的其他选项中设置的任何配置。

CsmConfiguration csmConfig = new CsmConfiguration(true, MY_PORT, MY_CLIENT_ID); AmazonDynamoDB dynamodb = AmazonDynamoDBClientBuilder.standard() .withClientSideMonitoringConfigurationProvider(new StaticCsmConfigurationProvider(csmConfig)) .build();

选项 3 设置Java系统属性

如果在环境变量中未找到任何 开发工具包指标 配置,则开发工具包会查看特定 Java 系统属性。

要打开 开发工具包指标,请在执行应用程序时传递以下系统属性标志。

-Dcom.amazonaws.sdk.csm.enabled="true"

您还可以使用属性对象以编程方式设置值。

Properties props = System.getProperties(); props.setProperty("com.amazonaws.sdk.csm.enabled", "true");

其他配置设置可用。

注意 启用开发工具包指标不会将您的凭证配置为使用 AWS 服务。

选项 4:AWS 共享配置文件

如果在环境变量或 Java 系统属性中未找到任何 开发工具包指标 配置,则开发工具包将查看您的默认 AWS 配置文件字段。如果 AWS_DEFAULT_PROFILE 设置为默认值之外的其他值,请更新该配置文件。要启用 开发工具包指标,请将 csm_enabled 添加到位于 ~/.aws/config 的共享配置文件。

[default] csm_enabled = true [profile aws_csm] csm_enabled = true

其他配置设置可用。

注意 启用 开发工具包指标 独立于配置凭据以使用AWS服务。您可以使用其他配置文件进行身份验证。

更新 CloudWatch 代理

要更改端口,您需要设置值,然后重新启动当前处于活动状态的所有 AWS 作业。

选项 1 设置环境变量

大多数服务都使用默认端口。但是,如果您的服务需要唯一的端口 ID,请将 AWS_CSM_PORT=[port_number] 添加到主机的环境变量。

export AWS_CSM_ENABLED=true export AWS_CSM_PORT=1234

选项 2:设置Java系统属性

大多数服务都使用默认端口。但是,如果您的服务需要唯一的端口 ID,请在执行您的应用程序时指定 -Dcom.amazonaws.sdk.csm.port=[port_number] 系统属性。

com.amazonaws.sdk.csm.enabled=true com.amazonaws.sdk.csm.port=1234

选项 3 AWS 共享配置文件

大多数服务都使用默认端口。但是,如果您的服务需要唯一的端口 ID,请将 csm_port = [port_number] 添加到 ~/.aws/config

[default] csm_enabled = false csm_port = 1234 [profile aws_csm] csm_enabled = false csm_port = 1234

重新启动 开发工具包指标

要重新启动作业,请运行以下命令。

amazon-cloudwatch-agent-ctl –a stop; amazon-cloudwatch-agent-ctl –a start;

禁用 开发工具包指标

关闭 开发工具包指标,设置 CSM_已启用错误 在您的环境变量中,或者您的AWS共享配置文件位于 ~/.aws/config。然后重新启动 CloudWatch 代理以使更改生效。

环境变量

export AWS_CSM_ENABLED=false

AWS 共享配置文件

从位于 ~/.aws/config 的 AWS 共享配置文件的配置文件中删除 csm_enabled

注意

环境变量会覆盖 AWS 共享配置文件。如果已在环境变量中启用 开发工具包指标,则 开发工具包指标 保持启用状态。

[default] csm_enabled = false [profile aws_csm] csm_enabled = false

要禁用 开发工具包指标,请使用以下命令停止 CloudWatch 代理。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a stop && echo "Done"

如果您正在使用其他 CloudWatch 功能,请使用以下命令重新启动 CloudWatch 代理。

amazon-cloudwatch-agent-ctl –a start;

重新启动 开发工具包指标

要重新启动 开发工具包指标,请运行以下命令。

amazon-cloudwatch-agent-ctl –a stop; amazon-cloudwatch-agent-ctl –a start;

开发工具包指标 的定义

您可以使用以下开发工具包指标描述来解释您的结果。通常,这些指标可在常规业务审核期间与您的技术客户经理进行审核。AWS Support 资源和您的技术客户经理应该有权访问开发工具包指标数据以帮助您解决案例,但如果您发现的数据令人困惑或是意外数据,但似乎不会对您的应用程序的性能产生负面影响,那么最好是在预定的业务审核期间审核该数据。

指标 CallCount

Definition

从您的代码向 AWS 服务进行的成功或失败的 API 调用总数。

使用方法

将它用作基准与其他指标(如错误或限制)相关联。

指标 ClientErrorCount

Definition

失败且出现客户端错误(4xx HTTP 响应代码)的 API 调用数量。示例:限制、拒绝访问、S3存储区不存在、参数值无效。

使用方法

除了在某些与限制相关的情况下(例如,由于需要增加限额而发生限制时),此指标可以指明应用程序中需要修复的内容。

指标 ConnectionErrorCount

Definition

由于连接到服务出错而失败的 API 调用数量。这些可能由客户应用程序与 AWS 服务之间的网络问题所导致,包括负载均衡器问题、DNS 故障以及中转提供商问题。在某些情况下,AWS 问题可能导致此错误。

使用方法

使用此指标可确定问题是特定于您的应用程序,还是由基础设施和/或网络所导致。较高的 ConnectionErrorCount 可能也指示 API 调用的超时值较短。

指标 ThrottleCount

Definition

由于 AWS 服务的限制而失败的 API 调用数量。

使用方法

使用此指标来评估应用程序是否已达到限制,以及确定重试和应用程序延迟的原因。请考虑在窗口之上分配调用,而不是批处理调用。

指标 ServerErrorCount

Definition

由于来自 AWS 服务的服务器错误(5xx HTTP 响应代码)而失败的 API 调用数量。这些错误通常由 AWS 服务所导致。

使用方法

确定开发工具包重试或延迟的原因。此指标并不总是指示 AWS 服务出现故障,因为有些 AWS 团队将延迟分类为 HTTP 503 响应。

指标 EndToEndLatency

Definition

应用程序使用 AWS 开发工具包进行调用(含重试)的总时间。换句话说,无论多次尝试后是否成功,或者一旦调用由于不可传递的错误而失败。

使用方法

确定 AWS API 调用对应用程序总体延迟的贡献。网络、防火墙或其他配置设置问题或开发工具包重试导致的延迟可能会导致延迟高于预期值。