Prometheus 普罗米修斯错误-摄入样本错误

Prometheus 普罗米修斯错误-摄入样本错误,prometheus,Prometheus,我在Prometheus中监视基于JS的web应用程序节点时遇到以下错误 级别=警告ts=2019-08-02T18:23:48.658364708Z呼叫方=刮取。转到:932 component=“scrape manager”scrape\u pool=batch\u web target=msg=“摄取样本时出错 太老或太遥远的未来“num_drop=6 有没有关于为什么会发生这种情况以及如何解决这种情况的提示?错误信息似乎非常清楚、准确 它试图获取的指标似乎有时间戳(可能是问题!),要么

我在Prometheus中监视基于JS的web应用程序节点时遇到以下错误

级别=警告ts=2019-08-02T18:23:48.658364708Z呼叫方=刮取。转到:932 component=“scrape manager”scrape\u pool=batch\u web target=msg=“摄取样本时出错 太老或太遥远的未来“num_drop=6


有没有关于为什么会发生这种情况以及如何解决这种情况的提示?

错误信息似乎非常清楚、准确

它试图获取的指标似乎有时间戳(可能是问题!),要么太旧,要么太遥远

一般来说,普罗米修斯指标不包括时间戳

  • 如果你能去掉时间戳,问题就解决了
  • 如果无法删除时间戳,请更正它们,使其成为当前时间戳

通过搜索谷歌上的错误消息,您可能更快地解决了这个问题。

在VMware、vagrant和Paralles虚拟环境中的虚拟机上与prometheus合作,这些虚拟机都运行Ubuntu18.04,我在syslog中遇到了与此消息相同的问题

msg="Error on ingesting out-of-order samples"
and veraious num_dropped= values
有效的方法是在每个映像上发出所有这些命令,然后重新启动映像。在没有重新启动的情况下,丢弃的num_开始降低,但错误一直持续到重新启动

/usr/bin/timedatectl set-ntp false
systemctl stop systemd-timesyncd
systemctl disable systemd-timesyncd
systemctl mask systemd-timesyncd
  • 通过将
    --log.level=debug
    作为参数传递给Prometheus,在Prometheus中启用调试模式

  • 检查日志。在我的例子中,已删除的度量返回:

    msg="Out of order sample" series="some-metric{a="b",c="d"}
    
  • 检查prometheus配置和规则文件,这些文件可能会返回重复的
    某些度量值。在我的例子中,一个重复的规则引起了问题,因为从联邦普罗米修斯那里刮取了相同的度量,然后由我的普罗米修斯重新计算。删除重复的规则解决了问题


普罗米修斯不接受带有历史时间戳的样品。如果您需要存储带有无序时间戳的样本,请查看其他支持回填的普罗米修斯兼容系统,例如。