Наблюдаемость: метрики, алерты, логи / Ступень 2 из 9 · шаг 5 из 6
Метрик приложения нет в Prometheus
Ситуация
На этой машине работает магазин: приложение lab-app за nginx, сайт — http://shop.lab.test/. Здесь же работает
Prometheus офиса: раз в 5 секунд он собирает метрики самого себя (задание prometheus) и машины (задание node).
Приложение отдаёт свои метрики в формате Prometheus. Команда web хочет видеть их в Prometheus с меткой
team="web" — по этой метке собраны её графики и запросы. Вчера коллега взялся за это и перед уходом написал:
«Задание добавил, Prometheus перечитал». Но promtool query instant http://localhost:9090 'up{team="web"}' ничего не
печатает.
Браузера к машине нет: запросы — promtool query instant http://localhost:9090 '<запрос>', API Prometheus —
curl -s localhost:9090/api/v1/… и jq. sudo работает без пароля.
Задача
- Prometheus собирает метрики самого приложения магазина: у его цели метка
team="web", цель —up, аpromtool query instant http://localhost:9090 'labapp_build_info{team="web"}'печатает ряд. - Сайт магазина работает как прежде:
http://shop.lab.test/отвечает 200, аhttp://shop.lab.test/metrics— 403. - Настройка — в
/etc/prometheus/prometheus.yml:promtool check configпроходит, Prometheus работает с тем, что записано в файле; заданияprometheusиnodeна месте и работают.
Ограничения
- Метрики приложения наружу не отдают: nginx магазина закрывает
/metricsнамеренно, его настройку не меняй. - Приложение
lab-appи его службу не меняй.
Через полминуты после того, как метрики пойдут, команда web увидит свои запросы по кодам ответа так:
promtool query instant http://localhost:9090 'sum by (code) (rate(labapp_http_requests_total{team="web"}[1m]))'
Цели лабы
0 из 3-
Prometheus собирает метрики приложения магазина — цель с меткой team="web" в состоянии up, ряды labapp_* с этой меткой есть — ещё не проверялась
-
Сайт магазина работает как прежде — / отвечает 200, а /metrics снаружи закрыт (403) — ещё не проверялась
-
Настройка — в prometheus.yml; promtool check config проходит, Prometheus работает с тем, что в файле; задания prometheus и node на месте — ещё не проверялась