prometheus丢数据调试与处理

发布时间:2017-6-29 10:40:00编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"prometheus丢数据调试与处理",主要涉及到prometheus丢数据调试与处理方面的内容,对于prometheus丢数据调试与处理感兴趣的同学可以参考一下。

背景:

influxdb数据旁路一份到prometheus后,prometheus的图有时延时很大,主要是在业务忙的时候,闲的时候是可以处理到数据的。而influxdb的数据是可以正常显示的。而且这时牛逼的google并帮不了忙,各种关键字去搜索都找不到相关的问题。

架构

调试过程

  1. 先去prometheus的web控制台看图。初看这个图感觉是没有问题的,数据是连续的。
    prometheus_pic
    仔细看,其实直线那段是没有数据有。用grafana配到同一个prometheus来看一下grafana的图长这样
    grafana_pic
    在grafana是可以明显看到中间是丢了一段时间的。而且prometheus的图却是连续的。最开始我没有看出来。

  2. 把生产环境的docker部到自己的电脑,看控制台是没有问题的。所以猜想是生产环境的数据量过大,prometheus没处理过来引起的。
    上去生产环境抓包,
    先找一下prometheus和influxdb_exporter的ip。

docker exec -it prometheus ip addr show

输出如下:

prometheus用了eth0端口,ip:172.17.0.102

同样找出influxdb_exporter的ip:172.17.0.99

我们只抓这两台机器的包,免得其他的干扰:

tcpdump -i docker0 host 172.17.0.102 and 172.17.0.99

在13:32:28.162的时候prometheus发起握手,完了之后,发请求到influxdb_exporter拉数据
在13:32:32.112的时候influxdb_exporter发了数据包。然后prometheus接着就回了一下rst的包了。后面influxdb_exporter应该是还没收到prometheus的rst包,继续发第二段包。所以这个包prometheus是没有收到的。

找到prometheus的配置:

scrape_configs:
- job_name: ‘prometheus’
scrape_interval: 5s
static_configs:
- targets:
- “influxdb_exporter:9122”

配置了5s去influxdb_exporter抓一次数据。而prometheus发rst包的时候,差不多在4s的时间隔上。prometheus的5s配置包括了收包前后的处理和收包的过程,在13:32:32.112的时候就回rst,以免雪崩。
把配置改成10s,重新拉起服务。可以看数据正常了。


上一篇:用户登录后更换会话ID
下一篇:elf动态链接实例

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款