Перцентили (p50, p95, p99) в метриках. Как считать в Go.

Ответ

Перцентили показывают латентность: p99 - 99% запросов быстрее этого значения. В Prometheus Histogram дает buckets и автоматически квантили (histogram_quantile в PromQL). В Go регистрируют Histogram с разумными buckets (например, 5ms, 10ms, 25ms, 50ms, 100ms, 250ms, 500ms, 1s), вызывают Observe(duration). Summary дает квантили на стороне приложения, но менее гибкий в PromQL.

hist := prometheus.NewHistogramVec(
    prometheus.HistogramOpts{Name: "http_duration_seconds", Buckets: prometheus.DefBuckets},
    []string{"path"},
)
hist.WithLabelValues("/api").Observe(elapsed.Seconds())
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.