搜索¶
文本搜索¶
搜索一般由术语和运算符两部分组成。支持通配符查询:
*
表示匹配 0 或多个任意字符;?
表示匹配 1 个任意字符。
多个术语可以通过布尔运算符(AND
/OR
/NOT
)组合成复杂查询。
注意
查看器搜索使用的是 query_string() 查询语法。
术语可以是单词或者短语。比如:
- 单个单词:
guance
; - 多个单词:
guance test
;(等同于guance AND test
) - 短语:
"guance test"
; (使用双引号可以将一组单词转换为短语)
示例:
JSON 搜索¶
前提
- 工作空间在
2022年6月23日
后创建; - 日志查看器中使用。
默认对 message
的内容进行精确检索,且 message
必须是 JSON 格式,其他格式的日志内容不支持该检索方式。搜索格式为:@key:value
,对于多层级 JSON,可使用 .
连接键名,例如 @key1.key2:value
,如图所示。
场景示例:
message 信息如下:
{
__namespace:tracing,
cluster_name_k8s:k8s-demo,
meta:{
service:ruoyi-mysql-k8s,
name:mysql.query,
resource:select dict_code, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark
from sys_dict_data
}
}
# 查询 cluster_name_k8s = k8s-demo
@cluster_name_k8s:k8s-demo // 精准匹配
@cluster_name_k8s:k?s* // 模糊匹配
# 查询 meta 下 service = ruoyi-mysql-k8s
@meta.service:ruoyi-mysql-k8s // 精准匹配
@meta.service:ruoyi?mysql* // 模糊匹配
注意
当搜索内容包含 .
(如 trace.id
),直接使用 @key1.key2:value
格式输入会导致系统将 trace
和 id
识别为两个独立的键,而非一个整体。为避免此问题,请改用 @\"key1.xxx\":value
的格式输入,例如 @\"trace.id\":value
,这样系统会正确识别完整的键名。