curl -s localhost:9090/api/v1/targets \
  | jq -r '.data.activeTargets[].scrapeUrl' | sort | uniq -d

Prometheus 日志反复打 Error on ingesting samples with different value but same timestamp,对应时刻的曲线出现断点。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:两个 job 抓到同一个实例,或者 remote write 和本地抓取同时往一条 series 写,同一毫秒来了两个不同值,后到的直接被丢。

「Prometheus 重复样本」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

处理上按这个顺序:在 targets 页面按 instance 找出重复的 job;删掉重叠的抓取配置 让同一个实例只留一处;排查有没有第三方 agent 也在写同一个实例。

确认没问题再收工,日志里不再出现该报错,图上的断口被连续的采样点补上。

作者 9823189