Шаг 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 работает без пароля.
Задача
- 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 на месте — ещё не выполнена
Машина запускается
Подсказки
0 из 3Цели лабы
0 из 3-
Prometheus собирает метрики приложения магазина — цель с меткой team="web" в состоянии up, ряды labapp_* с этой меткой есть — ещё не выполнена
-
Сайт магазина работает как прежде — / отвечает 200, а /metrics снаружи закрыт (403) — ещё не выполнена
-
Настройка — в prometheus.yml; promtool check config проходит, Prometheus работает с тем, что в файле; задания prometheus и node на месте — ещё не выполнена
Цели проверяются на машине после каждой команды.