Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 2 из 9 · шаг 5 из 6

Метрик приложения нет в Prometheus

средняя ~20 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

На этой машине работает магазин: приложение 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 работает без пароля.

Задача

  1. Prometheus собирает метрики самого приложения магазина: у его цели метка team="web", цель — up, а promtool query instant http://localhost:9090 'labapp_build_info{team="web"}' печатает ряд.
  2. Сайт магазина работает как прежде: http://shop.lab.test/ отвечает 200, а http://shop.lab.test/metrics — 403.
  3. Настройка — в /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 на месте — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…