2 votes

Boto3 - Imprimer l'utilisation moyenne du processeur d'une instance AWS

Je suis en train d'essayer d'imprimer uniquement la moyenne de l'utilisation du CPU d'une instance AWS. Ce code va imprimer la 'response' mais la boucle for à la fin n'imprime pas l'utilisation moyenne. Est-ce que quelqu'un pourrait aider ? Merci d'avance!

    import boto3
    import sys
    from datetime import datetime, timedelta
        client = boto3.client('cloudwatch')
        response = client.get_metric_statistics(
            Namespace='AWS/EC2',
            MetricName='CPUUtilization',
            Dimensions=[
                {
                'Name': 'InstanceId',
                'Value': 'i-1234abcd'
                },
            ],
            StartTime=datetime(2018, 4, 23) - timedelta(seconds=600),
            EndTime=datetime(2018, 4, 24),
            Period=86400,
            Statistics=[
                'Average',
            ],
            Unit='Percent'
        )
    for cpu in response:
        if cpu['Key'] == 'Average':
            k = cpu['Value']
    print(k)

Voici le message d'erreur que je reçois:

    Traceback (most recent call last):
      File "C:\bin\TestCW-CPU.py", line 25, in 
        if cpu['Key'] == 'Average':
    TypeError: string indices must be integers

2voto

helloV Points 28122
pour cpu in response['Datapoints']:
  if 'Average' in cpu:
    print(cpu['Average'])

2.25348611111
2.26613194444

Vous auriez pu facilement le découvrir si vous aviez imprimé la valeur de cpu:

print(response)

for cpu in response['Datapoints']:
  print(cpu)

{u'Timestamp': datetime.datetime(2018, 4, 23, 23, 50, tzinfo=tzlocal()), u'Average': 2.2534861111111106, u'Unit': 'Percent'}
{u'Timestamp': datetime.datetime(2018, 4, 22, 23, 50, tzinfo=tzlocal()), u'Average': 2.266131944444444, u'Unit': 'Percent'}

0voto

jmoorhead Points 31

Cela affichera la moyenne du CPU :

    for k, v in response.items():
        if k == 'Datapoints':
        for y in v:
            print(y['Average'])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X