Что такое metrics (Prometheus)?

Middle
979 просмотров
AFK Offer AI

Метрики — числовые показатели состояния системы: RPS, латентность, ошибки, потребление памяти. Prometheus — стандарт сбора метрик: твой сервис отдаёт метрики на /metrics, Prometheus периодически их забирает (pull-модель).

var (
    requestsTotal = promauto.NewCounterVec(
        prometheus.CounterOpts{Name: "http_requests_total"},
        []string{"method", "status"},
    )
    requestDuration = promauto.NewHistogramVec(
        prometheus.HistogramOpts{Name: "http_request_duration_seconds"},
        []string{"method"},
    )
)

func handler(w http.ResponseWriter, r *http.Request) { start := time.Now() // обработка requestsTotal.WithLabelValues(r.Method, "200").Inc() requestDuration.WithLabelValues(r.Method).Observe(time.Since(start).Seconds()) }

Три типа метрик: Counter (только растёт — запросы, ошибки), Gauge (текущее значение — горутины, память), Histogram (распределение — латентность, p50/p95/p99). На практике минимальный набор: RED — Rate, Errors, Duration. Визуализация — Grafana.

Следующий вопрос

Как работает errors.Is и errors.As?