Prometheus 来源的时间序列:如何将空值设置为零?
Posted
技术标签:
【中文标题】Prometheus 来源的时间序列:如何将空值设置为零?【英文标题】:Time series from Prometheus source: how to set nulls as zero? 【发布时间】:2021-11-23 08:52:55 【问题描述】:在 Docker Grafana 8.1.5 中工作。使用时间序列图,我将Prometheus
Counter
源(有一个label
)绘制为time series
(按标签),并且需要将所有空值/缺失值填充为零。
这是应用于Prometheus
counter
源的查询,绘制标签code
:
my_metriccode!=""
图形显示有效(只需要查看每个标签变体的当前计数器值,以及所选时间范围内的差异),但新的 Grafana time series graph
缺少 Graph (old)
在 @ 下的选项987654331@,因此当出现空值时,它现在以虚线结束。
很遗憾,我无法使用Graph (old)
图表,因为我需要图例值difference
,它只能在新的time series
图表中使用。
我尝试将or on() vector(0)
添加到查询的末尾,但该条件并未应用于每个标签变体的数据系列,而是添加了一个全部用零填充的新数据系列...
感谢您的任何建议!
【问题讨论】:
【参考方案1】:我也遇到了这个问题,我不能只使用你提到的or on() vector(0)
,因为主查询返回NaN
。在我的情况下,我被零除。
我可以通过首先评估查询是否具有值>= 0
然后使用or on() vector(0)
来解决它。尝试类似的方法:
((my_metriccode!="") >= 0) OR on() vector(0)
【讨论】:
这在我的情况下无法将所有空值/缺失值填充为零,它还只是添加了另一个由零组成的单独行 嘿@pete19,你能把结果的截图贴出来吗?仅通过描述来理解您的问题有点困难。 Felipe,这适用于某些查询,但要注意,如果结果用于其他函数,则通常需要将查询包装在一组额外的括号中()
...
@pete19 我很高兴你成功了。我用你的信息编辑了我的答案。如果您认为我的帖子可以回答您的问题,您愿意接受作为答案吗?提前谢谢你以上是关于Prometheus 来源的时间序列:如何将空值设置为零?的主要内容,如果未能解决你的问题,请参考以下文章