Go ahead!

Memoization for Everything

Librato Metrics introduction

| Comments

Librato Metricsをうちではモニタリングに使ってるんですが,日本で全くと言って良いほど記事を見ないので,紹介記事を書いてみる.

何が出来る?

おおまかに分けて以下のようなことが出来る.

  • メトリックスを作れる
  • メトリックスに対してアラートを設定出来る
  • ダッシュボードでメトリックスの一覧が見れる
  • JavaScript SDKを使って自分のサイトに埋め込むことが出来る
  • APIが提供されていて,いくつかの言語のクライアントがある

以下それぞれ簡単な説明.

メトリックス

LibratoにはMetricというのがあり,これが最小の単位.Metricに監視したいメトリックスの値を入れていき,他のMetricと混ぜたりすることでモニタリングを行います.

"Librato Metric sample"

上の例のように,一つのMetricに複数の軸の値を入れることが出来ます.これはソースと呼ばれていて,保存する時にsourceを指定すれば良いです.指定しなかったら”unassigned”みたいなsourceにまとめられます.
後,右上にある時間を弄れば,そのレンジでグラフが表示されます.

左の欄に色々とグラフの設定内容があるので,必要であれば弄ります.”How should we aggregate your data over time?”の欄が少し大事で「どういう風にメトリックスを見るか」を指定できます(ここの説明参照).

Instrument

Metricをまとめるのに,Instrumentというのがあります.ここで複数のMetricを重ねることで,関連のありそうなMetric同士を俯瞰出来るようになります.

単純なモニタリングだけだと,MetricとInstrumentが一対一になったりしてダッシュボードやJavaScript SDKでちょっと面倒だったりもします.

アラート

"Librato Alert sample"

上の画像の左のカラムが例で,Metricの中でスレッショルドベースで指定出来ます.どこに飛ばすか設定出来るので,うちでは重要なメトリックスに関してはHipChatやPagerDutyなどに飛ばしてます.

複雑な条件設定や,Metricをまたいだアラートは出来ないので,そういうのが欲しい場合は自分達で頑張る必要があります.

ダッシュボード

"Librato Dashboard Sample"

これがダッシュボードの例です.実際はMetricじゃなくてInstrumentを並べてるんですが,こんな感じで表示出来ます.
ダッシュボードはいくらでも作れるので,自分の見たい粒度で作って,必要なメトリックスを並べます.某社みたいに一つのダッシュボードに数千数万のメトリックスにならないよう気をつけましょう.

API

APIページにリストと説明が載ってます.いくつかの言語には公式のクライアントライブラリがあるので,使うと良いです.
ただ,Ruby版とか試してもInstrument APIがなかったりと,まだまだサポートAPIにばらつきが多い印象.アプリケーションからガチで使うなら,自分でいくつか実装する必要があります.APIはREST + JSONなので,実装はそんなに難しくないです.

ユーザAPIはまだβ機能なのか,使いたい場合はLibartoに連絡して,使えるようにしてもらう必要があるっぽいです.

JavaScript SDK

"Librato JavaScript SDK Sample"

こんな感じになります.好きなページに貼り付けることが出来るし,グラフは自動で更新されます. どういうコードになるかは,Libratoの記事を参照してください.

Fluentdの例

Fluentdにはfluent-plugin-metricsenseというプラグインがあって,これは保存先にLibrato Metricsが使えたりします. これはクライアント使ってないけど,こんな感じで,直接APIを呼ぶくらいなら簡単に実装できます.

その他

料金

料金ページを見てください.基本的にはデータの流量(これはLibrato側での保存ベース),メトリックスの数,ソースの数,が影響します.
簡単に言うと,どれだけの頻度でどれだけの数のメトリックスを作るか,です.

サポート

料金ページにも載ってますが,オンラインチャットとメールとコールがあります.うちではOlarkを使ってますが,最近のスタートアップではこの手のオンラインチャットでの対応というのが広まりつつあって良い感じ.
緊急を要したり深いディスカッションが必要であれば,コールすることになるかなと.うちでも少し困ったことがあったので,コールして直接要望出したり設計を相談したりしました.

まとめ

AnnotationとかCRRELATEとか紹介してないのもありますが,Libartoの基本的な所を書いた.自分達でモニタリング環境を構築出来るなら良いんですが,スタートアップとかだとそこにリソースを割くのが難しかったりするので,そういう所はLibratoとか検討してみてもいいんじゃないかと思います.

Comments