新闻中心
如何在Golang中使用Prometheus+Grafana监控_Golang Prometheus Grafana监控实践
首先集成Prometheus客户端库,定义请求量、响应时间等指标并暴露/metrics接口;接着配置Prometheus抓取目标,确保状态为UP;最后通过Grafana添加数据源并导入或创建Dashboard展示QPS和延迟等关键指标。

在Golang服务开发中,系统可观测性至关重要。Prometheus 和 Grafana 是目前最流行的开源监控与可视化组合。通过集成 Prometheus 客户端库,可以轻松暴露指标数据,再由 Grafana 展示成直观图表。下面介绍如何在 Golang 项目中实践 Prometheus + Grafana 监控。
引入 Prometheus 客户端库
Prometheus 提供了官方的 Go 客户端库 prometheus/client_golang,用于在应用中定义和暴露指标。
安装依赖:
go get github.com/prometheus/client_golang/prometheus go get github.com/prometheus/client_golang/prometheus/promhttp在代码中注册常用指标类型,如计数器(Counter)、直方图(Histogram)、仪表(Gauge)等。
定义并暴露监控指标
以一个 HTTP 服务为例,统计请求次数、响应时间等常见指标。
示例代码:
package mainimport ( "net/http" "time" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" )
// 定义指标 var ( httpRequestsTotal = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total number of HTTP requests.", }, []string{"method", "endpoint", "code"}, )
httpRequestDuration = prometheus.NewHistogram(
prometheus.HistogramOpts{
Name: "http_request_duration_seconds",
Help: "HTTP request latency in seconds.",
Buckets: prometheus.DefBuckets,
},
))
func init() { prometheus.MustRegister(httpRequestsTotal) prometheus.MustRegister(httpRequestDuration) }
func handler(w http.ResponseWriter, r *http.Request) { start := time.Now()
// 模拟业务逻辑
w.WriteHeader(http.StatusOK)
w.Write([]byte("Hello, Prometheus!"))
// 记录指标
httpRequestsTotal.WithLabelValues(r.Method, r.URL.Path, "200").Inc()
httpRequestDuration.Observe(time.Since(start).Seconds())}
启动一个 /metrics 接口供 Prometheus 抓取:
美图云修
商业级AI影像处理工具
50
查看详情
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler()) // 暴露指标
http.ListenAndServe(":8080", nil)
}
配置 Prometheus 抓取数据
修改 prometheus.yml 配置文件,添加你的 Go 应用为监控目标。
scrape_configs: - job_name: 'go-app' static_configs: - targets: ['your-go-app-host:8080']启动 Prometheus 服务后,访问其 Web 界面(默认 9090 端口),在 “Ta
rgets” 中确认状态为 UP,表示抓取正常。
使用 Grafana 可视化监控数据
启动 Grafana(通常使用 Docker):
docker run -d -p 3000:3000 --name=grafana grafana/grafana-enterprise登录 Grafana(默认账号/密码:admin/admin),添加 Prometheus 为数据源,地址填入 Prometheus 服务地址(如 http://host:9090)。
导入或创建 Dashboard:
- 可导入社区常用的 Go 应用模板,如 ID 12683("Go Metrics")
- 自定义面板,查询 http_requests_total 查看 QPS,http_request_duration_seconds 查看 P99 延迟
基本上就这些。只要在 Golang 中正确暴露指标,Prometheus 抓取,Grafana 展示,整套链路就能跑通。关键是指标设计要合理,比如按 endpoint、method、status 分维度,才能支持有效分析。不复杂但容易忽略细节,比如 histogram buckets 设置、label 维度过载等。保持简洁清晰最重要。
以上就是如何在Golang中使用Prometheus+Grafana监控_Golang Prometheus Grafana监控实践的详细内容,更多请关注其它相关文章!
# 何为
# 软文营销推广重要性
# 韶关网站营销推广
# 网站建设后怎么优化网页
# SEO优化网站关键词快速排名百度推广教程
# 商丘全网营销推广软件
# 智慧推广系统网站
# 图标搜索网站建设素材
# 申论网站建设模板范文
# 大足网站建设公司
# 营销推广ppt素材
# 就能
# 访问权限
# 响应时间
# 内网
# git
# 如何使用
# 如何在
# 客户端
# 美图
# igs
# 配置文件
# ai
# 端口
# app
# golang
# github
# docker
# go
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
在Blazor WebAssembly应用中动态注入客户端特定指标代码的策略
Pandas DataFrame:高效添加条件计算列
Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
如何在更新Composer依赖后自动运行测试_使用post-update-cmd钩子触发PHPUnit
如何使用纯J*aScript判断Input元素是否在特定类容器内
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!
如何更改在 Excel 中打开超链接时的默认浏览器
神庙逃亡小游戏在线玩 神庙逃亡小游戏入口
QQ邮箱正确登录入口_QQ邮箱官方网站使用地址
蛙漫移动版在线看 蛙漫手机浏览器直达入口
C++如何实现一个智能指针_手动实现C++ shared_ptr的引用计数功能
深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现
俄罗斯浏览器官网直达链接 俄罗斯浏览器最新在线入口导航
2025-2030年全球乘用车销量预测:新能源成增长主力
qq邮箱发邮件给国外发不出去_QQ邮箱国际邮件发送失败原因与解决
c++如何使用TBB库进行任务并行_c++ Intel线程构建模块
QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网
如何仅使用CSS更改登录界面背景图像图标的颜色
微博网页版直接访问 微博网页版账号管理快速入口
Python getattr() 异常处理深度解析:避免程序意外退出
Python模块化编程:有效管理依赖与避免循环引用
铁路12306改签能改到更早的车次吗_铁路12306改签提前车次规则
Golang如何通过reflect获取匿名字段方法_Golang reflect匿名字段方法访问技巧
向日葵客户端怎么进行远程CentOS控制_向日葵客户端远程CentOS控制操作教程
Angular Material 垂直步进器:实现底部到顶部排序的教程
Win10怎么制作U盘启动盘 Win10系统安装U盘制作教程【详解】
Excel组合图表怎么做 Excel创建柱状图与折线组合图教程【图表】
如何在CSS中使用visited与link控制链接颜色_visited link伪类配合
J*aScript类型检查_j*ascript代码规范
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】
电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】
AO3访问入口汇总 AO3网页版同人作品一键直达
解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误
Descript怎样用AI剪辑自动去噪_Descript用AI剪辑自动去噪【自动降噪】
qq游戏网页版直接玩_qq游戏免下载快速入口
LINQ to XML为何解析失败? 深入理解C# XDocument的异常处理
Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】
J*a递归快速排序中静态变量的状态管理与陷阱
微信聊天记录怎么加密_微信聊天记录加密方法
漫蛙2正版漫画站 漫蛙2网页版快速访问入口
NRF24L01数据传输深度解析:解决大载荷接收异常与分包策略
小红书网页版入口链接分享 小红书官网直接进
从J*aScript对象中精确提取指定属性的教程
印象笔记怎样用批量导出备知识库_印象笔记用批量导出备知识库【备份方法】
PDO预处理语句中冒号的正确处理:区分SQL函数格式与命名占位符
cad如何更改注释性对象的比例_cad注释性比例调整方法
Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】
《GTA6》开发画面疑似泄露!这次可不是AI了


2025-11-25
浏览次数:次
返回列表