CloudFoundry的狀態監控:varz

CF的組建其實都有自己的狀態監控,我們可以通過http查看他們的狀態。這個就是varz。

比如我們在dea.yml配置文件中加入:

status:
  port: 2222
  user: user
  password: pw

然後http訪問http://本機的ip:2222/varz,那個ip不能是localhost或者127.0.0.1,必須是對外的ip。然後就會有驗證信息,輸入上面的用戶密碼,就可以看到dea的許多信息,包括配置、framework、instances以及vm狀態等。

原理

在代碼中我們可以看到組件在啓動時都會向component註冊自己。那麼這個註冊就會啓動一個http server。啓動的代碼在vcap common的component.rb中。這個模塊已經成爲了一個gem,你不必裝cloudfoundry,而只需要gem install一個都可以使用了。在vcap common中,如果有組建來註冊,他會爲這個組件建立一個server。然後server的port以及帳號密碼默認是cf自己生成的。但是按照上文的配置,這些參數就會被傳入,我們就可以按照自己的參數來配置這個server了。
在組件向component註冊完成之後,組建就可以通過一下方式向varz傳數據了:
#這是dea的狀態更新     
      VCAP::Component.varz[:running_apps] = running_apps
      VCAP::Component.varz[:frameworks] = metrics[:framework]
      VCAP::Component.varz[:runtimes] = metrics[:runtime]
ps:在那個http的url中把varz改成healthz,可以看到一個簡單的ok,表示此組建正常運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章