Homelab #18 Grafanaのカスタムダッシュボード
HOMELAB

Homelab #18 Grafanaのカスタムダッシュボード

Thất Nghiệp Thất Nghiệp
Mar 5, 2026 1 min read 0 views
ブログに戻る

Grafanaをセットアップしたときは、テンプレからかなり基本的なDashboardを作って、主に自分のDebian VPSを監視してました。こんな感じ。
Grafanaをセットアップしたときは、テンプレからかなり基本的なDashboardを作って、主に自分のDebian VPSを監視してました
ここをよく見てたんですが、Prometheusを直接GethomepageのDashboardにクエリするようになってから、Grafanaはあんまり気にしなくなりました。
必要な項目はもう全部ここにあるし。
必要な項目はもう全部ここにあるし
でも今後データはGrafana側に溜まっていくし、過去も見られるし、Network Trafficの分析にも使える。そこが大事。
というわけで今日はGrafanaを掘り起こします。

1.ChatGPTでざっくりOverview

いくつかプロンプトを投げて軽く調べたら、JSONを直接importできるのでGPTにやらせたらこんな結果に。Expectedほどじゃない。
1.ChatGPTでざっくりOverview - Grafanaをセットアップしたときは、テンプレからかなり基本的なDashboardを作って、主に自分のDebian VPSを監視してました
もう何回かやるとこうなった
1.ChatGPTでざっくりOverview - Grafanaをセットアップしたときは、テンプレからかなり基本的なDashboardを作って、主に自分のDebian VPSを監視してました
でもこの方法はUseCaseに合わない。複数の時間帯でMonitorしたいのに、これだと自分のDashboardと同じQueryスタイルになる
1.ChatGPTでざっくりOverview - Grafanaをセットアップしたときは、テンプレからかなり基本的なDashboardを作って、主に自分のDebian VPSを監視してました

2. いくつか分析

Variable

Variable - いくつかプロンプトを投げて軽く調べたら、JSONを直接importできるのでGPTにやらせたらこんな結果に
上の塊がVariableです
Variable - いくつかプロンプトを投げて軽く調べたら、JSONを直接importできるのでGPTにやらせたらこんな結果に
Queryでの使い方はこう
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_interval])))
ポイントは [$__rate_interval]。時間レンジのバーに合わせてデータを絞れます。

今回の目的

GrafanaのクエリをPrometheusっぽく見せる。
今回の目的 - 上の塊がVariableです

Queryでの使い方はこう
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_in...
直接貼ると期待値通りになる
今回の目的 - 上の塊がVariableです

Queryでの使い方はこう
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_in...
次は時間に応じてvariableを使えるようにする
今回の目的 - 上の塊がVariableです

Queryでの使い方はこう
100 * (1 - avg(rate(node_cpu_seconds_total{mode="idle", instance="$node"}[$__rate_in...
2種類のVariableに変えたけど、まだ動かない

どこが問題?

$__rate_interval vs $__rangeを理解する

これが $__rate_interval
どこが問題? - $__rate_interval vs $__rangeを理解する

こっちは $__range
どこが問題? - これが $__rate_interval

GBなのは単位変換してないだけで、主にデバッグ用。今はだいたい理解できた。
$__rangeはlabel側のもの
どこが問題? - こっちは $__range
labelを変えるとデータも変わる。

成功

成功 - GBなのは単位変換してないだけで、主にデバッグ用
成功 - GBなのは単位変換してないだけで、主にデバッグ用
成功 - GBなのは単位変換してないだけで、主にデバッグ用

でもこのグラフはちょっと合わないので一旦保留。次の問題へ。

目的2

目的2 - でもこのグラフはちょっと合わないので一旦保留
win-4を他の名前に切り替えられるようにする

最初のアイデア

このVariableを丸ごと向こうにコピーする
最初のアイデア - win-4を他の名前に切り替えられるようにする
でもVPSにしか効かないので動かない。
Windows Exporterも拾える変数が必要 => upが答え。
最初のアイデア - win-4を他の名前に切り替えられるようにする
あとは使うだけ
最初のアイデア - win-4を他の名前に切り替えられるようにする
かなり良い
じゃあ家族迎えに行ってくる。
~4時間後
続きやるよ

目的3

これを22個にクローンして、variableだけ変える
目的3 - このVariableを丸ごと向こうにコピーする

でもVPSにしか効かないので動かない
方法は2つ。GPTの方法は巨大なJSONを使うやつで、正直バカらしい。DevOpsやSysAdmin向けのプラットフォームなのにClone機能がないわけないでしょ。
で、いろいろ弄ってたら方法を見つけた。機能名は repeat rows and panels動画の6:28でMulti Valueの話があるので、オンにすればOK。
Public PVEのSolutionもsimple stupidだったのを思い出した。
だからGPTはダメ。追いかけ続けると家を売ることになる =))

成果

成果 - これを22個にクローンして、variableだけ変える

方法は2つ
時間変数をいくつか調整できる、超ロングなDashboard。最高!!!

この記事をシェア

Twitter LinkedIn
Thất Nghiệp

Thất Nghiệp が執筆

A developer sharing thoughts on clean code, creative freedom, and the pursuit of the perfect dev environment. Building digital sanctuaries one component at a time.

Comments

Join the conversation

Leave a comment

Won't be published

おすすめ記事