Obtenez une liste des métriques CloudWatch et une table de correspondance des unités unitaires avec Python boto

Motivation

Je voulais savoir ce qu'était chaque unité dans Metrics of CloudWatch, mais je n'avais pas une bonne liste, alors je l'ai faite. bash + ʻaws-cli semble être ennuyeux, donc il semble que vous puissiez le faire rapidement avec Ruby, mais si vous étudiez, avec Python`.

Environnement d'exploitation

La source

#!/usr/bin/env python

import sys
import datetime
import re
from boto.ec2 import cloudwatch

end    = datetime.datetime.utcnow()
start  = end - datetime.timedelta(minutes=10)

cw = cloudwatch.connect_to_region('ap-northeast-1')

def main():

    if len(sys.argv) not in [2,3]:
        print('Usage: python %s <namespace> [separator]' % sys.argv[0])
        quit()

    namespace = sys.argv[1]
    separator = "\t" if len(sys.argv) == 2 else sys.argv[2]
    results   = []

    for metric in cw.list_metrics(namespace=namespace):
        for data in metric.query(start_time=start, end_time=end, statistics='Average'):
            results.append(separator.join([namespace, metric.name, data['Unit']]))

    results = list(set(results))
    for ret in results:
        print(ret)

if __name__ == '__main__':
	main()

Comment utiliser

python <script-file-name> <namespace> [separator]

Si separator n'est pas spécifié, il sera délimité par des tabulations.

Résultat d'exécution

Pour ceux qui ne savent pas s'ils sont là, mais qui veulent juste connaître les résultats. (EC2, EBS, RDS uniquement)

$ python get-metrics-unit-type.py AWS/EC2
AWS/EC2	CPUCreditUsage	Count
AWS/EC2	CPUCreditBalance	Count
AWS/EC2	StatusCheckFailed	Count
AWS/EC2	DiskReadOps	Count
AWS/EC2	StatusCheckFailed_System	Count
AWS/EC2	DiskWriteBytes	Bytes
AWS/EC2	NetworkOut	Bytes
AWS/EC2	DiskReadBytes	Bytes
AWS/EC2	NetworkIn	Bytes
AWS/EC2	DiskWriteOps	Count
AWS/EC2	StatusCheckFailed_Instance	Count
AWS/EC2	CPUUtilization	Percent

$ python get-metrics-unit-type.py AWS/EBS
AWS/EBS	VolumeWriteBytes	Bytes
AWS/EBS	VolumeQueueLength	Count
AWS/EBS	VolumeReadOps	Count
AWS/EBS	VolumeIdleTime	Seconds
AWS/EBS	VolumeTotalWriteTime	Seconds
AWS/EBS	VolumeWriteOps	Count

$ python get-metrics-unit-type.py AWS/RDS
AWS/RDS	FreeableMemory	Bytes
AWS/RDS	NetworkTransmitThroughput	Bytes/Second
AWS/RDS	DatabaseConnections	Count
AWS/RDS	WriteIOPS	Count/Second
AWS/RDS	ReadIOPS	Count/Second
AWS/RDS	ReadLatency	Seconds
AWS/RDS	WriteThroughput	Bytes/Second
AWS/RDS	ReadThroughput	Bytes/Second
AWS/RDS	FreeStorageSpace	Bytes
AWS/RDS	WriteLatency	Seconds
AWS/RDS	DiskQueueDepth	Count
AWS/RDS	CPUUtilization	Percent
AWS/RDS	CPUCreditUsage	Count
AWS/RDS	NetworkReceiveThroughput	Bytes/Second
AWS/RDS	CPUCreditBalance	Count
AWS/RDS	BinLogDiskUsage	Bytes
AWS/RDS	SwapUsage	Bytes

impression de boto

――Au début, ce n'était pas officiel mais fait par la communauté (n'est-ce pas?), Donc je pense que la convivialité est un peu différente des autres SDK. «Au contraire, cela semble être pratiquement important, donc si vous vous y habituez, il peut être plus facile à utiliser que d'autres.

Recommended Posts

