Versuchen Sie, CloudWatch-Metriken mit der Python-Datenquelle re: dash abzurufen

Obwohl es heißt, dass re: dash Python als Datenquelle verwenden kann, enthält die Dokumentation nicht viele Informationen, sodass ich ein einfaches Ausführungsbeispiel schreiben werde.

Überblick

Grundsätzlich in einer Wörterbuchvariablen namens "Ergebnis" http://docs.redash.io/en/latest/dev/results_format.html Wenn Sie den Wert gemäß dem in angegebenen Format eingeben, wird er ohne Erlaubnis erkannt.

Datenquelle hinzufügen

Wechseln Sie zum Bildschirm Datenquelle hinzufügen, setzen Sie den Typ auf Python und geben Sie die Module ein, die den Import ermöglichen, getrennt durch Kommas. Ich gebe boto3 und datetime für die spätere Verwendung ein.

Schreiben einer Beispielabfrage

Stellen Sie die Abfragedatenquelle auf die gerade hinzugefügte Datenquelle ein und geben Sie die folgende Abfrage ein.

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')

Da die Hilfemethoden add_result_row und add_result_column standardmäßig bereitgestellt werden, Diese werden für Spaltendefinitionen und Zeilendefinitionen verwendet.

add_result_row fügt eine Zeile hinzu. Wenn Sie den Wörterbuchtyp, bei dem es sich um ein Paar aus Spaltenname und Wert handelt, an das zweite Argument übergeben, wird es hinzugefügt, um das Ergebnis nach Ihren Wünschen zu erhalten.

add_result_column fügt eine Spaltendefinition hinzu. Spaltenname im zweiten Argument (Name, der dem Wörterbuchtyp entspricht, der zu add_result_row hinzugefügt werden soll) Anzeigename im dritten Argument Geben Sie als viertes Argument ein (entsprechend Zeichenfolge, Ganzzahl, Gleitkomma, Boolescher Wert, Datum, Datum / Uhrzeit). Angegeben.

Bei der Ausführung werden die folgenden Ergebnisse erhalten. スクリーンショット 2015-12-25 17.52.46.png

Schreiben einer Abfrage, die auf externe Daten verweist

In der vorherigen Abfrage sind die Daten fest in der Quelle geschrieben und nicht interessant. Schreiben Sie also eine Abfrage, um externe Daten abzurufen.

Lassen Sie uns diesmal die CPU-Auslastung der Instanz mit Amazon CloudWatch ermitteln.

Vorbereitung

Das Betriebssystem verwendet das offiziell verteilte Ubuntu AMI.

Installieren Sie boto3 im Voraus mit `` `sudo pip install boto3```. Ermöglichen Sie außerdem den Zugriff auf CloudWatch mit IamRole.

Abfrage erstellen

Erstellen Sie eine neue Abfrage und schreiben Sie den folgenden Code.

'target-instanceId'Schreiben Sie anstelle von die ID der Instanz, die Sie erhalten möchten.



 Da das Re: Dash-Diagramm nicht in Einheiten angezeigt werden kann, die feiner als das Datum sind, wird `` `Periode = 3600``` festgelegt und der Durchschnitt in Stundeneinheiten ermittelt.

 Der Rückgabewert von cloud_watch.get_metric_statistics wird durchlaufen und die CPU-Auslastung und das Datum werden der Zeile hinzugefügt.

 Den detaillierten Rückgabewert von cloud_watch.get_metric_statistics finden Sie in [Blog der Klassenmethode](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')

Wenn Sie dies tun, erhalten Sie die folgenden Ergebnisse: スクリーンショット 2015-12-25 18.11.46.png

Wenn Sie ein Faltliniendiagramm erstellen, handelt es sich auch um solche Daten. スクリーンショット 2015-12-25 18.12.32.png

Sie können es auch wie einen Überwachungsserver verwenden, indem Sie die neuesten Daten abrufen und Warnungen festlegen.

Recommended Posts

Versuchen Sie, CloudWatch-Metriken mit der Python-Datenquelle re: dash abzurufen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich möchte eine Python-Datenquelle in Re: Dash verwenden, um Abfrageergebnisse zu erhalten
Holen Sie sich Youtube-Daten mit Python
Versuchen Sie, Daten zu erfassen, während Sie mit anaconda eine Portweiterleitung an RDS durchführen.
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Versuchen Sie, Facebook mit Python zu betreiben
[Python] Mit DataReader Wirtschaftsdaten abrufen
Erste Schritte mit Python
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen
Holen Sie sich mit Python zusätzliche Daten zu LDAP
Versuchen Sie, Farbfilme mit Python zu reproduzieren
Versuchen Sie, sich mit Python bei qiita anzumelden
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Konvertieren Sie Excel-Daten mit Python in JSON
Versuchen Sie, mit Pandas in ordentliche Daten umzuwandeln
Versuchen Sie, die Höhendaten des National Land Research Institute mit Python abzubilden
Versuchen Sie, Metriken über Python DogStatsD an datadog zu senden
Versuchen Sie, Doujin-Musikdaten mit Pandas zu aggregieren
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Versuchen Sie, Python-Dokumente automatisch mit Sphinx zu generieren
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Schreiben Sie CSV-Daten mit AWS-Lambda + Python in AWS-S3
Zubu Amateur will Python starten
Python-Skript zum Abrufen von Notizinformationen mit REAPER
Versuchen Sie, Fische mit Python + OpenCV2.4 (unvollendet) zu erkennen.
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Versuchen Sie es mit Python.
Einfache Analyse und gemeinsame Nutzung mit re: dash, einem Open-Source-Tool zur Datenvisualisierung Teil 2 ~ Graph
Holen Sie sich mit Python eine große Menge von Starbas Twitter-Daten und probieren Sie die Datenanalyse Teil 1 aus
So kratzen Sie Bilddaten von Flickr mit Python
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Holen Sie sich Finanzdaten mit Python (dann ein wenig basteln)
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Lesehinweis: Einführung in die Datenanalyse mit Python
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
So erhalten Sie mit SQLAlchemy + MySQLdb mehr als 1000 Daten
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
Wie man mit Python-Flüchen ein Urteil über das Mausrad erhält
Holen Sie sich ein Date mit Python
Datenanalyse mit Python
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Wenn ich versuche, die Daten in DynamoDB mit Python (boto3) zu aktualisieren, wird "ExpressionAttributeNames enthält ungültigen Schlüssel: Syntaxfehler; Schlüssel: <Schlüsselname>" angezeigt.
Einfache gemeinsame Nutzung von Analysen mit re: dash, einem Open-Source-Tool zur Datenvisualisierung Teil 4 ~ Pivot-Tabelle
Einfache gemeinsame Nutzung von Analysen mit re: dash, einem Open-Source-Tool zur Datenvisualisierung Teil 3 - Google Spreadsheets
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Einfache Analyse und gemeinsame Nutzung mit re: dash, einem Open-Source-Tool zur Datenvisualisierung Teil 1 - Installation
Holen Sie sich eine Liste der CloudWatch-Metriken und eine Entsprechungstabelle der Einheiteneinheiten mit Python boto
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Ich möchte Daten mit Python analysieren können (Teil 3)