Bien qu'il dise que re: dash peut utiliser python comme source de données, il n'y a pas beaucoup d'informations dans la documentation, je vais donc écrire un exemple d'exécution simple.
Fondamentalement, dans une variable de type dictionnaire nommée "résultat" http://docs.redash.io/en/latest/dev/results_format.html Si vous entrez la valeur selon le format spécifié dans, elle sera reconnue sans autorisation.
Accédez à l'écran Ajouter une source de données, définissez le type sur Python et saisissez les modules qui permettent l'importation, séparés par des virgules. J'entre boto3 et datetime pour une utilisation ultérieure.
Définissez la source de données de requête sur la source de données que vous venez d'ajouter et entrez la requête suivante.
result = {}
add_result_row(result, {'name':'hoge', 'count':5, 'countf':6.3})
add_result_row(result, {'name':'bar', 'count':11, 'countf':3.14159})
add_result_row(result, {'name':'foo', 'count':0, 'countf':99.9999})
add_result_column(result, 'name', '', 'string')
add_result_column(result, 'count', '', 'integer')
add_result_column(result, 'countf', '', 'float')
Les méthodes d'aide add_result_row et add_result_column étant fournies par défaut, Ils sont utilisés pour les définitions de colonne et les définitions de ligne.
add_result_row ajoute une ligne. Si vous passez le type de dictionnaire qui est une paire de nom de colonne et de valeur au deuxième argument, il sera ajouté au résultat comme vous le souhaitez.
add_result_column ajoute une définition de colonne. Nom de colonne dans le deuxième argument (nom correspondant au type de dictionnaire à ajouter à add_result_row) Afficher le nom dans le troisième argument Tapez comme quatrième argument (correspondant à chaîne, entier, flottant, booléen, date, datetime) Spécifier.
Une fois exécutés, les résultats suivants seront obtenus.
Dans la requête précédente, les données sont solidement écrites dans la source et ce n'est pas intéressant, alors écrivons une requête pour obtenir des données externes.
Cette fois, obtenons l'utilisation du processeur de l'instance avec Amazon CloudWatch.
Le système d'exploitation utilise l'AMI ubuntu officiellement distribuée.
Installez boto3 à l'avance avec `` sudo pip install boto3 ''. Autorisez également l'accès à CloudWatch avec IamRole.
Créez une nouvelle requête et écrivez le code suivant.
'target-instanceId'À la place de, écrivez l'ID de l'instance que vous souhaitez obtenir.
De plus, comme le graphique re: dash ne peut pas être affiché dans des unités plus fines que la date, `` `` Period = 3600 '' 'est défini et la moyenne est prise en unités horaires.
La valeur de retour de cloud_watch.get_metric_statistics est bouclée, ajoutant l'utilisation du processeur et la date à la ligne.
Pour la valeur de retour détaillée de cloud_watch.get_metric_statistics, veuillez vous référer au [Blog de la méthode de classe](http://dev.classmethod.jp/cloud/aws/get_value_of_cloudwatch_using_boto3/).
```python3
import boto3
import datetime
result = {}
cloud_watch = boto3.client('cloudwatch', region_name='ap-northeast-1')
get_metric_statistics = cloud_watch.get_metric_statistics(
Namespace='AWS/EC2',
MetricName='CPUUtilization',
Dimensions=[
{
'Name': 'InstanceId',
'Value': 'target-instanceId'
}
],
StartTime=datetime.datetime.now() - datetime.timedelta(days=1),
EndTime=datetime.datetime.now(),
Period=3600,
Statistics=['Average'])
for d in get_metric_statistics['Datapoints']:
add_result_row(result, {'average':d['Average'], 'datetime':d['Timestamp']. isoformat()})
add_result_column (result, 'average', 'aaaaa', 'float')
add_result_column (result, 'datetime', '', 'datetime')
Si vous faites cela, vous obtiendrez les résultats suivants:
De plus, si vous créez un graphique à lignes de pliage, ce seront ces données.
Vous pouvez également l'utiliser comme un serveur de surveillance en obtenant les dernières données et en définissant des alertes.
Recommended Posts