如何在Golang中使用Prometheus进行监控_Golang Prometheus监控与报警配置-Golang

Go服务暴露/metrics端点需注册promhttp.Handler()并显式调用prometheus.MustRegister(prometheus.NewGoCollector());建议用独立端口,确保Counter被Inc()触发且label匹配,检查Prometheus targets、监听地址和防火墙;for: 2m要求连续8次评估为true,应设为≥3×scrape_interval。

怎么让 Go 服务暴露 /metrics 端点

核心就一句话:注册 promhttp.Handler() 到 HTTP 路由,它会自动输出 Go 运行时指标(如 go_goroutines、go_memstats_alloc_bytes)和你自定义的指标。不手动调用 prometheus.MustRegister() 注册默认收集器,这些基础指标就不会出现。

  • 必须显式注册运行时指标:加一行 prometheus.MustRegister(prometheus.NewGoCollector()),否则 go_goroutines 这类关键指标压根不会上报
  • /metrics 建议用独立端口(比如 :9091),避免和业务端口混用——防止业务 panic 导致监控端点一起挂掉
  • 别用 http.ListenAndServe(":8080", nil) 直接启动,nil 的 handler 会把所有请求都打到 /metrics 上;正确写法是 http.ListenAndServe(":9091", nil) 配合 http.Handle("/metrics", ...)

为什么 http_requests_total 指标没出现在 /metrics 页面

常见原因是指标没被真正“触发”——Counter 不会主动上报零值,只有调用 .Inc() 或 .Add() 后才会在 /metrics 中显示。刚启动服务时页面里根本看不到你定义的 Counter,属于正常现象。

  • 确保 handler 函数里调用了 httpRequestsTotal.WithLabelValues(...).Inc(),且 label 值非空(空字符串或 nil 会导致 panic)
  • 标签名必须和 NewCounterVec 初始化时声明的一致,比如定义了 []string{"method", "endpoint", "status"},但调用时传了 "GET", "/api/v1", "200" 就对,传成 "GET", "/", "2xx" 会导致 label 不匹配,指标虽存但查不到
  • 如果用 prometheus.NewCounter()(非 Vec 版),就别带 label,否则 .WithLabelValues() 会 panic

Prometheus 抓不到 Go 服务的指标?检查这三处

最常卡在配置和网络层,不是代码问题。Prometheus 日志里如果出现 server returned HTTP status 404 Not Found 或 context deadline exceeded,基本就是下面某个环节断了。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » 如何在Golang中使用Prometheus进行监控_Golang Prometheus监控与报警配置-Golang
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4006183+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1392+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4006183+
  • 本周更新: 0+
  • 最后更新: 2026-03-16