如何在prometheus + grafana中显示零而不是最后一个值
Posted
技术标签:
【中文标题】如何在prometheus + grafana中显示零而不是最后一个值【英文标题】:How to display zero instead of last value in prometheus + grafana 【发布时间】:2020-05-19 05:06:22 【问题描述】:我正在使用 prometheus + grafana 来收集和显示指标。如果我的一个设备停止报告,grafana 将继续绘制最后一个值。例如,如果我的一台设备在 2 天前报告了它的温度并且温度为 50 度,那么 Grafana 将在过去 2 天显示一条 50 度的平线。如果设备没有报告任何指标,我预计这个时间序列图会下降到零。
这只是 prometheus 和 grafana 的行为方式,还是我在配置中遗漏了什么?如果设备未报告而不是显示其最后一个值的平线,我希望此时间序列图绘制零。
附加信息:
使用 prometheus.net 将指标推送到 prometheus 的推送网关。
我尝试在 grafana 中图形的 Stacking 和 Null Value 部分下使用 Null value: null as zero 选项。
【问题讨论】:
顺便说一句,可以将 Prometheus 文本展示格式的测量结果直接推送到 VictoriaMetrics 等时间序列数据库,因此时间序列在最后一次摄取样本后立即停止。见these docs 【参考方案1】:这是推送网关的expected behavior。一旦一个值被推送,它将永远存在。这是由开发团队假设的,TTL or expiration 的指标已被拒绝
此问题的通常解决方案是推送测量的 Unix 时间戳,并在它变得太旧或使用 UNLESS time() - timestamp_metric
条件时发出规则警报。
【讨论】:
以上是关于如何在prometheus + grafana中显示零而不是最后一个值的主要内容,如果未能解决你的问题,请参考以下文章
Grafana + Prometheus 如何在查询指标中使用正则表达式?
如何使用 grafana 可视化 prometheus 端点指标
如何在使用 grafana 和 prometheus-operator 时配置电子邮件警报
Grafana中如何使用Prometheus数据源监控elasticsearch