如何处理 Kubernetes Pod 重启导致的 Prometheus 指标差距?

问题描述 投票:0回答:1

我有一个在 Kubernetes 上运行的 Web API,并使用 Prometheus 进行监控。我创建的指标之一是total_request_number,它是一个计数器,带有指示所请求通道的通道名称标签。对于每个新请求,指标都会根据特定渠道增加。

当我的应用程序更新并且 Kubernetes Pod 在白天重新启动时,就会出现问题。因此,数据中存在间隙,导致我的 Grafana 图表出现不连续性。我想显示在 Grafana 中选择的特定时间段内的请求数,包括 pod 重新启动造成的间隙之前的数据。

目前,我在 Grafana 查询中使用 Sum(total_request_number) by (channelname)。但是,此方法仅适用于我的 Pod 未重新启动的时期。对于之前的数据(重新启动之前),sum() 函数不会返回任何内容。

如何查询Prometheus获取选定时间段内的请求总数,包括pod重启造成的间隙之前的数据?

这是按标签求和。

这是 pod 和标签的总和

prometheus grafana metrics
1个回答
0
投票

您可以使用此查询:

sum by (channelname) (
 increase(
  last_over_time(
   total_request_number
   [$__range]
  )
  [$__range:]
 )
)

这里:

  • last_over_time
    - 将每个指标的最后看到的值延伸到仪表板的末尾(如果在仪表板的时间范围内看到),
  • increase
    计算仪表板时间范围内每个指标的增加,
  • sum by (channelname)
    在标签上聚合
    channelname
© www.soinside.com 2019 - 2024. All rights reserved.