SuperAPI AI 工具集

logsql

数据与分析

查看项目

更新于 10-16 06:16

技能介绍

用途:介绍 VictoriaLogs 的 LogsQL 查询语言,帮助编写、调试与审查日志查询。

查询结构:采用「过滤器 | 管道1 | 管道2 ...」三段式。过滤器负责筛选日志,至少需要一个,在最前执行;管道对上一阶段结果做变换,最后一个管道的输出即结果。最简单的有效查询如 error,会在 _msg 中搜索。

过滤器:支持词(error、log.level:error)、短语("error: cannot open file")、前缀(error*)、精确与多值精确(log.level:="error"、log.level:in("error","fatal"))、正则(RE2 语法,支持 !~ 取反)、数值范围(duration_ms:>1000、[100,1000])、IPv4/IPv6 范围、长度范围、contains_all/any、子查询等;可用 AND/OR/NOT 组合,省略即为 AND,- 表示 NOT,优先级 NOT > AND > OR。时间用 _time 过滤(5m、1h、>=2024-01-01、闭开区间等)。流过滤用 {...} 与 PromQL 选择器语法(app="nginx"、instance=~"web-.*"、in/not_in)。

常用管道:fields 选字段、sort 排序、limit/first/last、stats 聚合、unpack_json 与 unpack_logfmt 解析结构化日志、extract 与 extract_regexp 抽取字段、math 与 eval 计算、top 取最大分组、uniq 去重。stats 支持按字段、时间桶(可带时区 offset)、字段桶、IPv4 桶分组,并可在聚合内附加过滤条件;常见函数包括 count、count_empty、count_uniq、count_uniq_hash、sum、avg、min、max、median、quantile、uniq_values、values、row_min/row_max、rate、histogram、stddev 等。

性能建议:始终加 _time,否则扫描全部日志;优先使用流过滤与精确匹配而非正则;先过滤后聚合,尽早 fields 裁剪字段;避免对超大数据集排序;高基数字段可用 count_uniq_hash 近似。查询选项包括 concurrency、parallel_readers、ignore_global_time_filter、allow_partial_response、time_offset、global_filter。

限制与说明:资料未提供具体版本要求、安装步骤或收费标准,暂未提供;Grafana 插件与 Web UI 会注入仪表盘时间范围,仪表盘查询中不应再加 _time。