it-swarm-ja.com

AWSCloudWatchカスタムメトリックパブリッシングの例

カスタムメトリックスをAWSCloudWatchに公開するのに非常に苦労しています。問題は、私のメトリクス「testmetric」がCloudWatchUIに表示されないことです。メトリックが表示される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
Vajk Hermecz

リージョンがCloudWatchConnectionに指定されていない場合、自動的にus-east-1を取得し、そこでメトリックが利用可能になります。

また、リージョンの取得にも注意してください。botov2.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は、名前でフィルタリングした場合にメトリックを表示する必要があります。ドロップダウンからカスタム名前空間を選択することで、メトリックにアクセスできます。

enter image description here

0
Vajk Hermecz

Put_metric_dataに引数を誤って渡しています。これらは単一の辞書として渡されますが、次のような個別の引数である必要があります。

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

また、上記のように、値は整数ではなく浮動小数点数である必要があります。

3
uberdog