Prometheus - 匹配除一个以外的所有指标
Prometheus - Match all metrics but one
我如何匹配除某些指标之外的所有 Prometheus 指标?
例如:{__name__!~"metric_to_discard"}
不行,它returns Error executing query: parse error at char 35: vector selector must contain at least one non-empty matcher
.
谢谢
这是一种安全机制,可以避免因意外使用太宽的选择器而给 Prometheus 带来沉重负载。通常你不需要这样的查询来匹配(几乎)所有标签维度的每个指标。
通过使用 ..*
或 .+
全匹配选择器添加另一个维度,可以得到 some hacky solution to workaround this safety check。 (安全检查也禁止使用.*
)
{job=~"..*", __name__!~"metric_to_discard"}
注意:请注意,此查询可能会严重影响您的 Prometheus 实例,不应在生产系统上使用。
如前所述,可能有更好的方法来获得您喜欢的结果,而无需查询几乎每个指标。请考虑发布一个新问题,描述您真正想要达到的结果。
Prometheus 支持{__name__!=""}
查询,return所有时序。例如。此查询等效于以下 SQL 查询:SELECT * FROM metrics
(请注意,如果 Prometheus 包含许多时间序列,此查询可能会使 Prometheus 崩溃)。 Prometheus 允许对同一标签使用多个过滤器(包括映射到指标名称的 __name__
标签)。因此,以下查询将 return 除 metric_to_discard
指标之外的所有时间序列:
{__name__!="",__name__!~"metric_to_discard"}
P.S。 VictoriaMetrics 不需要 __name__!=""
hack。它只是 return 来自 {__name__!~"metric_to_discard"}
查询的预期结果。
我如何匹配除某些指标之外的所有 Prometheus 指标?
例如:{__name__!~"metric_to_discard"}
不行,它returns Error executing query: parse error at char 35: vector selector must contain at least one non-empty matcher
.
谢谢
这是一种安全机制,可以避免因意外使用太宽的选择器而给 Prometheus 带来沉重负载。通常你不需要这样的查询来匹配(几乎)所有标签维度的每个指标。
通过使用 ..*
或 .+
全匹配选择器添加另一个维度,可以得到 some hacky solution to workaround this safety check。 (安全检查也禁止使用.*
)
{job=~"..*", __name__!~"metric_to_discard"}
注意:请注意,此查询可能会严重影响您的 Prometheus 实例,不应在生产系统上使用。
如前所述,可能有更好的方法来获得您喜欢的结果,而无需查询几乎每个指标。请考虑发布一个新问题,描述您真正想要达到的结果。
Prometheus 支持{__name__!=""}
查询,return所有时序。例如。此查询等效于以下 SQL 查询:SELECT * FROM metrics
(请注意,如果 Prometheus 包含许多时间序列,此查询可能会使 Prometheus 崩溃)。 Prometheus 允许对同一标签使用多个过滤器(包括映射到指标名称的 __name__
标签)。因此,以下查询将 return 除 metric_to_discard
指标之外的所有时间序列:
{__name__!="",__name__!~"metric_to_discard"}
P.S。 VictoriaMetrics 不需要 __name__!=""
hack。它只是 return 来自 {__name__!~"metric_to_discard"}
查询的预期结果。