prometheus statsd 監控


Prometheus是一套開源的監控&報警&時間序列數據庫的組合,起始是由SoundCloud公司開發的。隨着發展,越來越多公司和組織接受采用Prometheus,社會也十分活躍,他們便將它獨立成開源項目,並且有公司來運作。google SRE的書內也曾提到跟他們BorgMon監控系統相似的實現是Prometheus。現在最常見的Kubernetes容器管理系統中,通常會搭配Prometheus進行監控。

介紹 http://www.cnblogs.com/vovlie/p/Prometheus_CONCEPTS.html

安裝配置 http://www.cnblogs.com/vovlie/p/Prometheus_install.html

我們公司的監控系統是statsd + graphite + grafana ,但是最近遇到一個需求,需要將所有id的失敗成功打到監控中,同時計算出失敗率並進行排序。這個需求通過 graphite 這一套是無法實現的,有兩個問題:

1. graphite 對應每個id會生成一個小文件,id多的情況下操作系統文件系統檢索很慢。

2. graphite 沒有強大的查詢表達式支持。

 

糾結之后,選擇了Prometheus,目前實現了這個需求,並且可以很好的兼容老的監控系統,業務部門不需要改動代碼。

我們在往statsd_expoter寫數據的時候發現並不會類似statsd那樣定時清理數據,科學上網之后找到了 https://www.robustperception.io/how-does-a-prometheus-counter-work/ ,這里面介紹了prometheus的counter實現方式,獲取增長值要用 increase 函數。

獲取失敗率Top10的id示例查詢語句:

topk(10, sort_desc(
    sum(increase(demo_fail[1m]) / (increase(demo_success[1m])+increase(demo_fail[1m])) and increase(demo_fail[1m]) > 10 ) 
     by (id)
))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM