はじめに
私がTwitter(現X)で日々つぶやいている、おうちKubernetes関連の話題です。
本記事では、Kubernetesクラスタ上にデプロイしたGrafanaとPrometheusを使って、CPUの温度を見やすく可視化していきます。
完成例
時系列のグラフ(左)と現在の温度表示(右)を並べるレイアウトを目指します。
前提条件
1. Kubernetesクラスタに以下のツールがデプロイされていること。
- Grafana
- Prometheus
2. Grafanaで使用するユーザにEditor以上の編集権限が付与されていること。
使用するダッシュボード
「kube-prometheus-stack」に同梱されているダッシュボード「Node Exporter / Nodes」を複製して、複製後の方に新しいグラフを追加します。
kube-prometheus-stackの初期設定ではダッシュボードが編集不可になっています。Helm valuesのgrafana.sidecar.dashboards.provider.allowUiUpdates
をtrue
にする必要があります。
時系列のグラフの設定手順
まずはGrafanaにアクセスして、Dashboards>Node Exporter / Nodesを開きます。デフォルトのダッシュボードは下のような感じになっているはずです。
上部にあるAddボタンからVisualizationを選択して新規パネルの編集画面を開きます。
次に、QueryタブのMetricから以下の項目を設定してRun queriesをクリックしてください。
項目名 | 値 |
---|---|
Metric | node_thermal_zone_temp |
Label filters | instance=$instance |
Options>Legend | {{type}} |
正しく設定していれば、この時点でグラフが見えているはずです。
ここからは右側のセクションに値を設定していきます。設定し終えたら右上のApplyを押してください。
項目名 | 値 |
---|---|
Panel options>Title | CPU Temperature |
Axis>Soft min | 0 |
Axis>Soft mas | 100 |
Standard options>Unit>Temperature | Celsius |
作成されました!
現在の温度表示グラフの設定手順
上部にあるAddボタンからVisualizationを選択して新規パネルの編集画面を開きます。
次に、QueryタブのMetricから以下の項目を設定してRun queriesをクリックしてください。
項目名 | 値 |
---|---|
Metric | node_thermal_zone_temp |
Label filters | instance=$instance |
+Operations>Aggregations | Avg |
次は、表示形式を変更していきます。右上の「Time series」のドロップダウンから、「Gauge」を選択します。
ここからは右側のセクションに値を設定していきます。設定し終えたら右上のApplyを押してください。
項目名 | 値 |
---|---|
Panel options>Title | CPU Temperature |
Standard options>Unit>Temperature | Celsius |
Standard options>Min | 0 |
Standard options>Max | 100 |
同じく右側のセクションの下の方にあるThresholdsは以下のように設定してください。
色 | 数値 |
---|---|
rgb(87, 148, 242) | (Base) |
rgba(50, 172, 45, 0.97) | 40 |
rgba(237, 129, 40, 0.89) | 60 |
rgba(245, 54, 54, 0.9) | 80 |
設定が終わったらApplyを押してください。このグラフもダッシュボードに追加されているはずです。
せっかくCPUセクションを用意してくれているので、作成した2つをそちらに追加しておきましょう。ついでにパネルの大きさも変更してみました。
これで完成です!
保存ボタンからダッシュボードを保存するのを忘れずに!!
まとめ
Grafanaを使って、Prometheusが取集したデータを簡単に可視化することができました。まだまだ使っていない表示形式や値を通す関数も豊富にあるので、ぜひ他のデータの可視化も試してみてください😊
Twitterでは、おうちKubernetesや技術関連の内容を日々ツイートしているので、興味があればぜひフォローしていってください🎉
Twitter: https://twitter.com/_matoruru