Как составить список метрик CloudWatch с помощью boto3 - PullRequest
0 голосов
/ 01 мая 2020

Есть ли у кого-нибудь пример boto3, как получить те же результаты, что и эта * CLI-команда AWS:

aws cloudwatch list-metrics --namespace "CWAgent" --metric-name "LogicalDisk % Free Space" --query Metrics[*]

Я пытаюсь получить значение для этих измерений:

instance, InstanceId, ImageId, objectname, InstanceType

Это код, который я пытаюсь использовать:

import boto3

# Create CloudWatch client
client = boto3.client('cloudwatch')

obj = []
response = client.list_metrics(
    Namespace='CWagent',
    MetricName='LogicalDisk % Free Space',
    Dimensions=[
        {
            'Name': 'instance',
            'Value': obj
        },
        {
            'Name': 'InstanceId',
            'Value': obj
        },
        {
            'Name': 'ImageId',
            'Value': obj
        },
        {
            'Name': 'objectname',
            'Value': obj
        },
        {
            'Name': 'InstanceType',
            'Value': obj
        },
    ],
    NextToken='string'
)

for r in response:
    a = instance
    b = InstanceId
    c = ImageId
    d = objectname
    e = InstanceType
    print(a, b, c, d, e)

1 Ответ

0 голосов
/ 02 мая 2020

Этот код boto3 будет обращаться к измерениям метрик CWAgent из отдельного экземпляра или всех экземпляров о том, как установить переменную экземпляров: `

import boto3

ec2 = boto3.resource('ec2')
instances = ec2.instances.filter(Filters=[{'Name': 'tag:Name', 'Values': ['MY_INSTANCE_NAME']}])

#instances = ec2.instances.all()

cw = boto3.client('cloudwatch')

for i in instances:
    a = i.instance_id

# List metrics through the pagination interface
    paginator = cw.get_paginator('list_metrics')
    for response in paginator.paginate(
        MetricName='LogicalDisk % Free Space',
        Namespace='CWAgent',
        Dimensions=[
        {'Name': 'instance'},
            {'Name': 'InstanceId', 'Value': a},
            {'Name': 'ImageId'},
            {'Name': 'objectname'},
            {'Name': 'InstanceType'}
        ],):
            print(response['Metrics'])

`

...