计算多个 Prometheus 指标的百分比并在 Grafana 中显示

Ben*_*Ben 5 grafana prometheus promql

我有以下指标:

total_number_of_visitorsgauge当访问者进入网站时该值会增加,当访问者离开网站时该值会减少

paid_visitorscounter当付费访问者进入网站并停留至少 5 分钟时,该值就会递增。

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

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

val*_*ala 5

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

100 * rate(paid_visitors[5m]) / avg_over_time(total_number_of_visitors[5m])
Run Code Online (Sandbox Code Playgroud)

可以通过以下方式执行按标签device过滤:browser

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

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

可以通过以下方式对 bedevice和labels 进行分组:browser

100 * sum(rate(paid_visitors[5m])) by (device, browser) / sum(avg_over_time(total_number_of_visitors[5m])) by (device, browser)
Run Code Online (Sandbox Code Playgroud)