Какие знаешь типы метрик

«Какие знаешь типы метрик» — вопрос из категории DevOps, который задают на 26% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go метрики можно разделить на несколько типов:

  1. Счётчики (Counters) - монотонно возрастающие значения (запросы, ошибки)
requests = prometheus.NewCounter(prometheus.CounterOpts{
    Name: "http_requests_total",
    Help: "Total HTTP requests",
})
  1. Гистограммы (Histograms) - распределение значений по бакетам (время ответа)
responseTime = prometheus.NewHistogram(prometheus.HistogramOpts{
    Name:    "http_response_time_seconds",
    Buckets: prometheus.DefBuckets,
})
  1. Гаужи (Gauges) - значения, которые могут увеличиваться/уменьшаться (текущие соединения)
connections = prometheus.NewGauge(prometheus.GaugeOpts{
    Name: "current_connections",
})
  1. Сводки (Summaries) - похожи на гистограммы, но вычисляют квантили на стороне приложения

Также существуют метрики типа "включено/выключено" (бинарные) и таймеры (специальный случай гистограмм).