计算多个 prometheus 指标的百分比并在 Grafana 中显示
Posted
技术标签:
【中文标题】计算多个 prometheus 指标的百分比并在 Grafana 中显示【英文标题】:Calculate percentage of multiple prometheus metrics and display in Grafana 【发布时间】:2021-09-08 09:56:22 【问题描述】:我有以下指标:
total_number_of_visitors
这是一个gauge
,当访问者进入网站时增加,当他们离开时减少
paid_visitors
,这是一个counter
,当付费访问者进入网站并停留至少 5 分钟时递增。
这些指标中的每一个都有两个常见标签 device
[移动设备、桌面设备、其他] 和 browser
[ Chrome、Safari、Firefox、Edge 和其他]
我想使用 PromQL 计算付费访问者的百分比,并按这两个标签中的任何一个进行过滤以显示在 Grafana 的图表中。 我该怎么做?
【问题讨论】:
【参考方案1】:以下查询将返回过去 5 分钟内网站上付费访问者的平均百分比:
100 * rate(paid_visitors[5m]) / avg_over_time(total_number_of_visitors[5m])
按device
和browser
标签过滤可以通过以下方式进行:
100 * rate(paid_visitorsdevice="$device",browser="$browser"[5m]) / avg_over_time(total_number_of_visitorsdevice="$device",browser="$browser"[5m])
只需将$device
和$browser
替换为所需的值即可。
device
和browser
标签的分组可以通过以下方式进行:
100 * sum(rate(paid_visitors[5m])) by (device, browser) / sum(avg_over_time(total_number_of_visitors[5m])) by (device, browser)
【讨论】:
以上是关于计算多个 prometheus 指标的百分比并在 Grafana 中显示的主要内容,如果未能解决你的问题,请参考以下文章
如何使用联合从多个 Prometheus 实例(每个使用 instance="localhost:9090")中收集 Prometheus 的指标