ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一、自定义监控需求 ### 1.1 需求描述 希望能在go项目中,暴露 * 下单总次数的数据指标 * 下单总金额的数据指标 ### 1.2 实现步骤 go开发环境中,创建自定义监控器。创建专门的视图方法/order/addOrder增加下单总次数和下单总金额数据 * application.yaml配置修改暴露指定数据 * 测试访问/actuator/prometheus得到下单总次数和下单总金额数据 * Grafana中配置下单总次数和下单总金额数据 <br><hr><br> ## 二、go项目实现订单数据监控 ### 2.1 testproject项目上创建自定义监控器 真实业务场景中,每次用户创建一个订单,就会订单总数+1,订单总金额加上当前金额此处定义两个业务指标 指标名 | 参数名 下单总次数 | order_request_count 下单总金额 | order_amount_sum 编写go代码 package main import ( "fmt" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "log" "net/http" "time" ) // 定义指标变量 var ( orderRequestCount = prometheus.NewCounter( prometheus.CounterOpts{ Name: "order_request_count", Help: "下单总次数", }, ) orderAmountSum = prometheus.NewCounter( prometheus.CounterOpts{ Name: "order_amount_sum", Help: "下单总金额", }, ) ) func init() { // 注册指标到 Prometheus 默认注册表 prometheus.MustRegister(orderRequestCount) prometheus.MustRegister(orderAmountSum) } func main() { // 创建一个 HTTP 处理器,它将暴露指标 http.Handle("/metrics", promhttp.Handler()) // 模拟下单处理 go func() { for { // 模拟下单 orderRequestCount.Inc() // 增加下单次数 amount := float64(100 + (time.Now().UnixNano()%1000)/10) // 生成一个随机的订单金额 orderAmountSum.Add(amount) // 增加订单金额 // 模拟每秒钟一个订单 time.Sleep(1 * time.Second) } }() // 启动 HTTP 服务器,监听在端口 8182 fmt.Println("Starting server on :8182") log.Fatal(http.ListenAndServe(":8182", nil)) } 启动go项目后访问 http://192.168.100.141:8182/metrics 然后打开目标 go的项目 ,添加对应的监控指标 ![](https://img.kancloud.cn/e3/89/e389cd3731ef6875e576aed6dcbe773e_1864x798.png) ![](https://img.kancloud.cn/fe/a6/fea6ba8bcc66f1833f228bd8f8906aa6_1458x326.png) ![](https://img.kancloud.cn/87/8a/878aa994674b7cce76b600dfc33c0396_1920x890.png)