Linux Labs

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

PromQL: rate, sum и сравнение

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 5 из 6 · лаба · 20 минсредняя

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

Команде web нужны метрики приложения магазина в Prometheus с меткой team="web". Вчера коллега добавил задание и сказал, что всё готово, — а данных нет. Доведи дело до конца и не открывай метрики наружу.

Ситуация

На этой машине работает магазин: приложение 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 на месте — ещё не выполнена
Ctrl+Enter
Запустит машину node1 · Ubuntu 24.04

Машина запускается

Подсказки

0 из 3

Цели лабы

0 из 3
  • Prometheus собирает метрики приложения магазина — цель с меткой team="web" в состоянии up, ряды labapp_* с этой меткой есть — ещё не выполнена
  • Сайт магазина работает как прежде — / отвечает 200, а /metrics снаружи закрыт (403) — ещё не выполнена
  • Настройка — в prometheus.yml; promtool check config проходит, Prometheus работает с тем, что в файле; задания prometheus и node на месте — ещё не выполнена
node1 Ubuntu 24.04

Цели лабы

0 из 3
  • Prometheus собирает метрики приложения магазина — цель с меткой team="web" в состоянии up, ряды labapp_* с этой меткой есть — ещё не выполнена
  • Сайт магазина работает как прежде — / отвечает 200, а /metrics снаружи закрыт (403) — ещё не выполнена
  • Настройка — в prometheus.yml; promtool check config проходит, Prometheus работает с тем, что в файле; задания prometheus и node на месте — ещё не выполнена
Загрузка…