💭

GrafanaでDashboard variablesによく使うlabel_valuesを2倍以上高速化したい

2025/03/12に公開

Grafanaでダッシュボードの上部に変数を表示して、グラフパネルの対象システムやインスタンスを切り替えるのは良くあると思います。
例えば、Node Exporterを使って、instance一覧の変数を作る時はこのような label_values を利用します。

label_values(node_exporter_build_info, instance)

grafana label_values

しかしこのクエリ、単純に重いです。もちろんデータソースによりますが、私のよく利用するPrometheus互換のデータソース(例えばthanos)でも気になる程度には時間がかかります。

これを下記のように query_result に書き換えます。

query_result(count by (instance) (node_exporter_build_info) )

grafana label_values

この変更だけで、私の環境では2-4倍ほどクエリが早くなり、結果的にダッシュボードも高速に描画できるようになりました!
ちょっとトリッキーというかハッキーなので、あまり推奨は出来ないかもしれませんが、Grafanaダッシュボードのパフォーマンスチューニングの一環として参考にしてください。

Discussion