1

Я плохо борюсь с публикацией пользовательской метрики в AWS CloudWatch. Проблема в том, что моя метрика «testmetric» не отображается в пользовательском интерфейсе CloudWatch. Возможно, мне не хватает той части пользовательского интерфейса, где должна быть видна метрика, или я не могу что-то включить ... Бестолковые

Я пытался с 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

Спасибо

2 ответа2

3

Вы неправильно передаете аргументы для put_metric_data. Вы передаете их как один словарь, в то время как они должны быть отдельными аргументами, подобными этому

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

Кроме того, значение должно быть числом с плавающей точкой, как показано выше, а не целым числом.

0

Если регион не указан для 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 должен либо показывать метрику, если вы фильтруете ее по имени, доступ к ней можно получить, выбрав собственное пространство имен из выпадающего списка:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .