Что такое метрики (Prometheus)? Как он собирает данные?
Ответ от нейросети
sobes.tech AI
Prometheus — это система мониторинга и сбора метрик с открытым исходным кодом, широко используемая для наблюдения за состоянием приложений и инфраструктуры.
Метрики в Prometheus — это числовые данные, которые описывают состояние системы в определённый момент времени. Они бывают нескольких типов: счётчики (counter), гистограммы (histogram), сумматоры (summary), и гейджи (gauge).
Сбор данных происходит по модели pull: Prometheus периодически опрашивает (scrape) HTTP-эндпоинты, которые экспортируют метрики в специальном формате. Обычно приложения или сервисы запускают HTTP-сервер с /metrics, где в текстовом формате Prometheus читает актуальные значения метрик.
Пример экспорта метрик в Go с помощью библиотеки Prometheus:
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"net/http"
)
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 регулярно запрашивает /metrics и собирает актуальные значения для последующего хранения и анализа.