概要
Prometheus + GrafanaではPromQLを使って柔軟なパネルが作成できる一方、作り方が複雑になりがちです。
今回は基本的なパネルの作り方を説明します。
環境
- Grafana 6.2.5
- Prometheus 2.11.1
パネル
Grafanaのダッシュボードのパネルは大きく10あります。
今回はよく使う
- グラフ
- シングルスタット
の2つを説明します。
グラフパネル
名前の通りグラフを表示するためのパネルです。一番良く使うことになります。
例としてプロセスのメモリを表示します。
Query
クエリを設定します。
process_resident_memory_bytes
を指定します。このように補完が効いて便利ですね。
指定するとすぐに上部グラフに反映されます。
Legend(凡例)
Legend
にはjob名
が凡例として表示されるように{{job}}
と入れておきます。
Visualization
左のVisualization
でAxes
のLeft Y Unit
をData(Metric)/bytes
に設定します。
General
パネル名をMemory Usage
にします。
Save
設定が完了したら上部にあるSave
ボタンで保存。
以下のようなグラフができました。
シングルスタットパネル
シングルスタットパネルは、単一の時系列データの値を表示します。
例としてprometheus_tsdb_head_series
というPrometheusがインジェストしている時系列データの数を表示します。
Query
prometheus_tsdb_head_series
を指定します。
Visualization
Visualizationでグラフパネルになっているプルダウンをシングルスタットパネルに選択し直します。
デフォルトだと平均値になっていますが、今回は現在値を知りたいのでStat
をCurrent
に変更。
また文字が小さいのでFont Size
も変更
Save
タイトルをGeneral
で変更し、Saveすると以下のように表示されました。
テンプレート変数
同じダッシュボードを変数で切り替えられるようにしたい時はテンプレート変数を使います。
Variables
上部のSettingから
Variablesをクリック
以下のように設定します。
項目 | 値 |
---|---|
Data source | Prometheus |
Refresh | On Time Range Change |
Query | node_network_receive_bytes_total |
Regex | .*device="(.*?)".* |
※このQuery
やRegex
はプルダウンで出す選択肢を抽出するためのものです
Preview of valuesで実際に選択肢になりうる値が表示されます。
Dashboardに戻ると、テンプレート変数がプルダウンで選択できるようになっています。
グラフパネル
作った変数を用いてグラフパネルを作成します。
rate(node_network_receive_bytes_total{device="$NIC"}[1m])
と設定します。変数は$
で表現できます。補完も効いてます。
NICが凡例として表示されるよう、Legendを{{device}}
にし、AxesのLeft YのUnitをdata rate - bytes/sec
にします。
表示
すると以下のようにNIC毎に切り替えられるようになりました。
eth0
eth1
lo
Duplicate
先程はネットワークINのグラフを作りました。
今度はネットワークOUTのグラフを作りましょう。
複製をクリックすれば簡単に作れます。
Query
Queryをrate(node_network_transmit_bytes_total{device="$NIC"}[1m])
にし、TitleをBytes Transmitted
にします。
表示
このようにNIC毎にネットワークのIN/OUTが表示されるようになりました。
まとめ
Grafanaのパネルの基本的な作り方を説明しました。
非常に多くの設定があり全てを把握するのは難しいと思うので、自分で触ったり公開されているダッシュボードを参考にしながら理解していくと良いと思います。