使用statsd+graphite+grafana構建業務及效能監控模組

來源:互聯網
上載者:User

標籤:

    近些年隨著DevOps概念越來越收到重視,除了傳統的Splunk,Zabbix外在開源領域也有越來越多的軟體可供使用.從資料收集,時序資料庫,圖形展示等主要方面有各類可擴充的軟體用於搭建一個資料監控平台(詳細列表),Logstash+elasticsearch+kibana算是被寫的比較多的,本文將偏重於業務資料及效能的監控而不是傳統的機器參數的監控,所以本文以statsd+graphite+grafana在centos6上的安裝配置為例。

   三個組件的說明(https://blog.pkhamre.com/understanding-statsd-and-graphite/):

   Statsd:一個nodejs的用戶端,用於向graphite的收集器發送資料,使用各類程式設計語言的用戶端響起發送timer,counter等統計資料後,其通過udp定時向graphite發送資料。c#用戶端

   Graphite:分為監聽器carbon+時序資料庫whisper+圖形展示django-webapp。由於安裝是要設定資料庫等建議對django有一定瞭解

   Grafana:一個圖形展示器,相對graphite內建的展示功能更加強大靈活。配置grafana時添加新的dashbord時要注意綠色的小條是可以點擊的,點擊後出現配置項設定顯示等。

   前兩者在centos上的安裝請參考(安裝),該文章還附帶說明了安裝collectd收集系統效能資料的過程,對於graphana的安裝請參考官方文檔。需要說明的是本人按文章配置後使用django-admin 啟動程式能正常訪問,但是通過apache前端登陸後在graphite的管理介面無法看到Metrics的展示最終使用了docker的方式。docker版本說明請參考github說明。

   用戶端主要發送counter和timer兩類資料進行監控和分析,counter主要用於即時展示重點業務的量是否運行正常。timer主要用於展示應用程式的調用效能等方面是否正常。

  counter的整合主要是開發人員寫代碼發送計數資訊(異常資訊計數以及正常計數):

 Metrics.Configure(new MetricsConfig{    StatsdServerName = "X.X.X.X",    Prefix = "MallOrderCmd"}); Metrics.Counter("SyncOrderInfo.Error");

timer的跟蹤可以考慮使用PostSharp或者Fody的外掛程式進行實現

 

[Serializable]public sealed class GraphiteTimingAttribute : OnMethodBoundaryAspect{    [NonSerialized]    private Stopwatch _stopwatch;    public override void OnEntry(MethodExecutionArgs args)    {        _stopwatch = Stopwatch.StartNew();        base.OnEntry(args);    }    public override void OnExit(MethodExecutionArgs args)    {            StatsdClient.Metrics.Timer(                string.Format("{0}.{1}.{2}.{3}",                 "ApplicationName",                 System.Environment.MachineName,                 args.Method.DeclaringType.Name,                 args.Method.Name),                 (int)_stopwatch.Elapsed.TotalMilliseconds            );        base.OnExit(args);    }    public override void OnException(MethodExecutionArgs args)    {        StatsdClient.Metrics.Counter(            string.Format("{0}.{1}.error",            args.Method.DeclaringType.Name,            args.Method.Name),            (int)_stopwatch.Elapsed.TotalMilliseconds);        base.OnException(args);    }}

 

 

使用statsd+graphite+grafana構建業務及效能監控模組

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.