Obtenez une liste des métriques CloudWatch et une table de correspondance des unités unitaires avec Python boto
Obtenir une liste d'utilisateurs IAM avec Boto3
Python: obtenir une liste de méthodes pour un objet
Obtenez une liste des livres électroniques DMM achetés avec Python + Selenium
Obtenez une liste de fichiers dans un dossier avec python sans chemin
[Python] Obtenir une liste de dossiers uniquement
Obtenez la table de correspondance du nom OTU et de sa lignée (porte, famille, genre, etc.) avec QIIME2
Pour Windows: obtenez une liste de répertoires et de fichiers dans un répertoire spécifique.
Obtenez une liste des packages installés dans l'environnement actuel avec python
J'ai mesuré la vitesse de la notation d'inclusion de liste, pendant et pendant avec python2.7.
[Python] Créer une liste de date et d'heure (type datetime) pour une certaine période
Obtenez une liste d'articles publiés par les utilisateurs avec Python 3 Qiita API v2
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Comment obtenir une liste de fichiers dans le même répertoire avec python
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Liste des bibliothèques Python pour les data scientists et les data ingénieurs
Obtenez une grande quantité de données Twitter de Starba avec python et essayez l'analyse de données Partie 1
Après avoir frappé l'API Qiita avec Python pour obtenir une liste d'articles pour les débutants, nous visiterons les articles divins
[Python] Créer une liste de dates et d'heures pour une période spécifiée
Procédure d'installation pour Python et Ansible avec une version spécifique
Obtenez le nombre d'éléments spécifiques dans la liste python
[Python] Comment supprimer des lignes et des colonnes dans une table (liste des options de méthode de dépôt)
Discord's Python 1.5 ou version ultérieure, je ne parviens pas à obtenir la liste des membres
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Débarrassez-vous des données sales avec Python et les expressions régulières
Détecter les objets d'une couleur et d'une taille spécifiques avec Python
Comment obtenir une liste d'exceptions intégrées pour python
Python: créer un dictionnaire à partir d'une liste de clés et de valeurs
Exemple d'analyse HTTP GET et JSON avec Pepper Python
Bibliothèque pour spécifier un serveur de noms en python et dig
Tourner un tableau de chaînes avec une instruction for (Python3)
python Remarque: enumerate () -Obtenir l'index et l'élément de la liste en même temps et tourner pour l'instruction
Extraire le jeu de données bigquery et la liste des tables avec python et la sortie en CSV
Créer et tester un environnement CI pour plusieurs versions de Python
Essayez d'obtenir la liste des fils du bulletin d'information (je n'aime pas) avec Python.
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
J'ai essayé de créer une liste de nombres premiers avec python
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
L'histoire de la création d'un pilote standard pour db avec python.
J'ai essayé d'obtenir une liste de noms AMI en utilisant Boto3
Essayez d'obtenir des métriques CloudWatch avec la source de données python re: dash
Premiers pas avec python3
Coexistence de Python2 et 3 avec CircleCI (1.0)
[Python] Comment créer une liste de types de dictionnaire, ajouter / modifier / supprimer des éléments et extraire avec une instruction for
Obtenez une liste des paramètres de caméra qui peuvent être définis avec cv2.VideoCapture et faites-en un type de dictionnaire
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Obtenez des images d'OpenStreetMap et de la carte de l'Institut géographique avec Python + py-staticmaps
Une collection de conseils pour accélérer l'apprentissage et le raisonnement avec PyTorch
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Recevez une liste des résultats du traitement parallèle en Python avec starmap
Obtenez des images de la carte OpenStreetMap et de l'Institut géographique avec Python + staticmap
Obtenez et estimez la forme de la tête en utilisant Dlib et OpenCV avec python
Explication de la création d'une application pour afficher des images et dessiner avec Python
Afficher une liste d'alphabets en Python 3
Un mémo contenant Python2.7 et Python3 dans CentOS
Connectez beaucoup de Python ou et et
Obtenez un jeton pour conoha avec python
Pour ceux qui veulent apprendre Excel VBA et se lancer avec Python
Jusqu'à ce que vous obteniez des données quotidiennes pour plusieurs années de stock japonais et que vous les sauvegardiez dans un seul CSV (Python)