【问题标题】:Impute nulls of grouped by aggregate for PromQL group by query为 PromQL 按查询分组按聚合分组的空值
【发布时间】:2022-06-13 04:43:14
【问题描述】:

现在,我正在计算 minimum_over_time 的 1 天时间间隔,该查询已被赋予占位符选择器名称。当我计算结果时,某些组中有空值。目前,我的查询具有以下结构:

(
  min_over_time(
    min 
      without(instance) 
      (app_traffic_usage{
            job=~"mobile|desktop",
            environment="production"})[1d:5m])
  or by (job) vector(0)
)

理想情况下,我希望 OR 语句单独估算每个作业,但由于向量没有标签,它不起作用。将不胜感激有关此事的任何帮助。提前谢谢!

【问题讨论】:

    标签: prometheus grafana promql


    【解决方案1】:

    尝试将min 替换为min_over_time

    min(
      min_over_time(app_traffic_usage{
        job=~"mobile|desktop",
        environment="production"}[1d]
      )
    ) without (instance)
    

    此查询的工作方式如下:

    1. 它找到每个匹配系列在最后一天的最小原始样本值。

    2. 然后,它从步骤 1 中找到每组系列的最小值,按除instance 标签之外的所有标签分组。

    此查询与问题中的原始查询的区别在于原始查询使用Prometheus subquery feature。虽然这个功能很强大,但很难理解和正确使用:( 看起来这里使用不当。

    至于在任意时间序列中用零填充间隙的通用方法,or vector(0) 习语在复杂情况下无法按预期工作。在这些情况下,如果您使用 VictoriaMetrics 而不是 Prometheus,则可以使用来自 MetricsQLdefault 0 idiom。这是我正在研究的类似 Prometheus 的系统。

    【讨论】:

      猜你喜欢
      • 2021-05-19
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-29
      • 1970-01-01
      • 2016-07-03
      • 2016-03-20
      相关资源
      最近更新 更多