python开发prometheus exporter

先描述一下需求,我要对公网IP进行监控,检查响应情况,大概实现起来就是循环执行curl IP/xxx.html ,然后查看http code和响应时间。现在我想把它弄成exporter,接到prometheus上,能够在响应时间超时,或者502时候发出告警,顺便grafana出个图 prometheus_client文档地址(完全看不懂orz):

2019.04.27 更新:今天把Summary和Histogram两种数据类型看了一下,发现之前写的这个就是一坨。。。这里对响应时间的监控应该用Histogram的,相对于Summary,一个是对客户端的性能问题影响,另一个原因是python里Summary目前并没有很好的支持。代码下次有时间更新 官方文档对Summary和Histogram的介绍:

这里我用独立线程控制pycurl,每秒执行一次 访问9091端口,显示出来下面数据,不知道为啥全自动加上了_total

接入到prometheus后,grafana画图 这个是http code的每分钟增长率,如果出现5xx,就说明有问题了

这个是显示期望时间的比例,比如只显示小于1秒,占总次数的比例

delta(url_http_request_time_total{le=1}[1m]) / on(url) group_left delta(http_request_total[1m])
经验分享 程序员 微信小程序 职场和发展