prometheus statsd 监控

Posted 阿里路亚的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
))

 

以上是关于prometheus statsd 监控的主要内容,如果未能解决你的问题,请参考以下文章

实战 Prometheus 搭建监控系统

使用 statsd-bridge 将数据从 statsd 推送到 prometheus

Prometheus配置文件

号称下一代监控系统,来看看它有多强!

使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统

[转]使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统