1500 万人の Graphite ファンの皆さん、おはようございます。かっぱです。
はじめに
ドキュメント
基本的なこと
/render へアクセスすることから始める
The graphite webapp provides a /render endpoint for generating graphs and retreiving raw data. This endpoint accepts various arguments via query string parameters. These parameters are separated by an ampersand (&) and are supplied in the format:
上記のように Graphite
ホストの /render
というエンドポイント対してアクセスするとグラフやグラフの元になるデータを生成してくれる。このエンドポイントに以下のような &
で括られたパラメータを渡せる。
&name=value
尚、素の http://GRAPHITE_HOST:GRAPHITE_PORT/render
にブラウザでアクセスすると以下のような表示となる。
いとさみし。
for example
せっかくなのでエンドポイントを叩きながら例。
http://172.17.0.2/render?target=carbon.agents.17ad4c40d35a-a.cpuUsage&from=-1hours&lineMode=connected&height=400&width=600
にアクセスすると...
target
には carbon
によって収集されたメトリクス carbon.agents.17ad4c40d35a-a.cpuUsage
を指定して from
で「過去一時間分」のデータを指定、さらに lineMode
では connected
を指定、そして縦 400
ピクセル、横 600
ピクセルのグラフが生成されている。尚、デフォルトでは png
形式の画像が表示される。
http://172.17.0.2/render?target=carbon.agents.17ad4c40d35a-a.*&from=-1hours&lineMode=connected&height=400&width=600
にアクセスすると...
target
には上記と同じく carbon
で収集したメトリクス carbon.agents.17ad4c40d35a-a.*
を指定する。末尾の *
を指定するとその名の通り、全てのメトリクスが対象となる。
少し突っ込んで
Graphing Metrics
ドキュメント的にはこちら。キモになるのが以下のパラメータ。
target
target
の指定の方法については Graphite
のドットで区切られたパスを指定することになるが、パス内で *
の指定も可能。以下、例。
carbon.agents.17ad4c40d35a-a.cpuUsage carbon.agents.17ad4c40d35a-a.*
また、*
以外にも簡単なパターンマッチでの指定や target=xxxx&target=yyyyy
のように target
を複数指定することも可能。更にこちらのように標準で用意された関数でパスを囲んで target
として指定することで計算させたり、ひと手間加えた結果をグラフで表示することも可能となる。以下、例。
http://172.17.0.2/render?target=averageSeries(*.file.buffer_total_queued_size)&from=-24hours&lineMode=connected&format=png&height=400&width=600
子供のお絵かきみたいで恐縮だが...
複数ホストの td-agent
で動いている monitor_agent
から収集したメトリクスの中で、プラグインタイプ file
の buffer_total_queued_size
の平均値をグラフで表示した。
最後に
Render API
は手軽にHTTP
から呼べるので色々と応用出来そうな気がする- ちなみにこれのメトリクスグラフは
Render API
を呼んでいる