Folia
← 返回头版

开发者发布轻量级开源监控工具 Gjallar

开发者 brvier 发布了一款名为 Gjallar 的轻量级监控工具 1。该工具仅需一个 Go 二进制文件、一个 YAML 配置文件和一个 SQLite 数据库,即可实现对 HTTP 端点以及 PostgreSQL、Oracle、Redis、Elasticsearch 等多种服务的监控与告警 1。该项目代码量约 3,400 行,采用纯 Go 语言编写,并以 MIT 协议在 GitHub(github.com/brvier/Gjallar)上开源 1。

在技术实现上,Gjallar 采用零 CGO 设计,支持跨平台编译与简单部署 1。通过特定命令(CGO_ENABLED=0 go build -trimpath -ldflags "-s -w")编译出的单个二进制文件大小约为 36 MB 1。为了保持纯 Go 特性,该工具使用 pgx 替代 libpq 连接 PostgreSQL,采用 go-ora 替代 Oracle Instant Client 连接 Oracle,并利用 modernc.org/sqlite 作为 SQLite 的纯 Go 实现 1。此外,Redis 检查直接通过 TCP 协议实现,无需驱动 1。该工具的告警管道采用单消费者 goroutine 模式,实现了无锁设计 1。通知发送异步执行,且超时时间设为 15 秒 1。在运维与数据管理方面,Gjallar 支持通过 SIGHUP 信号热重载配置,并默认保留 30 天的历史数据 1。


评论