狠狠撸

狠狠撸Share a Scribd company logo
Cloud Foundry
varzの仕組みと収集方法
@u1 http://twitter.com/u1
varzとは
Cloud Foundryの全コンポーネントで共通的に実
装された監視?統計処理のための仕組み
コンポーネント上で自動で立ち上がるweb server
にGETすれば、監視?統計処理のためのデータ
をjsonフォーマットで取得出来る
取れるデータはコンポーネントの揮発性データ
再起動すると初期化される値が多い
varzで取れるデータ
大きく二種類
全コンポーネントで共通なデータ
cpu使用率
memory使用量
config
uptime/starttime
core数
ipaddress
コンポーネント毎のデータ
Routerのroutingの統計
vcap-servicesの利用ユーザー数
etc...
varzで取得出来るコンポーネント毎デー
タの例:
Router v1
requests合計数
bad requests合計数
latency avalage
request/sec
responseのステータスコード毎の合計数(framework毎もあり)
2xx
3xx
4xx
5xx
routing dropletsの数
framework毎と合計値の両方
varzで取得出来るコンポーネント毎のデータの
例:
DEA v1
DEAのリソース状況
max_memory
reserverd_memory
userd_memory
動作中のinstance数
起動中instance(running_apps)毎の各種統計情報
uri
mem_quota
disk_quota
fds_quota
framework
runtime
state
varzで取得出来るコンポーネント毎のデータの
例:
DEA ng
DEAngのリソース状況
can_stage
reservable_stagers
available_memory_ratio
available_disk_ratio
instance_registry
DEAと同じような項目だが、keyが異なる事に注意
起動中instance(running_apps)毎の各種統計情報は無し
varzとhealthzを返す仕組み
vcap-commonライブラリのcomponent classを使っ
て実装されている
https://github.com/cloudfoundry/vcap-
common/blob/master/lib/vcap/component.rb
コンポーネントをstartさせた時に自動的にthinで別
ポートで立ち上がっている
http://0.0.0.0:port/varz
http://0.0.0.0:port/healthz
portは指定しなければ、空きポート(Ephemeral port)で立ち上がっ
てくる。立ち上がっているポートがどこなのかはnatsで
vcap.component.discover requestをすれば、host keyで取得出来る
https://github.com/u-ichi/varz-collector
収集サンプルアプリ
varzのデータの保存方法例:
dea_ng
https://github.com/cloudfoundry/dea_ng/blob/master/lib/de
a/bootstrap.rb#L88
EventMachineのperiodic timerを使って、定期的にvarz更新
method(periodic_varz_update)が実行される
初期値では1s毎に更新される
https://github.com/cloudfoundry/dea_ng/blob/master/lib/de
a/bootstrap.rb#L715
変数の値をVCAP::Component.varzに格納
varzを利用したアプリケーショ
ン
https://github.com/cloudfoundry/collector
varzのデータを収集して、CloudWatch/DataDog等にリレー
するアプリケーション
2011年末から存在はしていたが、2013/03ぐらいから再度開
発が再開
https://github.com/cloudfoundry/collector/graphs/code-frequency
動かしたことありません。。。
各コンポーネント毎の収集データ対象一覧
https://github.com/cloudfoundry/collector/tree/master/lib/collector
/handlers
まとめ

More Related Content

Cloud Foundry varz