Grafanaで過去データを同時に表示する
保守しているサーバーの増強が必要かどうかを判断する際、
過去のデータと比較したいということがあるかと思います。
今回Grafanaでいい感じに表示する方法を調べてみたのでメモします。
検証環境
Rancherで構築したラズパイRKE2クラスタにMonitoringをインストールしました。
構築手順は
こちら
が参考になると思います。
root@k8s1:~# kubectl get node -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s1 Ready control-plane,etcd,master 2d5h v1.28.10+rke2r1 192.168.0.51 <none> Ubuntu 24.04 LTS 6.8.0-1007-raspi containerd://1.7.11-k3s2
k8s2 Ready worker 2d5h v1.28.10+rke2r1 192.168.0.52 <none> Ubuntu 24.04 LTS 6.8.0-1004-raspi containerd://1.7.11-k3s2
k8s3 Ready worker 2d4h v1.28.10+rke2r1 192.168.0.53 <none> Ubuntu 24.04 LTS 6.8.0-1007-raspi containerd://1.7.11-k3s2
root@k8s1:~# helm list -n cattle-monitoring-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
rancher-monitoring cattle-monitoring-system 1 2024-07-14 05:20:40.715973065 +0000 UTC deployed rancher-monitoring-103.1.1+up45.31.1 v0.65.1
rancher-monitoring-crd cattle-monitoring-system 1 2024-07-14 05:18:44.322859123 +0000 UTC deployed rancher-monitoring-crd-103.1.1+up45.31.1
grafanaのバージョンは9.1.5でした。
root@k8s1:~# kubectl exec -it rancher-monitoring-grafana-577cb9ffd4-5dp2l -n cattle-monitoring-system -- grafana-server -v
Version 9.1.5 (commit: df015a9301, branch: HEAD)
タイムシフト機能
ググったらまずこの機能が出てきました。
ドキュメントはこちら
まずはGrafanaでダッシュボードを作成するためにログインします。
Rancherのドキュメント
に書いてあるとおりadmin/prom-operatorでログインできます。
適当にメトリクスを表示します。
今回はノードのCPU使用率にしました。
そしてドキュメントの通り、Query optionsからTime shiftを設定します。
今回は3hを設定したのですが、設定していない場合と比べて、
指定したtime rangeからさらに3時間過去のメトリクスが表示されていることがわかります。
同じパネルに過去データを同時に表示する
みたところタイムシフト機能は1つのパネル全体に影響するようです。
なるべく見せるグラフは少なくしたく、1つのパネルに現在と過去二つのグラフを表示したい
と思ったら同じことを考えた人が
issue
あげてました。
こちらのコメント
によるとデータソース側のクエリでやる方が良いとのことです。
Rancher MonitoringではPrometheusを使っているため offset を使います。
例えば以下のようなクエリでノードのCPU使用率を3時間ずらすグラフを表示してみます。
加えて、そのままだと見づらいので凡例に3時間前という文字列を追加して、
OverrideでBのクエリを点線で表示します。
Cloud Monitoringのダッシュボードも過去データは点線ですしね。
いい感じです。
3時間前のグラフだけ表示すると、3時間タイムシフトさせたグラフと同じグラフが
点線で表示されていることがわかります。