Это система мониторинга и оповещения с открытым исходным кодом, разработанная для сбора и анализа метрик с серверов, приложений и других компонентов инфраструктуры.
позволяет отслеживать производительность, загрузку CPU, память, сетевой трафик и другие параметры.
использует модель pull (запрашивает данные у сервисов), а не push (как, например, Graphite). Это удобнее для управления и отказоустойчивости.
поддерживает кастомные метрики, которые можно интегрировать в своё приложение.
позволяет настроить уведомления при достижении критических значений.
помогает анализировать тренды и предсказывать возможные сбои.
легко развертывается в облаке, Kubernetes, Docker и других средах.
собирают данные.
опрашивает эти экспортеры по HTTP (pull-модель).
(язык запросов) используется для анализа данных.
или другие инструменты визуализируют метрики.
отправляет уведомления (Slack, Email, Telegram и др.).
Для интеграции в Go-приложение можно использовать пакет
prometheus/client_golang
package main
import (
"net/http"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var httpRequests = prometheus.NewCounter(
prometheus.CounterOpts{
Name: "http_requests_total",
Help: "Total number of HTTP requests",
},
)
func handler(w http.ResponseWriter, r *http.Request) {
httpRequests.Inc() // Увеличиваем счетчик запросов
w.Write([]byte("Hello, Prometheus!"))
}
func main() {
// Регистрируем метрику
prometheus.MustRegister(httpRequests)
// Эндпоинт для сбора метрик
http.Handle("/metrics", promhttp.Handler())
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3