1、前置检查
假设你的监控模块内的pod异常则可能不适用本文的修复方式
2、异常现象
你的异常看起来像这样NaN%拿不到数据,连节点信息都是0%。这些都是通过node-exporter来推送到Prometheus中的,你首先得检查node-exporter与Prometheus是否运行正常,是否有明显报错
1、Prometheus异常
本文的主要异常原因就是因为Prometheus异常宕机恢复后导致的,出现Error on ingesting samples that are too old or are too far into the future异常,你可以观察一下Prometheus的pod日志是否正在爆这个异常错误
level=warn ts=2023-12-14T02:37:42.486Z caller=scrape.go:1402 component="scrape manager" scrape_pool=kubesphere-monitoring-system/kube-apiserver/0 target=https://172.31.0.31:6443/metrics msg="Error on ingesting samples that are too old or are too far into the future" num_dropped=21156
3、修复方式
1、操作步骤
如果你的Prometheus正在出现上述异常报错,你可以针对性的修复此问题。如果你没有比较好的方案则可以按我的方式来修复
1、要么进去pod中的/prometheus路径清空此目录内的数据重启pod让它重新初始化即可修复,此操作会丢失数据
2、要么在编辑设置中给它一个新的目录,例如–storage.tsdb.path=/prometheus-new这样的一个不存在的新目录,Prometheus会在启动的时候在新的路径初始化容器采集新数据,这样可以保留旧数据方便你后续提取修复旧数据
4、恢复正常
按上述操作重启pod完毕,不出意外几分钟后刷新页面即可恢复数据采集与展示