Announcement

👇Official Account👇

Welcome to join the group & private message

Article first/tail QR code

Skip to content

Lesson 5.3: 指标监控

学习目标

  • 集成 Prometheus 指标到 Go 应用
  • 掌握常见的 RED 指标

1. 四种核心指标类型

类型说明示例
Counter只增不减请求总数、错误总数
Gauge可增可减内存使用、在线用户数
Histogram分布统计请求延迟分布
Summary分位数P99 延迟

2. Go 中集成 Prometheus

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

var (
    httpRequestsTotal = prometheus.NewCounterVec(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "Total HTTP requests",
        },
        []string{"method", "path", "status"},
    )

    httpRequestDuration = prometheus.NewHistogramVec(
        prometheus.HistogramOpts{
            Name:    "http_request_duration_seconds",
            Help:    "HTTP request latency",
            Buckets: prometheus.DefBuckets,
        },
        []string{"method", "path"},
    )
)

func init() {
    prometheus.MustRegister(httpRequestsTotal, httpRequestDuration)
}

RED 指标(推荐监控方法)

指标含义PromQL 查询
Rate请求速率rate(http_requests_total[5m])
Errors错误率rate(http_requests_total{status=~"5.."}[5m])
Duration延迟分布histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))

推荐阅读

上次更新于: