《让你的 Go 服务自带监控:go-commons 的零成本方案》
《Go 应用轻量级监控方案:go-commons》介绍了为业务应用快速集成监控能力的开源工具。该项目通过嵌入式设计,让 Go 应用直接暴露 QPS、CPU、内存等指标,无需额外部署 exporter 服务。开发者只需引入依赖包,简单几行代码即可通过 HTTP 接口输出监控数据,支持与 Prometheus/Grafana 无缝集成。该方案特别适合个人开发者快速验证、中小团队简化运维,目前支持扩展更
·
很多开发者都有这样的经历:
业务上线后,领导一句「能不能看看 QPS、内存、CPU 用量?」
结果开发团队要么临时加日志,要么紧急部署 node_exporter、Prometheus,全链路一套下来比业务本身还复杂。
有没有更轻量、即插即用的办法?
有,那就是 go-commons。
🚀 1. 为什么要用 go-commons
- 轻量:不需要额外部署 exporter 服务。
- 嵌入式:直接在业务应用里暴露监控指标。
- 即插即用:Go 开发者一行
go get,立刻可用。 - 灵活:支持业务指标(QPS)+ 系统指标(内存、CPU)。
换句话说,它让 业务应用本身就是监控节点,省去了运维部署的复杂性。
🛠 2. 快速开始
安装依赖:
go get github.com/Rodert/go-commons
新建 main.go:
package main
import (
"fmt"
"net/http"
"github.com/Rodert/go-commons/metrics"
)
func main() {
// 暴露监控接口
http.HandleFunc("/metrics", func(w http.ResponseWriter, r *http.Request) {
mem := metrics.GetMemoryUsage() // 内存使用率
cpu := metrics.GetCPUUsage() // CPU 使用率
fmt.Fprintf(w, "memory_usage %.2f\n", mem)
fmt.Fprintf(w, "cpu_usage %.2f\n", cpu)
})
fmt.Println("server started at :8080")
http.ListenAndServe(":8080", nil)
}
运行:
go run main.go
🔍 3. 查看监控结果
直接用 curl 访问:
curl http://localhost:8080/metrics
输出示例:
memory_usage 38.12
cpu_usage 7.45
就是这么简单!
没有 node_exporter,没有复杂配置,一个 Go 应用就能自带健康报告。
📊 4. 与 Prometheus 集成
如果团队已经有 Prometheus,只需在配置文件加一个 job:
scrape_configs:
- job_name: "go-commons-demo"
static_configs:
- targets: ["localhost:8080"]
Grafana 就能画出漂亮的监控大盘。
业务 + 系统指标 全都在里面。
🌟 5. 为什么推荐 go-commons
- 对个人开发者:部署成本为 0,直接在 Go 应用里加几行代码。
- 对小团队:替代 node_exporter,节省维护成本。
- 对大团队:快速验证场景,在系统监控上线前,先用它做 MVP 方案。
🤝 6. 加入开源共建
目前 go-commons 还在快速演进阶段。
👉 GitHub 地址:https://github.com/Rodert/go-commons
你可以参与的方向包括:
- 新增监控指标:网络带宽、磁盘 I/O、goroutine 数量
- 提交更多示例代码:结合 Web 框架 Gin/Fiber
- 完善文档:给新人写「五分钟上手」教程
如果你在用 Go 做开发,强烈推荐你来试试。
让你的应用,从此自带一份 “健康体检报告” 🚀。
更多推荐



所有评论(0)