如何为amazon-cloudwatch-agent collectd摄入的CloudWatch指标设置单位
为collectd来源的CloudWatch指标指定单位的解决方案
Amazon CloudWatch Agent原生支持为采集到的指标自定义单位,不需要修改collectd或底层telegraf组件逻辑,可通过以下两种方案实现:
方法1:使用CloudWatch Agent内置指标装饰(metric_decoration)配置(推荐)
直接修改CloudWatch Agent的JSON配置文件,为指定指标绑定单位:
- 找到CloudWatch Agent配置文件,默认路径为
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json - 在
metrics配置块下新增metric_decoration数组,按需求添加指标和对应单位,配置示例如下:
{ "metrics": { "metrics_collected": { "collectd": { // 保持原有collectd采集配置不变 } }, "metric_decoration": [ { "metric_name": "collectd_GenericJMX_java_heap_used", "unit": "Bytes" }, { "metric_name": "collectd_cpu_usage_idle", "unit": "Percent" } // 可按相同格式添加更多指标的单位配置 ] } }
- 配置修改完成后,执行命令重启Agent生效:
sudo systemctl restart amazon-cloudwatch-agent - 新上报的指标会自动携带配置的单位,历史上报的指标不会回溯更新单位属性。
方法2:使用CloudWatch Metric Streams转换规则
如果需要配置单位的指标数量较多,可通过CloudWatch Metric Streams设置批量转换规则,通过指标名称匹配批量赋值单位,适合大规模集群部署场景。
注意:该方案会产生额外的Metric Streams和数据转换成本,仅推荐指标量级较大的场景使用
补充说明
底层telegraf.Metric确实原生不携带单位字段,但CloudWatch Agent在telegraf上层做了功能扩展,metric_decoration专门用于补充指标元数据,完全兼容所有collectd来源的指标。所有CloudWatch支持的单位类型都可在配置中使用,常见类型包括Bytes、Percent、Count、Milliseconds等。
内容的提问来源于stack exchange,提问作者RubenLaguna
相关产品推荐
相关产品推荐

