前回Grafanaを使った可視化ツールを試しましたが、今回Pythonプログラムで作成したデータを前回構築したGrafanaでグラフ表示させてみました。Pythonから直接表示させるのではなく、下記で構築したInfluxDBに書き込んだデータを表示させました。
「Foreign Data Wrapper / PostgreSQL」
https://decode.red/net/archives/1417
参考) https://qiita.com/Yokogawa_Ishino/items/c3467efb83e7fa342734
influxdbモジュールのインストール
環境) Ubuntu 22.04
n@n10:~$ python3 -V
Python 3.10.6
n@n10:~$ sudo apt install python3-pip
n@n10:~$ python3 -m pip install influxdb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from influxdb import InfluxDBClient from datetime import datetime import time import random db = InfluxDBClient(host='localhost', port=8086, database='sample01') for i in range(10): json_body = [ { "measurement": "sample_measurement", "time": datetime.utcnow(), "fields": { "data01": random.randint(0, 100), "data02": random.randint(0, 100) } } ] print("Write data: {0}".format(json_body)) db.write_points(json_body) time.sleep(1) |
(1秒ごとにランダムなデータを書くプログラム)
n@n10:~$ influx
Connected to http://localhost:8086 version 1.6.7~rc0
InfluxDB shell version: 1.6.7~rc0
> use sample01
Using database sample01
> select * from sample_measurement
name: sample_measurement
time data01 data02
—- —— ——
1682121753264329000 31 85
1682121754336419000 8 80
1682121755826517000 31 50
1682121756839369000 15 43
1682121757854193000 24 63
1682121758873117000 84 59
….
IoTデバイスのデータ取集、表示に使うと便利そうですが、単純にブログラムの出力結果にこういう使い方するのもいい感じです。