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.
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.
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.
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.
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.
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.
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:
Wenn Sie ein Faltliniendiagramm erstellen, handelt es sich auch um solche Daten.
Sie können es auch wie einen Überwachungsserver verwenden, indem Sie die neuesten Daten abrufen und Warnungen festlegen.
Recommended Posts