grafana - 不要使用 promQL 在 Grafana 中显示来自重新部署的 pod 的数据
问题描述
我有一个 PromQL 查询,它查看每个分位数的最大延迟并在 Grafana 中显示数据,但它显示来自重新部署且不再存在的 pod 的数据。豆荚比 15 天的陈旧期更年轻。
这是查询:max(latency{quantile="..."})
发现的最大延迟是从它被限制的时候开始的,在它重新部署并恢复正常后不久,现在我只想查看当前活动的最大延迟。
到目前为止,我发现的所有关于过时的信息都表明它应该在幕后进行过滤,但看起来它并没有在当前设置中发生,我无法弄清楚我应该改变什么。
在查询中手动添加特定实例 ID 时 - 它运行良好,但 ID 会在重新部署后更改:max(latency{quantile="...", exported_instance="ID"})
这是我发现的一长串类似问题,有些没有回答,有些没有要求相同。我确实发现有些相关但不能以可持续方式解决问题的想法是:
以下链接中没有帮助的建议
- 更改陈旧期,不会起作用,因为它会影响整个系统
- 重启普罗米修斯,不会工作,因为每次重新部署一个pod时都不能这样做
- 列出每台机器的每个图表,不适用于
max
查询
类似问题的链接
- 如何处理 Prometheus 中收集的旧指标? 切换 prom->elk:基于日志的监控
- 仅从最后一次抓取迭代中从 prometheus 获取数据 过时是一个相关概念,在 Singlestat 中它显示了如何仅使用当前值
- Grafana 仪表板显示从 prometheus 删除的信息 默认保留期为 15 天,使用复选框隐藏机器
- 如何从 Prometheus 中删除旧作业? 手动查询/重启
- grafana 变量仍然捕获旧的指标信息 更新普罗米修斯目标
- 使用 prometheus 设置清除 Grafana Delete 中的旧数据
- https://community.grafana.com/t/prometheus-push-gateway/18835 未回答
- https://www.robustperception.io/staleness-and-promql 在没有示例的情况下解释新的陈旧性如何工作
最终目标
正在显示当前所有源之间的最大延迟,从不再存在的源中删除数据。
解决方案
您可以使用名为up
的自动生成的指标将您所需的指标与其他指标隔离开来。您可以轻松地确定哪些指标源与up
指标脱机。
up{job="", instance=""}:如果实例健康,即可达,则为 1,如果抓取失败,则为 0。
推荐阅读
- python - 如何在 Python 中总结这些输出?
- javascript - 发送时下载ID(获取帖子)
- python-3.x - 如何在 Python 中的多个字符之间分割文本?
- reactjs - React 应用的简单内容管理
- javascript - typeof 在 ajax 响应中没有按预期工作
- java - 用于查找括号内的文本的正则表达式,后跟@en:“example”@en
- javascript - 我如何简化 ParseInt 从本地存储变量中检索的代码块
- symfony4 - 我不能为收音机类型选择错误选项
- javascript - Javascript Bokeh Plot 未在浏览器中呈现
- java - JSP servlet 连接不成功