Metrics

  • Apr
  • 24
  • 2014

IT

XitrumでMetrics

Xitrum 3.6から追加されたMetrics機能について紹介します。
日本語ドキュメントも随時翻訳中)
この機能をつかうことで、リアルタイムにサーバの状態や、アプリケーションの実行速度を確認することがとても簡単に実施できます。

Metricsの収集

Xitrumが収集するMetricsの対象は、サーバのヒープメモリとCPU,Xitrum上のActionの実行回数と処理時間となります。
もしXitrumがAkkaクラスターでクラスタリングされていれば、それらの情報は各ノード単位で取得されます。各ノードで取得された情報はどのノードからでも参照することができます。(後述)

CPUとヒープメモリ取得には、AkkaのJmxMetricsCollectorが、Actionのメトリクス取得には codahaleのMetricsライブラリが用いられています。


Metricsの配信

各ノードで収集されたデータはGlokka上のシングルトンActorであるPublisherに集積されます。
このPublisherからは集まったデータをJSON形式で引き出す事ができます。
また、Xitrum内部では収集した情報は最新のもののみをメモリに保存し永続化は行いません。

XitrumはデフォルトでこのActorに対するSockJSActionURLを提供しており、
このURLからは定期的にJSONデータがプッシュされます。
デフォルトビューアはこのJSONをD3.jsでグラフ化しています。

使い方

デフォルトのコレクターとビューアを使用するのは非常に簡単です。
こんな感じでxitrum.confにメトリクスの設定を追加するだけでできてしまいます。


とりあえずデフォルトの機能はこのへんまで。
次からはサンプルとかもうちょっとしっかり書く。ガイドとまるっきり同じというのも芸がないのでどうしたものか。。。