Чтобы перестать работать «вслепую», я решил внедрить стек наблюдаемости. До этого у нас были только системные логи и пара метрик из облачного дашборда — CPU и RAM. Они ничего не говорили о том, что на самом деле происходит с приложением.
Падение API я видел через час после жалобы пользователей. Тогда я понял: нужна система, которая показывает всё в реальном времени — от нагрузки до задержек. Я начал с Prometheus. Это инструмент для сбора и хранения временных рядов (time series). Он периодически опрашивает источники — так называемые targets — и сохраняет метрики в своей базе.
Главная идея проста: каждая метрика имеет имя и набор меток (labels), по которым потом можно фильтровать и строить графики. Типичный конфиг prometheus.yml у меня выглядит так: scrape_configs: - job_name: "kubernetes-nodes" kubernetes_sd_configs: - role: node - job_name: "application" static_configs: - targets: ["app-service:8080"] Prometheus сам идёт в Kubernetes API, находит поды и собирает с них метрики.
Доба