ようへいの日々精進XP

よかろうもん

Grafana のScripted Dashboard を試す + Graphite の Render API もちょっと試す

どうも JavaScript は全くの素人のかっぱです。すいません。

はじめに

前回、前々回と Grafana を弄ってきて Scripted Dashboard が気になっていたので触ってみた。前回の記事で利用した td-agentmonitor_agent から取得してきたメトリクスを利用して Scripted Dashboard を試してみる。


わっといず Scripted Dashboard

ペラ一枚という言い方は失礼かもしれないがドキュメントは上記のページのみ。逆に言うと JavaScript の知識があれば自由に使えるよーってことなのかも知れない。


こんな感じで...

写経に始まり、写経に終わる

Grafana を展開したディレクトリの app/dashboards 以下に scripted.js という JavaScript のファイルがあるのでそれを見よう見まねで作ってみた。

ネタ元は Export dashboard

上記の scripted.js はあくまでもサンプルなので細かい設定が出来なかったが、既に設定済みのダッシュボードから Export dashboard した際にダウンロードされる JSON ファイルから設定を拾うことが出来る。

f:id:inokara:20140531100204p:plain

以下(一部、抜粋)のような JSON が出力される。

上記の中から nullPointMode: "connected"steppedLine: true を拾い上げて追加してみた。

アクセスしてみる

以下のように引数を与えて scripted.js にアクセスしてみる。

http://grafana_url/#/dashboard/script/scripted.js?from=1h&rows=1&host=xx-xxx-xxx-xx&type=s3

f:id:inokara:20140531095027p:plain

おお、イケた。

でも...

ちょっと凝ったこと(複数ホストのメトリクスを表示させたいとか...)をしようとすると JavaScript という壁が立ちはだかる...のはどうしようか悩みどころ。


ということで

  • 以上、小ネタでした

おまけ

Graphite の Render API

GraphiteRender API という機能があるのでちょっと触ってみた。以下のような URL にアクセスすると...

http://graphite_url/render?target=averageSeries(*.file.buffer*)&from=-1hours&lineMode=connected&format=png&height=400&width=500

f:id:inokara:20140531103906p:plain

おお。後でも少し詳しく見てみよ。