AWS CloudWatch 自定义指标发布示例

AWS CloudWatch 自定义指标发布示例

我正在努力将自定义指标发布到 AWS CloudWatch。问题是我的指标“testmetric”没有显示在 CloudWatch UI 上。我可能错过了 UI 上应该显示指标的部分,或者我可能没有在某个地方启用某些功能……一无所知

我尝试使用 Boto(python 包 boto==2.8.0)

from boto.ec2.cloudwatch import CloudWatchConnection
cwc = CloudWatchConnection(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)
cwc.put_metric_data(**{
    "namespace" : "testns",
    "name" : "testmetric",
    "unit" : "Count",
    "value" : 3
})

还尝试了 loggly 的这个简单模块:https://github.com/loggly/loggly-watch/blob/master/cloudwatch.py

谢谢

答案1

您错误地将参数传递给了 put_metric_data。您将它们作为单个字典传递,而它们应该是像这样的单独参数:

cwc.put_metric_data(namespace="testns",name="testmetric",unit="Count",value=3.0)

此外,如上所示,值应该是浮点数,而不是整数。

答案2

如果没有提供区域CloudWatchConnection,它会自动选择us-east-1,并且指标应该在那里可用。

另外,获取区域时要小心,从 boto v2.27.0 开始,boto.ec2.get_region("us-west-1") 返回的CloudWatchConnection:ec2.us-west-1.amazonaws.com是您需要的CloudWatchConnection:monitoring.us-west-1.amazonaws.com。请使用类似下面的代码:

for r in boto.ec2.cloudwatch.regions():
    if (r.name == 'us-west-1'):
        region = r

如果您按名称进行过滤,AWS UI 应该会显示该指标,或者可以通过从下拉列表中选择自定义命名空间来访问它:

在此处输入图片描述

相关内容