123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package metrics
- import (
- "github.com/prometheus/client_golang/prometheus"
- "github.com/spf13/cast"
- )
- const (
- namespace = "bvbej"
- subsystem = "api"
- )
- // metricsRequestsTotal metrics for request total 计数器(Counter)
- var metricsRequestsTotal = prometheus.NewCounterVec(
- prometheus.CounterOpts{
- Namespace: namespace,
- Subsystem: subsystem,
- Name: "requests_total",
- Help: "request(ms) total",
- },
- []string{"method", "path"},
- )
- // metricsRequestsCost metrics for requests cost 累积直方图(Histogram)
- var metricsRequestsCost = prometheus.NewHistogramVec(
- prometheus.HistogramOpts{
- Namespace: namespace,
- Subsystem: subsystem,
- Name: "requests_cost",
- Help: "request(ms) cost milliseconds",
- },
- []string{"method", "path", "success"},
- )
- func init() {
- prometheus.MustRegister(metricsRequestsTotal, metricsRequestsCost)
- }
- // RecordMetrics 记录指标
- func RecordMetrics(method, uri string, success bool, costSeconds float64) {
- metricsRequestsTotal.With(prometheus.Labels{
- "method": method,
- "path": uri,
- }).Inc()
- metricsRequestsCost.With(prometheus.Labels{
- "method": method,
- "path": uri,
- "success": cast.ToString(success),
- }).Observe(costSeconds)
- }
|