我正在使用Cloudwatch Data Agent的Procstat插件来记录一些每个进程的CPU使用情况。
这一切都在收集中,但度量是用“实例ID (例如i-143...)”、“映像ID (例如ami-123...)”记录的。和‘实例类型(例如t3.mall)’
当服务器被扩展和扩展时,我的告警会中断,因为实例ID发生了变化。我还更新了AMI,并可能在某个时候更改实例类型。如果我处理的是一个实例ID,那么AMI和实例类型无论如何都是固定的。
有没有办法将Cloudwatch数据代理配置为记录没有这些维度的指标,或者让Cloudwatch metrics聚合所有实例ID?
发布于 2020-11-28 01:20:14
我在CloudWatch代理配置的append_dimensions和aggregate_dimensions选项中找到了所需的内容。
在配置中"metrics“块的顶层,您可以添加维度:
"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部分中。
https://stackoverflow.com/questions/64332722
复制相似问题