我无法将服务器工作队列长度自定义指标发布到Cloud Watch。我能够弄清楚我的错误但无法做到,因为我对在那里使用什么一无所知。
这是此指标的 PerformanceCounter 块:
{
"Id": "PerformanceCounter",
"FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
"Parameters": {
"CategoryName": "Server Work Queues",
"CounterName": "Queue Length",
"InstanceName": "",
"MetricName": "QueueDepth",
"Unit": "Count",
"DimensionName": "InstanceId",
"DimensionValue": "{instance_id}"
}
},
上述代码的 问题 是 InstanceName 参数。
根据 AWS文档,
在InstanceName参数中,从Add Counters输入valutes 性能监视器中的对话框,可以是以下之一:
空白,如果所选对象没有实例。
所选对象的单个实例。
_Total使用所有实例的聚合。
注意:请勿使用星号(*)表示所有实例,因为每个性能计数器组件仅支持一个指标。
性能监视器中的添加计数器对话框显示以下内容:
因此,计数器部分显示所有实例。如上所述,AWS文档表示如果计数器显示所有实例,则不使用*,但未说明要使用的内容。我使用_Total并将其留空。他们俩都没有用。
通过遵循上述相同点,我成功地监控了内存,逻辑磁盘空间,分页文件等。
对于分页文件,我使用 _Total 作为InstanceName,因为性能计数器中提到了它。下面的快照显示了。
对于Logical Disk Free Space,我使用 _Total 作为InstanceName作为PerformanceMonitor中的计数器出现。
对于Memory,我将InstanceName值保留为空白,因为PerformanceMonitor中的计数器没有显示任何内容。
我差不多三天都在尝试这个,没有任何成功。请建议我在那里使用什么。
答案 0 :(得分:0)
根据文件说明:
对于要上传到CloudWatch的每个性能计数器,请复制PerformanceCounter部分并更改Id参数以使其唯一(例如,“PerformanceCounter2”)并根据需要更新其他参数。
假设您的PerformanceCounter
文件中有其他JSON
个部分,则每个部分都应包含唯一的ID。其他一切似乎都很好。
答案 1 :(得分:0)
您是否尝试过这样的高级API调用: https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-cloudwatch-publish-custom-metrics.html
我遵循了这个步骤,没有发现任何问题。