如何持續(xù)監(jiān)控Unicorn的性能指標(biāo)

背景介紹

最近用 Grape 重寫了一份API,馬上要上線了,突然接到boss通知,需要做好應(yīng)用服務(wù)器監(jiān)控,以便上線遇到突發(fā)情況。于是乎從萬能的 github 上找到了這個開源的代碼:unicron_metrics。用起來還不錯,下面給大家介紹一下認(rèn)識。

是什么

unicorn_metrics是采集基于Rack應(yīng)用服務(wù)性能數(shù)據(jù)的工具, 尤其針對類似Unicorn
的多進(jìn)程服務(wù)器,并提供一個對外查看數(shù)據(jù)的接口。

如何監(jiān)控

通過 raindrops 來采集Uincorn指標(biāo)數(shù)據(jù),同時通過構(gòu)建Middleware統(tǒng)計(jì)應(yīng)用中HTTP指標(biāo)數(shù)據(jù)。

監(jiān)控指標(biāo)

unicorn_metrics監(jiān)控指標(biāo)分2部分:http指標(biāo)和raindrops指標(biāo), 下面介紹各方面的指標(biāo):

指標(biāo)名稱 指標(biāo)類型 說明
request.GET timer GET請求的消耗時間(ms)
request.POST timer POST請求的消耗時間(ms)
request.PUT timer PUT請求的消耗時間(ms)
request.DELETE timer DELETE請求的消耗時間(ms)
request.HEAD timer HEAD請求的消耗時間(ms)
responses.2xx counter 響應(yīng)狀態(tài)為2xx的次數(shù)
responses.3xx counter 響應(yīng)狀態(tài)為3xx的次數(shù)
responses.4xx counter 響應(yīng)狀態(tài)為4xx的次數(shù)
responses.5xx counter 響應(yīng)狀態(tài)為5xx的次數(shù)
raindrops.calling gauge 應(yīng)用服務(wù)器調(diào)度的數(shù)量
raindrops.writing gauge 被寫入數(shù)據(jù)的客戶端的數(shù)量
raindrops.active gauge 所有進(jìn)程中已連接并尚未關(guān)閉的sockets的連接數(shù)
raindrops.queued gauge 等待連接sockets的請求數(shù)

監(jiān)控步驟

1.安裝

    $ gem 'unicorn_metrics', github: 'superiorlu/unicorn_metrics'
    $ bundle

2.配置unincor_metric.rb

    #config/initializers/unicorn_metrics.rb
    
    if defined?(UnicornMetrics)
      UnicornMetrics.configure do |c|
        c.app_name = 'app_name'
      end
    end

3.配置config.ru

   # config.ru

    require 'unicorn_metrics/middleware'
    use UnicornMetrics::Middleware
    # other middleware...
    run N::Application

4.visit http://localhost:3000/metrics, 返回unicorn的各方面的指標(biāo)。

實(shí)時監(jiān)控和報(bào)警

由于unicorn_metrics只提供了查看unicorn性能指標(biāo)的接口,根據(jù)業(yè)務(wù)的需求我們對其進(jìn)行了修改,使其可以在裝有我們 CloudInsight 探針 的服務(wù)器上使用 Cloud Insight Ruby SDK 進(jìn)行實(shí)時回傳性能數(shù)據(jù),形成dashboard圖表同時在服務(wù)器出現(xiàn)問題時及時報(bào)警。具體數(shù)據(jù)圖表 見下圖:

)

數(shù)據(jù)圖表組成儀表盤示例: http://superiorlu.github.io/index.html

源碼見:https://github.com/superiorlu/unicorn-metrics

小結(jié)

本文介紹了使用unicorn_metrisUnicorn進(jìn)行持續(xù)監(jiān)控。 使用Cloud Insight Ruby SDK, 不但可以傳輸性能數(shù)據(jù), 還可以傳輸自定義的業(yè)務(wù)數(shù)據(jù)?,將數(shù)據(jù)以圖表的展示出來,并根據(jù)需求添加相應(yīng)的報(bào)警服務(wù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容