You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Loki中按template_hash获取Top-K日志并展示日志样本?

在Loki中按template_hash获取Top-K日志并展示样本

问题背景

你的日志格式示例如下:

[2025-10-02 21:46:34] [DEBUG] [template_hash:aaaaaaaa] Hello Alice
[2025-10-02 21:46:34] [DEBUG] [template_hash:aaaaaaaa] Hello Bob
[2025-10-02 21:46:34] [DEBUG] [template_hash:aaaaaaaa] Hello Charlie
[2025-10-02 21:46:34] [DEBUG] [template_hash:bbbbbbbb] Hey Alice
[2025-10-02 21:46:34] [DEBUG] [template_hash:bbbbbbbb] Hey Bob
[2025-10-02 21:46:34] [DEBUG] [template_hash:cccccccc] Howdy Alice

你已能通过以下查询获取Top-K的template_hash及其计数:

sum by(template_hash) (topk(4, count_over_time({app="$deployment"} | logfmt template_hash [$__auto])))

现在需要实现:按日志模板的出现频率从高到低,展示每个高频模板对应的近期日志样本。

解决方案

方式一:子查询过滤+日志展示

通过子查询先筛选出Top-K的template_hash,再匹配对应的日志内容,适合快速查看所有高频模板的日志:

{app="$deployment"} | logfmt template_hash
| where template_hash in (
  topk(4, sum by(template_hash) (count_over_time({app="$deployment"} | logfmt template_hash [$__auto])))
)
| sort by template_hash  # 可替换为按时间排序:| sort by timestamp desc
  • 第一行:过滤目标应用的日志并解析出template_hash字段
  • 第二至第四行:只保留出现频率Top4的哈希值对应的日志
  • 最后一行:按哈希分组排序(或按时间倒序查看最新日志)

方式二:关联计数与日志样本(需Loki ≥2.4.0)

使用join操作同时展示每个Top哈希的计数和对应的日志样本,更直观地看到频率与内容的对应关系:

topk(4, sum by(template_hash) (count_over_time({app="$deployment"} | logfmt template_hash [$__auto])))
| join on(template_hash) (
  {app="$deployment"} | logfmt template_hash | latest_over_time(1m)
)
  • 第一部分:获取Top4的template_hash及其出现次数
  • 第二部分:关联每个哈希的最近1分钟内的最新日志样本

如果需要查看每个模板的多条样本,可将latest_over_time(1m)替换为范围查询并限制条数:

topk(4, sum by(template_hash) (count_over_time({app="$deployment"} | logfmt template_hash [$__auto])))
| join on(template_hash) (
  {app="$deployment"} | logfmt template_hash | range [$__auto] | limit 3
)

这样每个高频模板会展示最多3条近期日志。

备选方案(无join支持时)

如果你的Loki版本不支持join,可以先运行原查询得到Top-K的哈希值,再分别查询每个哈希对应的日志:

# 查看aaaaaaaa模板的日志
{app="$deployment"} | logfmt template_hash | template_hash="aaaaaaaa"

重复此操作查询其他高频哈希即可。

内容的提问来源于stack exchange,提问作者Jon Bates

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 06:43:09