【问题标题】:Prometheus histogram get number of requests per bucketPrometheus直方图获取每个桶的请求数
【发布时间】:2022-12-22 16:42:11
【问题描述】:

我们有一个直方图桶 (myapp_duration_seconds_bucket),它具有不同的 le 值,用于捕获 api 的响应时间。 由此我想使用 Prometheus 查询找到每个存储桶的请求数。

例如,下面是 le 存储桶 myapp_duration_seconds_bucket 的 Prometheus 输出。直方图桶是累积的,但我想获得每个桶的计数以找到落入每个桶的交易的确切数量。

  • le="+Inf" 8229
  • le="0.005" 0
  • le="0.01" 0
  • le="0.025" 0
  • le="0.05" 5149
  • le="0.075" 7101
  • le="0.1" 7466
  • le="0.25" 7942
  • le="0.5" 8070
  • le="0.75" 8120
  • le="1.0" 8156
  • le="10.0" 8229
  • le="2.5" 8223
  • le="5.0" 8229
  • le="7.5" 8229
  • le="0.1" 7466
  • le="0.25" 7942
  • le="0.5" 8070
  • le="0.75" 8120
  • le="1.0" 8156
  • le="10.0" 8229
  • le="2.5" 8223
  • le="5.0" 8229
  • le="7.5" 8229

先感谢您。

【问题讨论】:

    标签: prometheus grafana promql


    【解决方案1】:

    没有 PromQL 查询,它可以返回具有任意数量桶的 Prometheus histograms 的每个桶命中。但是您可以使用以下查询来计算特定桶的命中数:

    myapp_duration_seconds_bucket{le="UPPER_BOUND"}
      - ignoring(le)
    myapp_duration_seconds_bucket{le="LOWER_BOUND"}
    

    此查询将返回具有 (LOWER BOUND ... UPPER_BOUND] 边界的桶的命中数。请注意,UPPER_BOUNDLOWER_BOUND 必须存在于 le 标签值中,用于 myapp_duration_seconds_bucket 指标。

    在计算具有不同 le 标签值的不同时间序列之间的差异时,查询使用 ignoring() 修饰符忽略 le 标签。查看有关此here的更多详细信息。

    附言看看 VictoriaMetrics histograms - 他们的桶已经包含每个桶的准确命中数,因此不需要在那里进行额外的计算。

    【讨论】:

      猜你喜欢
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多