Расскажи про устройство мониторинга: сборщики метрик, алерты
Answer from AI
sobes.tech AI
Мониторинг системы обычно состоит из трёх ключевых компонентов: сборщики метрик, система хранения и визуализации, а также алерты.
Сборщики метрик — это агенты или библиотеки, которые собирают данные о состоянии приложения или инфраструктуры. В Go часто используют Prometheus client library для экспорта метрик. Метрики могут включать нагрузку CPU, использование памяти, количество запросов, время отклика и т.д.
Алерты — это правила, которые срабатывают при достижении определённых порогов метрик. Например, если время отклика превышает 500 мс или процент ошибок растёт выше 5%. Алерты обычно настраиваются в системе мониторинга (например, Prometheus Alertmanager) и могут отправлять уведомления в Slack, email или другие каналы.
Пример простого экспорта метрик в Go с Prometheus:
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"net/http"
)
var (
httpRequests = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "http_requests_total",
Help: "Количество HTTP запросов",
},
[]string{"path"},
)
)
func init() {
prometheus.MustRegister(httpRequests)
}
func handler(w http.ResponseWriter, r *http.Request) {
httpRequests.WithLabelValues(r.URL.Path).Inc()
w.Write([]byte("Hello, world!"))
}
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8080", nil)
}
Таким образом, сборщики метрик собирают данные, система мониторинга хранит и визуализирует их, а алерты уведомляют о проблемах.