繁体   English   中英

有没有办法在基于正则表达式的 LOKI 查询中使用推断值?

[英]Is there a way to use inferred values in a regex based LOKI query?

我的 Loki 数据源中确实有以下日志行:

Trace_MSG_IN: 933a1425-5e62-545d-9947-274c5b870607
Trace_MSG_IN: 933a1425-5e62-545d-9947-274c5b870607
Trace_MSG_CR: 933a1425-5e62-545d-9947-274c5b870607
Trace_MSG_IN: a37da313-512a-50e6-9050-fd917b30c632
Trace_MSG_CR: a37da313-512a-50e6-9050-fd917b30c632

为了创建适当的图表,所需的 output 将是找到消息标识符的频率以及跟踪点类型的计数:

msg_id=933a1425-5e62-545d-9947-274c5b870607, type=IN => 2
msg_id=933a1425-5e62-545d-9947-274c5b870607, type=CR => 1
msg_id=a37da313-512a-50e6-9050-fd917b30c632, type=IN => 1
msg_id=a37da313-512a-50e6-9050-fd917b30c632, type=CR => 1

以下 LogQL 查询进行分组,但我看不到如何集成计数功能。

{build="runtimeidentifier"} |= "Trace_MSG_" | regexp "(?P<type>(CR|IN)): (?P<msg_id>[a-z0-9.-]{36})"

我尝试基于https://grafana.com/blog/2021/01/11/how-to-use-logql-range-aggregations-in-loki/#a-word-on-grouping集成计数功能,是以下查询:

count by(msg_id) ({build="runtimeidentifier"} |= "Trace_MSG_" | regexp "(?P<type>(CR|IN)): (?P<msg_id>[a-z0-9.-]{36})" | type = "CR" )

但这会导致语法错误

parse error at line 1, col 155: syntax error: unexpected )

以及此查询的其他变体:

count_over_time({build="runtimeidentifier"} |= "Trace_MSG_" | regexp "(?P<type>(CR|IN)): (?P<msg_id>[a-z0-9.-]{36})" [10m]) (同样的错误)

有没有办法在查询中使用不是日志行显式部分的推断值?

像这样的东西怎么样:

sum by (type, msg_id) (count_over_time({build="runtimeidentifier"} |= "Trace_MSG_" | pattern `Trace_MSG_<type>: <msg_id>` [$__interval]))

不确定我是否完全正确地使用了您的模式,但您可以在此处看到一个与您想要完成的非常相似的示例:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM