我正在寻找一种通过在Grafana中使用变量来从查询中排除一些标签名称的方法。
当前查询:
rate(http_request_duration_seconds_sum{container="$container", namespace="$namespace"}[5m]) / rate(http_request_duration_seconds_count{container="$container", namespace="$namespace"}[5m])
我们可以通过以下方式将其添加到当前查询中来完成此操作:
rate(http_request_duration_seconds_sum{container="$container", namespace="$namespace",exported_endpoint=~"/management/health.*"}[5m]) / rate(http_request_duration_seconds_count{container="$container", namespace="$namespace",exported_endpoint=~"/management/health.*"}[5m])
上面的查询排除了所有以'/management/health'
开头的“exported_endpoint
”标签。
该查询有两个关键问题:
- 它是硬编码,而不是使用变量。
- 我们不能使用排除名称列表,将来我们可能要排除更多端点。
你有什么建议?
1条答案
按热度按时间sczxawaw1#
在正则表达式匹配器中使用变量是没有限制的。基本上在向普罗米修斯发送请求之前,Grafana会替换它。
所以你可以用
关于多个标签的删除:如果你使用'!~'来排除标签,你总是可以使用类似
filter1_.*|filter2_.*
或者甚至${filter1}|${filter2}
的东西,其中filter1
和filter2
是grafana中的变量。