Cactiを捨ててGraphiteを使うべき理由
導入がひと通り完了したので、Graphiteについて情報を出していくよ。 最初は、Graphiteって一体なんなのか、についてまとめる。
Graphiteって
Graphiteってのは、一言で表すと「収集した情報をグラフにするソフトウェア郡」のことだ。 Graphiteは下記のソフトウェアから構成される。
1. graphite-web
2. carbon
graphite-web
graphite-webとは、実際にグラフを表示する部分だ。 正直、UIの出来はあまり良くない。 こいつの一番の売りは、APIを利用してグラフの見た目をカスタマイズしたり、統計処理をかけられるところにある。 下記に、APIをまとめたページが有る。英語であるが、何となくわかると思う。
このAPIを利用すれば、要件にあったグラフを作ることが簡単にできる。 また、画像としてデータを取り出すだけでなく、json、csv等といった形式でも取り出せるので、javascriptに食わせて かっこいいグラフを書くなんてこともできる。
まぁ、バグも多いけど。 インストールはこのブログの前の記事を見れば問題無いと思う。
carbon
graphiteはrrdを使用しない。 代わりに独自のwhisperと呼ばれる形式でMetricsを集積する。 rrdと比べた際のwhisperのメリットは主に下記の3つ。
- RRDは最新の更新の前にタイムスロットをアップデートすることができない
- RRDはイレギュラーなアップデートが出来るように設計されていない
- 遅滞なく更新が書き込まれる
パフォーマンス
carbonは割りと大量のMetricsを処理することができて、僕は30000を超えるMetricsを30秒から300秒間隔でためているけど、 今のところ問題はない。
Carbonができないこと
ところで、carbonはMetricsを受けるだけで、送信することはできない。 carbonにMetricsを集めさせたければ、対応したMetrics収集ソフトウェアを利用するか、自前で実装するしかない。 だけど、対応している収集ソフトウェアはいろいろあるので、心配しなくて大丈夫。 自分で実装するにしても、パケットフォーマットは単純だし、そこをカバーしてくれるソフトウェアもある。
僕は自前で実装することはせずに
- collectd
というソフトウェアを利用した。 自前で実装するなら、statdと呼ばれるソフトウェアを利用したと思う。
graphiteって何が良いのさ
周辺ソフトウェアの充実に尽きると思う。 graphiteとその周辺のソフトウェアを活用すれば、色々できる。 そして、それなりに動く。
今、僕はGraphiteをCPUの利用率とかそういったMetricsの収集に使っているんだけれども、この分野で、 それなりに動いて、カスタマイズもいっぱい出来て、ていうのを探しているのなら、Graphiteは選択肢に入れても良いと思う。
日本語の情報は殆ど無いけど…。