找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

470

积分

0

好友

66

主题
发表于 19 小时前 | 查看: 2| 回复: 0

开源日志查看工具 hl 专为高效处理 JSON 或 logfmt 格式的结构化日志而设计。该工具采用 Rust 语言构建,提供了快速的索引与解析能力,能够快速扫描体积庞大的日志文件,无论其是否经过压缩。

根据 hl 作者发布的基准测试,该查看器在初次扫描时自动索引的吞吐量最高可达约 2 GiB/s,而在重新索引增长中的文件时,吞吐量最高可达约 10 GiB/s。这一性能表现似乎显著优于 hlogfhumanlogfblogfblog-d 等替代方案,使其成为需要从命令行处理超大日志文件的 运维/DevOps 工程师的强力工具。

作者表示,hl 同样擅长处理“总计达数百GB的数百个本地文件”。

hl 内置了一个类似于 less 的集成分页器,便于浏览日志条目,同时还提供了一套丰富的功能用于过滤、搜索、排序和格式化日志。用户可以根据日志级别(例如 error、warn、info 等)、字段或键值对(例如 component=tsdb,或 request.method?!=GET 等)以及时间范围(例如 --since yesterday, --since -3h, --until 'Jun 19 11:22:33' 等)进行过滤。

hl 支持的其他实用功能包括:

  • 跟随模式:类似于 tail -f,使用 -F 选项时,可在多个源之间实现基于时间戳的自动排序。
  • 自定义输出:使用 -h 选项可以简单控制隐藏或显示特定字段。
  • 自动时区切换:将时间戳转换为所需的时区。
  • 支持UI主题和配色方案

hl 的一项强大能力是,它可以使用逻辑、比较、集合和字符串运算符来组合基本过滤选项,从而构建复杂查询。例如,以下命令结合了日志级别和两个字段过滤器:

hl my-service.log --query 'level > info or status-code >= 400 or duration > 0.5'

hl 的查询还允许你明确表达如何处理缺失的字段。例如,hl my-service.log -q 'exists(.price)' 会匹配定义了 price 字段(无论其值为何)的日志条目,排除那些缺失该字段的条目。而 hl my-service.log -q '.price?=3' 则会返回 price 字段缺失或等于 3 的条目。

在最近一个关于 Grafana 配置复杂性的 Hacker News 讨论中,用户 solatic 指出,对于只有一个应用实例的简单场景,hl 是比 Grafana Loki 等更复杂工具的一个良好替代品,他补充道:

如果你有多台机器,可能没有必要将日志发送到一个地方,但这非常有帮助;否则,基本上就得靠 SSH 多路复用了。

对于寻求轻量级本地日志分析方案的团队,hl 这类高性能命令行工具提供了一个值得考虑的 监控工具 选项。

hl 基于 MIT 许可证发布,可在 macOS、Linux 和 Windows 上运行。作为专注于提升日志处理效率的 可观测性 工具,它为开发者和运维人员提供了新的选择。

Github:https://github.com/pamburus/hl




上一篇:AWS CodeCommit恢复全面可用:托管Git服务回归背后的社区力量与影响
下一篇:Go、Rust、Zig 三种语言对比:极简、极致、极控的设计哲学
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-8 23:26 , Processed in 1.085642 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表