Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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の統計...
varzで取得出来るコンポーネント毎デー
タの例:
Router v1
requests合計数
bad requests合計数
latency avalage
request/sec
responseのステータスコード毎の合計数(framewo...
varzで取得出来るコンポーネント毎のデータの
例:
DEA v1
DEAのリソース状況
max_memory
reserverd_memory
userd_memory
動作中のinstance数
起動中instance(running_ap...
varzで取得出来るコンポーネント毎のデータの
例:
DEA ng
DEAngのリソース状況
can_stage
reservable_stagers
available_memory_ratio
available_disk_ratio
in...
varzとhealthzを返す仕組み
vcap-commonライブラリのcomponent classを使っ
て実装されている
https://github.com/cloudfoundry/vcap-
common/blob/master/l...
varzのデータの保存方法例:
dea_ng
https://github.com/cloudfoundry/dea_ng/blob/master/lib/de
a/bootstrap.rb#L88
EventMachineのperiodic ...
varzを利用したアプリケーショ
ン
https://github.com/cloudfoundry/collector
varzのデータを収集して、CloudWatch/DataDog等にリレー
するアプリケーション
2011年末から存在はし...
まとめ
Upcoming SlideShare
Loading in …5
×

Cloud Foundry varz

16,744 views

Published on

う゛ぁーず

  • Be the first to comment

Cloud Foundry varz

  1. 1. Cloud Foundry varzの仕組みと収集方法 @u1 http://twitter.com/u1
  2. 2. varzとは Cloud Foundryの全コンポーネントで共通的に実 装された監視・統計処理のための仕組み コンポーネント上で自動で立ち上がるweb server にGETすれば、監視・統計処理のためのデータ をjsonフォーマットで取得出来る 取れるデータはコンポーネントの揮発性データ 再起動すると初期化される値が多い
  3. 3. varzで取れるデータ 大きく二種類 全コンポーネントで共通なデータ cpu使用率 memory使用量 config uptime/starttime core数 ipaddress コンポーネント毎のデータ Routerのroutingの統計 vcap-servicesの利用ユーザー数 etc...
  4. 4. varzで取得出来るコンポーネント毎デー タの例: Router v1 requests合計数 bad requests合計数 latency avalage request/sec responseのステータスコード毎の合計数(framework毎もあり) 2xx 3xx 4xx 5xx routing dropletsの数 framework毎と合計値の両方
  5. 5. varzで取得出来るコンポーネント毎のデータの 例: DEA v1 DEAのリソース状況 max_memory reserverd_memory userd_memory 動作中のinstance数 起動中instance(running_apps)毎の各種統計情報 uri mem_quota disk_quota fds_quota framework runtime state
  6. 6. varzで取得出来るコンポーネント毎のデータの 例: DEA ng DEAngのリソース状況 can_stage reservable_stagers available_memory_ratio available_disk_ratio instance_registry DEAと同じような項目だが、keyが異なる事に注意 起動中instance(running_apps)毎の各種統計情報は無し
  7. 7. 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 収集サンプルアプリ
  8. 8. 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に格納
  9. 9. 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
  10. 10. まとめ

×