観測している温度データをちょっと分析して1日と7日平均値を同じグラフに表示させたいと思います。
esp32にBME280センサーを接続し、node exporter化してあります。別マシンで動いているprometheusから15sサンプリングしています。ちゃんとデータは取れてグラフ表示も問題ありません。
prometheusのデータを取り出すのはPromQLというSQLに似た言語です。TSDBに格納されているデータはRDBと違って、一定間隔以外は差分しかありません。しかもバイナリーに圧縮されています。値を取り出すにはPromQLを勉強する必要がありますが、一からすべて勉強する必要はありません。
公開されているダッシュボードにやりたいことは大抵埋め込まれているます。後は公式docを見ながらアレンジします。
温度データは15s間隔で蓄積されていますが、15sで温度が変わることはそうありません。一日とか週間平均がわかると、今日は平均より暖かいかなとか寒いかなという指標になります。 温度データーは、以下のメトリックスに格納されてます。
|
|
1日平均を計算するのは
|
|
1週間平均を計算するのは
|
|
のように記載すると表示できます。+queryして3つのグラフを1つのパネルに表示します。
同じグラフにプロットするとこんな感じです。
パネルの設定で凡例「Legend」をtableにして「Last(not null)」「Range」を表示させると、1日や1週間の気温差がわかります。
温度センサーの値をちょっと計算して表示させることにより、1日平均や7日平均を可視化できるようになりました。時系列DBの関数はちょっと独自ですが、よく使われる関数は準備されているので一からゴリゴリ書かなくてもいいです。