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