计算多个prometheus metrics的百分比并显示在Grafana中

Calculate percentage of multiple prometheus metrics and display in Grafana

我有以下指标:

total_number_of_visitors 这是一个 gauge,访问者进入网站时增加,离开时减少

paid_visitors 这是一个 counter,当付费访问者进入网站并停留至少 5 分钟时递增。

这些指标中的每一个都有两个通用标签 device [移动、桌面、其他] 和 browser [ Chrome、Safari、Firefox、Edge、其他]

我想计算使用 PromQL 的付费访问者的百分比,并按这两个标签中的任何一个进行过滤,以显示在 Grafana 的图表中。 我该怎么做?

以下查询将 return 过去 5 分钟内网站上付费访问者的平均百分比:

100 * rate(paid_visitors[5m]) / avg_over_time(total_number_of_visitors[5m])

devicebrowser 标签过滤可以按以下方式执行:

100 * rate(paid_visitors{device="$device",browser="$browser"}[5m]) / avg_over_time(total_number_of_visitors{device="$device",browser="$browser"}[5m])

只需将 $device$browser 替换为所需的值即可。

分组为devicebrowser标签可以通过以下方式进行:

100 * sum(rate(paid_visitors[5m])) by (device, browser) / sum(avg_over_time(total_number_of_visitors[5m])) by (device, browser)