前回のブログ [Grafana で Raspberry Pi のメモリ使用率などリソース状態を可視化してみた] で CPU 使用率やメモリ使用率等のリソースを Grafana のダッシュボードで確認できるようにしましたが、下のキャプチャ画面のように CPU と GPU 温度に関しては現在の状態 (温度) の確認はできますが、過去の状態をグラフで確認することはできないようです。
今回は Grafana にダッシュボードを追加して、Raspberry Pi の CPU、GPU 温度のグラフを表示してみました。
環境
- Raspberry Pi 3 Model B
- Raspbian GNU/Linux 10 (buster)
- [Grafana で Raspberry Pi のメモリ使用率などリソース状態を可視化してみた] の手順で Grafana で Raspberry Pi のリソース状態を可視化できるようにしています。
InfluxDB に保存されている CPU、GPU の温度データを確認
InfluxDB に保存されている CPU 温度のデータは実際の温度を 1,000倍した値が保存されており、GPU 温度はそのままの値が保存されているので確認してみました。
InfluxDB shell 起動
$ influx
telegraf データベースを指定
> use telegraf
CPU 温度データを確認
> select * from cpu_temperature limit 3
name: cpu_temperature
time host value
---- ---- -----
1587525500000000000 raspi 50464
1587525510000000000 raspi 50464
1587525520000000000 raspi 50464
CPU 温度は 50464 という値になっていますが、これは Telegraf で CPU データを取得するときに /sys/class/thermal/thermal_zone0/temp
を参照しているためと思われます。実際は値を 1000 で割った 50.464度ですね。
ちなみに手動だと以下のように現時点の値を確認できました。
$ cat /sys/class/thermal/thermal_zone0/temp
54230
GPU 温度は以下のように、実際の温度が値として保存されていました。
> select * from gpu_temperature limit 3
name: gpu_temperature
time host value
---- ---- -----
1587525501000000000 raspi 50.5
1587525510000000000 raspi 49.9
1587525520000000000 raspi 50.5
CUP 温度とは異なり GPU 温度は以下のコマンドで取得しているためだと思われます。
$ /opt/vc/bin/vcgencmd measure_temp
temp=53.7'C
ダッシュボード追加
ブラウザで Grafana の GUI を開いて以下実行しました。
-
[Create (+ アイコン)] - [Dashboard]
-
CPU 温度を追加するために [Add Query] をクリック
-
以下、Query のフォームで
- [From] の [select measurement] をクリックして [cpu_temperature] を選択
- [Select] の [field (value)]、[mean ()] に続く [+] をクリックして [Math] - [math] を選択
- [math (/100)] が追加されたので [(/100)] をクリックして [(/1000)] に変更 (上で確認した通り、IfluxDB 上では 1,000倍された値なので 1,000 で割りました)
-
画面右側の方の [Query Inspector] をクリックしてクエリを確認すると select 文でも / 1000 されていることが確認できました。
SELECT mean("value") / 1000 FROM "cpu_temperature" WHERE time >= now() - 6h GROUP BY time(20s) fill(null)
-
次に GPU 温度を追加するために [Add Query] をクリック
-
追加された Query のフォームで
- [From] の [select measurement] をクリックして [cpu_temperature] を選択
- CPU 温度とは異なり、GPU 温度は InfluxDB に実温度が保存されている (1,000倍されていない) ので 1,000 で割る必要はありません
-
画面上部のフロッピーアイコンの [Save dashboard] をクリックし、適宜ダッシュボード名等を入れて保存
CPU、GPU 温度のグラフを表示できました。