Sobes.tech
Назад к вопросам
Junior — Middle
76

Каким образом осуществляется сбор метрик с помощью системы Prometheus?

Компании, где спрашивали
Rubytech

Ответ от нейросети

sobes.tech AI

Prometheus собирает метрики по модели pull: он периодически опрашивает HTTP-эндпоинты, которые экспонируют метрики в формате, понятном Prometheus. В Go-приложениях обычно используется клиентская библиотека Prometheus, которая позволяет создавать и обновлять метрики (счётчики, гистограммы, гейджи и т.д.). Затем приложение запускает HTTP-сервер с эндпоинтом (обычно /metrics), где эти метрики доступны для считывания.

Пример на Go:

import (
    "net/http"
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var opsProcessed = prometheus.NewCounter(prometheus.CounterOpts{
    Name: "myapp_processed_ops_total",
    Help: "The total number of processed events",
})

func init() {
    prometheus.MustRegister(opsProcessed)
}

func main() {
    http.Handle("/metrics", promhttp.Handler())
    go func() {
        for {
            opsProcessed.Inc() // увеличиваем счётчик
            time.Sleep(time.Second)
        }
    }()
    http.ListenAndServe(":2112", nil)
}

Prometheus сервер настроен на опрос http://yourapp:2112/metrics и собирает данные для дальнейшего анализа.