使用 StatsD 检索自定义指标 - Amazon CloudWatch

使用 StatsD 检索自定义指标

您可以将 CloudWatch 代理和 StatsD 协议结合使用,以从应用程序或服务中检索附加的自定义指标。StatSD 是一种流行的开源解决方案,可以从各种应用程序中收集指标。StatSD 对于检测您自己的指标特别有用。有关将 CloudWatch 代理和 StatSD 结合使用的示例,请参阅如何使用 Amazon CloudWatch 代理更好地监控您的自定义应用程序指标

StatsD 在 Linux 服务器以及运行 Windows Server 的服务器上受支持。CloudWatch 支持以下 StatsD 格式:

MetricName:value|type|@sample_rate|#tag1: value,tag1...
  • MetricName – 一个没有冒号、竖线、# 字符或 @ 字符的字符串。

  • value – 它可以是整数或浮点数。

  • type – 指定 c 表示计数器,g 表示计量器,ms 表示计时器,h 表示直方图,s 表示集合。

  • sample_rate –(可选)一个介于 0 和 1 之间的浮点数(含)。仅用于计数器、直方图和计时器指标。默认值为 1(采样时间为 100%)。

  • tags –(可选)一个逗号分隔的标签列表。StatsD 标签类似于 CloudWatch 中的维度。对键/值标签使用冒号,例如 env:prod

您可以使用任何遵循此格式的 StatsD 客户端将指标发送到 CloudWatch 代理。有关一些可用 StatsD 客户端的更多信息,请参阅 GitHub 上的 StatsD 客户端页面

要收集这些自定义指标,请将 "statsd": {} 行添加到代理配置文件的 metrics_collected 部分。您可以手动添加此行。如果您使用向导创建配置文件,向导会为您完成此操作。有关更多信息,请参阅 创建 CloudWatch 代理配置文件

StatsD 默认配置适用于大多数用户。有一些可选字段,您可以根据需要将其添加到代理配置文件的 statsd 部分:

  • service_address – CloudWatch 代理应该侦听的服务地址。格式为 ip:port。如果您忽略了 IP 地址,则该代理将侦听所有可用接口。只有 UDP 格式受支持,因此您不需要指定 UDP 前缀。

    默认值为 :8125

  • metrics_collection_intervalStatsD 插件运行和收集指标的频率(秒)。默认值为 10 秒。范围为 1 – 172000。

  • metrics_aggregation_interval – CloudWatch 将指标聚合为单个数据点的频率(秒)。默认值为 60 秒。

    例如,如果 metrics_collection_interval 为 10,并且 metrics_aggregation_interval 为 60,则 CloudWatch 每 10 秒收集数据。在每分钟之后,来自该分钟的六个数据读数被聚合到单个数据点中,该数据点被发送到 CloudWatch。

    范围为 1 – 172000。将 metrics_aggregation_interval 设置为 0 会禁用 StatsD 指标的聚合。

  • allowed_pending_messages – 允许排队的 UDP 消息数量。当队列已满时,StatsD 服务器会开始丢弃数据包。默认值是 10000。

  • drop_original_metrics – 可选。如果您使用 metrics 部分中的 aggregation_dimensions 字段将指标以汇总为聚合结果,则默认情况下,代理会同时发送聚合指标和原始指标,原始指标是按维度的每个值分开的。如果您不希望将原始指标发送到 CloudWatch,则可以指定此参数和指标列表。同时指定了此参数的指标将不会将其各维度的指标报告给 CloudWatch,而只报告聚合指标。这可以减少代理要采集的指标数量,从而降低成本。

下面是代理配置文件的 statsd 部分的示例,使用默认端口、自定义集合和聚合间隔。

{ "metrics":{ "metrics_collected":{ "statsd":{ "service_address":":8125", "metrics_collection_interval":60, "metrics_aggregation_interval":300 } } } }

查看由 CloudWatch 代理导入的 StatsD 指标

将 StatsD 指标导入到 CloudWatch 后,您可以以时间序列图形的形式查看这些指标,并创建可监视这些指标的告警,并在它们超出指定的阈值时通知您。以下程序介绍了如何以时间序列图形的方式查看 StatsD 指标。有关设置告警的更多信息,请参阅 使用 Amazon CloudWatch 告警

在 CloudWatch 控制台中查看 StatsD 指标
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择指标

  3. 为该代理收集的指标选择命名空间。默认情况下,该命名空间为 CWAgent,但您可能已经在 CloudWatch 代理配置文件中指定了不同的命名空间。

  4. 选择指标维度(例如 Per-Instance Metrics(每个实例的指标))。

  5. All metrics 选项卡显示命名空间中该维度的所有指标。您可执行以下操作:

    1. 要为指标绘制图表,请选中该指标旁的复选框。要选择所有指标,请选中表的标题行中的复选框。

    2. 要对表进行排序,请使用列标题。

    3. 要按资源进行筛选,请选择资源 ID,然后选择 Add to search

    4. 要按指标进行筛选,请选择指标名称,然后选择 Add to search

  6. (可选)要将此图表添加到 CloudWatch 控制面板,请选择 Actions(操作),然后选择 Add to dashboard(添加到控制面板)