Contents

Go metrics

导入包

go get -u github.com/go-kratos/kratos/contrib/metrics/prometheus/v2

注册路由

// 导入pkg
 import "github.com/prometheus/client_golang/prometheus/promhttp"

// http 服务注册此路由
router.Handle("/metrics", promhttp.Handler())

验证是否引入metrics

curl /metrics 可以看到默认的数据

定义一个指标

var _metricRequests = prometheus.NewCounterVec(prometheus.CounterOpts{
	Namespace: "server",
	Subsystem: "requests",
	Name:      "code_total",
	Help:      "The total number of processed requests",
}, []string{"kind", "operation", "code", "reason"})

注册该指标

import "github.com/prometheus/client_golang/prometheus"

prometheus.MustRegister(_metricRequests)

使用指标

var requests = prom.NewCounter(_metricRequests)
requests.With("get", "/", "200", "OK").Inc()

验证定义指标是否生效

当我们使用完指标后 即可查看

# HELP server_requests_code_total The total number of processed requests
# TYPE server_requests_code_total counter
server_requests_code_total{code="200",kind="get",operation="/",reason="OK"} 1

具体代码

https://github.com/matteo-gz/gometrics