如何绘制遵循相同正则表达式模式的多个普罗米修斯指标的复杂组合
How to plot a complex combination of several Prometheus metrics obeying the same regex pattern
在问题 中解决了,如果我们想绘制多个,如何在 Grafana 中的同一图上构建多个 Prometheus 指标(甚至是指标的 rate()
派生)同一图上具有共同前缀的指标。
现在我想绘制一个指标的值除以另一个指标的值,所以我希望下面的 PromQL 查询有效:
label_replace({__name__=~"camel_proxy.*sum"},"name_label","","__name__", "(.+)")/label_replace({__name__=~"camel_proxy.*count"},"name_label","","__name__", "(.+)")
给我一堆图表,其中相应的 *.sum 将除以相应的 *.count 指标并显示所有行。
但是,我只是从普罗米修斯那里得到了空数组。我该如何解决这个问题?
Prometheus 对二元运算符左右两侧具有相同标签集的时间序列对执行二元运算。有关详细信息,请参阅 vector matching rules。在您的情况下,left-side 时间序列包含 label_name
以 count
结尾的标签,而 right-side 系列包含 label_name
以 sum
结尾的标签。 Prometheus 无法找到具有相同标签集的序列对,因此它 returns 是一个空结果。解决方案是从 label_name
值中去除 count
和 sum
后缀,因此 left-side 和 right-side 时间序列得到相同的 label_name
值对:
label_replace(
{__name__=~"camel_proxy.*sum"},"name_label","","__name__", "(.+)sum"
) /
label_replace(
{__name__=~"camel_proxy.*count"},"name_label","","__name__", "(.+)count"
)
在问题 rate()
派生)同一图上具有共同前缀的指标。
现在我想绘制一个指标的值除以另一个指标的值,所以我希望下面的 PromQL 查询有效:
label_replace({__name__=~"camel_proxy.*sum"},"name_label","","__name__", "(.+)")/label_replace({__name__=~"camel_proxy.*count"},"name_label","","__name__", "(.+)")
给我一堆图表,其中相应的 *.sum 将除以相应的 *.count 指标并显示所有行。
但是,我只是从普罗米修斯那里得到了空数组。我该如何解决这个问题?
Prometheus 对二元运算符左右两侧具有相同标签集的时间序列对执行二元运算。有关详细信息,请参阅 vector matching rules。在您的情况下,left-side 时间序列包含 label_name
以 count
结尾的标签,而 right-side 系列包含 label_name
以 sum
结尾的标签。 Prometheus 无法找到具有相同标签集的序列对,因此它 returns 是一个空结果。解决方案是从 label_name
值中去除 count
和 sum
后缀,因此 left-side 和 right-side 时间序列得到相同的 label_name
值对:
label_replace(
{__name__=~"camel_proxy.*sum"},"name_label","","__name__", "(.+)sum"
) /
label_replace(
{__name__=~"camel_proxy.*count"},"name_label","","__name__", "(.+)count"
)