Grafana Dashboardの1Rowに複数nodeの情報を横並びに表示する[Grafana Templating Tips]

# TL;DR

こんにちは。nntsuguです。

好きなGrafana Community Dashboardは[Node Exporter Server Metrics](https://grafana.com/dashboards/405)です。
node欄で選択した全nodeの情報を横に並べて表示できるので、重宝しています。
SaaSの開発・運用をしていると気になるfdの消費量を、↑にFile descriptor消費量グラフを追加して確認しています。
コネクションリークや接続元の処理が遅くなり、長時間コネクションを張り続けているケースをを見つけるのに便利です。


下記について記載します。

- [Node Exporter Server Metrics](https://grafana.com/dashboards/405)にfd消費量表示用グラフを追加し
- nodeごとにデータを表示できるよう、TemplatingのRepeat Panelの設定を行う


小ネタですが、Grafana慣れしていないとわかりにくい設定なので書いてみました。
~~Row OptionsのRepeat forに目がいきやすくてわかりにくいねん~~
ここまで書いていて気が付きましたが、これGrafana話ですね。まぁいいか。

# やりたいこと

Community built dashboard : [Node Exporter Server Metrics](https://grafana.com/dashboards/405)にfile descriptorの行を追加する。

<img width="1279" alt="Screen Shot 2017-12-06 at 15.29.29.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/d9022d37-72b1-8641-a7b4-9b87691dd064.png">

の一番下に

<img width="1587" alt="Screen Shot 2017-12-06 at 15.53.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/78df42b9-5222-2b9f-34e9-2e035f230ff1.png">

を追加する。

# 手順

## 1. fd消費量表示用のグラフを追加

1-1) Dashboard左下の<img width="89" alt="Screen Shot 2017-12-23 at 11.05.52.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/587d7aa5-5b93-e4f1-1309-d299843c0bbc.png">から<img width="65" alt="Screen Shot 2017-12-23 at 11.42.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/10a40b3f-6415-2e74-24d0-0dcc23f18f06.png">
"Graph"を追加
1-2) Panel Title⇢Editを開く

<img width="300" alt="Screen Shot 2017-12-23 at 11.53.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/632cfbf5-9636-5c6f-0a0e-284c5a1efc00.png">　⇒　<img width="250" alt="Screen Shot 2017-12-23 at 12.06.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/0d031981-c8c1-2c72-00fc-89a279d67368.png">



1-3) グラフに出すメトリクスをMetricsを指定する 

<img width="667" alt="Screen Shot 2017-12-23 at 13.12.29.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/fa75074c-2ede-30c6-56bf-81f4ea7baa12.png">


- Data SourceにPrometheus(※1)を指定
- Queryにinstance_name(※2)ごとのnode_filefd_allocatedを指定

※1 Data Sourceの設定値はご自身の環境のPrometheusのものを指定してください
※2 instance_nameにはPrometheusのrelabel configでホストネームを入れいます

1-4) GeneralタブでPanelのTitleを付ける

<img width="537" alt="Screen Shot 2017-12-23 at 13.18.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/891780ef-e59e-818d-d690-c69278c27e52.png">

Titleはお好みで。

1-5) 右端の"X"でグラフへ戻る

<img width="30" alt="Screen Shot 2017-12-23 at 13.25.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/8faf4f15-c4e0-0216-85a5-fad8f80d1f62.png">でグラフへ戻れます。

**注意** この状態だと編集した内容は保存されていないので、ヘッダにある<img width="30" alt="Screen Shot 2017-12-23 at 13.26.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/c63c618f-b44c-1511-db4f-11daf0a02502.png">で現状を保存しておくのもおすすめです。


## 2. nodeごとにデータを表示できるよう、TemplatingのRepeat Panelの設定を行う

ここまででfd消費量を表示できてはいるのですが、下記画像のように

- UDP Statsはnode毎にグラフが描画されている
- file descriptorは1つのグラフに全nodeのグラフが描画されている

なっています。

<img width="1062" alt="Screen Shot 2017-12-23 at 13.39.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/81d6da18-53db-1a05-a4a5-e952da01c9ae.png">


新しく作成したものも、node毎に表示されるように、TemplatingのRepeat Panelの設定を行います。

2-1) 再びPanel Title⇢Editを開く

<img width="300" alt="Screen Shot 2017-12-23 at 13.47.00.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/d84e3ec4-0c78-f98c-cd57-0969786e8aaf.png">

2-2) GeneralタブのTemplating > Repeat Panelに"node"を指定する
　
<img width="1014" alt="Screen Shot 2017-12-23 at 13.50.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/65b702b4-137b-fbe5-9ff7-70371aee41f7.png">

- Repeat PanelにはTemplating(↓)で設定したものを選択できる

<img width="613" alt="Screen Shot 2017-12-23 at 14.03.09.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/65cdb91d-6b71-df83-34d6-176e42149736.png">

↑はヘッダの<img width="25" alt="Screen Shot 2017-12-23 at 14.03.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/f0ecc2ee-df3d-9533-5fbc-504e95dc6cbf.png">⇢Templatingから開けます。

2-3) 右端の"X"でグラフへ戻る

<img width="30" alt="Screen Shot 2017-12-23 at 13.25.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/8faf4f15-c4e0-0216-85a5-fad8f80d1f62.png">でグラフへ戻れます。

2-4) グラフを再描画する

この時点ではまだ変更が反映されていないので下記のようになります。
<img width="1062" alt="Screen Shot 2017-12-23 at 13.39.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/81d6da18-53db-1a05-a4a5-e952da01c9ae.png">

Template(↓)のnodeを再選択するなどして、グラフを再描画させましょう。
<img width="300" alt="Screen Shot 2017-12-23 at 14.12.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/6cbe7e07-1f6d-f872-9152-8a91389489d6.png">


ここまでの操作に間違いがなければ、下記のようになると思います。

<img width="1555" alt="Screen Shot 2017-12-23 at 14.18.26.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/f5ab6b30-9d3f-fff4-b19b-bd59415990a8.png">


2-5) Dashboardを保存しておしまい

この状態だと編集した内容は保存されていないので、ヘッダにある<img width="30" alt="Screen Shot 2017-12-23 at 13.26.01.png" src="https://qiita-image-store.s3.amazonaws.com/0/14859/c63c618f-b44c-1511-db4f-11daf0a02502.png">で現状を保存しておきます。

おつかれさまでした。