amazon-web-services - 选择或汇总针对 Cloudwatch 数据代理指标记录的维度
问题描述
我正在使用 Cloudwatch 数据代理的 Procstat 插件来记录一些每个进程的 CPU 使用情况。
这一切都被收集好了,但是该指标被记录为“实例 ID(例如 i-143...)”、“图像 ID(例如 ami-123...)”和“实例类型”(例如 t3.small )'
当服务器被缩小和缩小时,我的警报会因为实例 ID 发生变化而中断。我还更新了 AMI,并可能在某些时候更改实例类型。如果我正在处理实例 ID,则 AMI 和实例类型无论如何都会被修复。
有没有办法配置 Cloudwatch 数据代理来记录没有这些维度的指标,或者让 Cloudwatch 指标聚合所有实例 ID?
解决方案
我在 CloudWatch 代理配置的append_dimensions
和选项中找到了我需要的内容。aggregate_dimensions
在配置中“指标”块的顶层,您可以添加维度:
"metrics": {
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}",
"ImageId": "${aws:ImageId}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
},
...
但是,您只能添加这些 AWS 维度。
您可以添加自定义维度,但仅限于特定指标。因此,例如,在 CPU 指标收集器中:
"metrics_collected": {
"cpu": {
"append_dimensions": {
"CustomDimension": "Foo"
},
"measurement": [
"cpu_usage_idle",
"cpu_usage_iowait",
"cpu_usage_user",
"cpu_usage_system"
],
"metrics_collection_interval": 60,
"resources": [
"*"
],
"totalcpu": false
},
您也可以将这些添加到 procstat 组中,尽管它是一个列表:
"procstat": [
{
"append_dimensions": {
"CustomDimension": "Foo"
},
"pid_file": "/var/run/celerybeat/beat.pid",
"measurement": [
"cpu_usage",
"memory_locked",
"pid_count"
]
}
aggregation_dimensions
最后,您可以在指标块的顶层使用这些自定义维度进行聚合。
虽然自定义维度附加在特定的 metric_collected 中,但您可以在 aggregation_dimensions 时将这些维度放在顶部
"metrics": {
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
},
"aggregation_dimensions" : [
["AutoScalingGroupName"],
["AutoScalingGroupName", "InstanceType"],
["CustomDimension"],
["CustomDimension", "InstanceType"],
["CustomDimension", "pidfile"],
],
"metrics_collected": {
...
这些文档位于https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html但我花了一段时间才将它们挖掘出来、测试它们并工作自定义维度需要存在于特定metrics_collected
部分中。
推荐阅读
- jquery - ASP.NET MVC - 获取没有 ID 的复选框
- django - Django objects.filter(date...) - 模板实现
- c++ - 悬空指针/对 int 和 char* 常量的引用
- visual-studio - 意外的开头大括号缩进
- html - 为什么 IE 11 中的“blank1”不接受网格行跨度
- css - 使用角度材料时无法对齐复选框
- javascript - 在将嵌套锚标记添加到部分元素后单击事件适得其反
- python - 熊猫通过数据框的 2 列将一个系列映射到另一个系列
- pandas - Pandas - 将日期转换为日期时间格式
- java - 导航抽屉未使用 RecyclerView 加载布局