Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной
Вадим Ваганов, руководитель разработки и Head of Profession Backend в Газпромбанке, рассказывает, почему важно визуализировать метрики и свою работу.
586 открытий4К показов

Фронтендеры и мобильщики могут продемонстрировать результаты своей работы визуально — показать красивый интерфейс, анимацию, новую удобную кнопку. А как быть бэкендерам, особенно начинающим? Как эффектно показать, что результат вашей недельной работы — это не какие-то там циферки в консоли, а важный результат? Ответ: метрики, визуализация, мониторинг.
Меня зовут Вадим Ваганов, я руководитель разработки и Head of Profession Backend в Газпромбанке. Я люблю делиться опытом, а также обучать и приносить пользу другим. Все свои статьи я строю на личных историях, так что эта будет такой же. Она для тех, кто только начинает свой путь в бэкенд-разработке и еще не вник в вопросы визуализации своей работы. Расскажу, почему стоит инвестировать время в эти направления и как благодаря им вы станете более крутым инженером с первых шагов в профессии.

Вадим Ваганов
Руководитель разработки и Head of Profession Backend в Газпромбанке
Дисклеймер: да, мониторинг — более широкая тема, но сегодня будем говорить в первую очередь про метрики и их визуализацию.
Проблема: что делать, если есть трудности с презентацией и оценкой своей работы
Фронтендерам и мобильщикам чуть проще в начале пути разработчика: они могут нарисовать красивую кнопочку, сделать что-то визуальное, и даже если логика проста, то визуал можно «продать» — банально показать друзьям. А бэкендерам что показать? Как в консольку выводим циферки?
Это, конечно, шутка (хоть и с долей правды), но проблема демонстрации результатов своей работы для бэкендеров действительно существует — будь то коллеге, боссу, бизнесу или самому себе, в конце концов. Решение есть — метрики, визуализация, мониторинг. Эта тема сильно недооценена. Часто люди ничем, кроме логов, не пользуются. Не допускайте этой ошибки!
Начинаем с простого: получаем данные о состоянии приложения
Я не хочу делать это просто вводной, теоретической статьей по мониторингу. Нам нужна база, и мы рассмотрим ее на практике. Все примеры доступны в репозитории на GitHub, где вы найдете полный код и конфигурацию. Вы можете либо клонировать репозиторий, либо настроить все с нуля, следуя инструкциям ниже. Нам понадобится всего 5–10 минут, чтобы получить первые результаты.
Подготовка окружения
Для примера нам понадобятся:
Все придумано до нас, поэтому воспользуемся готовыми инструментами — например, micrometer (документация тут) или аналог, если у вас не Java/Kotlin. Интегрируем его с /actuator.
В build.gradle нужно добавить следующее:
Проверяем запрос в тестовом контроллере:
и смотрим на метрики:
Пока что мы можем получать такую информацию в моменте, но мы хотим историчности, следовательно, это дело надо как-то получать и где-то хранить.
У нас есть заготовленный конфиг, чтобы поднять Grafana и Prometheus:
Открываем UI Prometheus, пробуем найти demo_requests_total
, нажимаем Execute, проверяем историчность — она есть!
Теперь можно визуализировать данные. Открываем Grafana, вводим admin/admin и создаем дашборд:
- Dashboards -> Create Dashboard -> Add visualization
- Конфигурируем Data Source: Configure a new data source -> Prometheus -> Connection = http://prometheus:9090 -> Save & test
- Возвращаемся к меню Create Dashboard -> Add visualization, выбираем Data Source prometheus
- Настраиваем дашборд: выбираем Code вместо Builder, пишем
sum (rate(demo_requests_total[1m]))
Отлично! Давайте накидаем еще запросов, чтобы посмотреть, как это будет выглядеть:
Теперь у нас на графике видна динамика запросов. Инструментарий готов! Теперь мы можем:
- создавать любые метрики в приложении;
- собирать, хранить и получать метрики за выбранный период;
- визуализировать метрики как душе угодно.
Что отслеживать в бэкенд-приложениях
У вас когда-нибудь было состояние, когда вам плохо, болит голова, першит горло, и вы думаете, что все — у вас 38 °C, и вы жутко простудились. Берете градусник, измеряете температуру... А у вас 36.6 °C. Не полагайтесь на ощущения — смотрите в мониторинг!
Состояние серверов и инфраструктуры
- Загруженность CPU и памяти серверов.
- Загруженность дисков.
- Мониторинг сети.
- И другие инфраструктурные метрики.
Здесь важен в том числе анализ долгосрочных тенденций, например: насколько скоро закончится свободное место при текущем уровне нагрузки?
Метрики производительности приложения
В SRE Google выделяют 4 золотых сигнала:
- Latency (задержка) — время, необходимое для обработки запроса;
- Traffic (трафик) — количество запросов к системе;
- Errors (ошибки) — процент запросов, которые заканчиваются ошибкой;
- Saturation (насыщение) — насколько система загружена.
ВАЖНО: иногда ваше приложение начинает работать медленно из-за интеграций, поэтому их тоже просто необходимо отслеживать. Если провайдер данных отвечает за 1 с, а у вас в SLA — 250 мс, то как бы производительно и надежно ни было ваше приложение — у вас уже проблемы.
Бизнес-метрики
Это те метрики, которые совершенно прекрасны, потому что они помогут вам почувствовать себя не просто писателем кода, а тем, кто действительно влияет на продукт и бизнес в целом. Скажем, можно отслеживать конверсии и ключевые действия: если ваше приложение связано с бизнес-процессами, важно отслеживать ключевые метрики, например количество покупок. Это помогает понять, насколько успешно работает ваше приложение.
Если вы проверяете гипотезы или проводите a/b-тестирование — собирать и визуализировать метрики просто обязательно.
Красиво — это не только про визуал. Получать обратную связь и взаимодействовать с системой/продуктом — тоже красиво!
Почему мониторинг — это навык, который стоит прокачать любому инженеру
Мониторинг как важная составляющая DevOps- и SRE-практик
Современные инженеры все чаще сталкиваются с задачами, которые выходят за рамки чистой разработки кода. Инженеры должны не только писать код, но и понимать, как этот код работает в реальных условиях. Это не только сделает вас более компетентными, но и придаст новый интерес работе.
Взаимодействие мониторинга с процессами CI/CD
Изменения — наше все, именно благодаря им мы приносим пользу бизнесу: улучшаем пользовательский опыт, проверяем гипотезы, зарабатываем деньги.
Мониторинг помогает убедиться, что новые изменения работают как задумано, а также не приводят к ухудшению производительности или стабильности системы. Интеграция мониторинга в CI/CD позволяет быстро выявлять проблемы и откатывать изменения, если что-то пошло не так.
Универсальный и вечнозеленый навык
На каком бы стеке вы ни работали, чем бы ни занимались в бэкенд-разработке, уверяю вас: это тот навык, который будет полезен на протяжении всей карьеры.
Важность анализа данных о вашем продукте
Важные решения принимаются на основе данных, без грамотного отслеживания метрик и их визуализации вы будете просто подбрасывать монетку.
Возможность предвидеть и предотвращать проблемы
Успешные инженеры могут не только решать проблемы, но и предотвращать их. Мониторинг позволяет выявлять аномалии и потенциальные угрозы до того, как они приведут к сбоям.
Подведение итогов
Метрики — это то, что ты хочешь смотреть не только когда плохо, но и когда хорошо.
Мониторинг — это не просто инструмент, это философия. Это способ мышления, который помогает вам быть в курсе того, что происходит с вашей системой, и принимать обоснованные решения.
Мониторинг делает вас более уверенным инженером. Когда вы знаете, что происходит с вашим приложением, вы можете спокойно спать по ночам, зная, что система под контролем.
Мониторинг помогает вам расти. Это навык, который будет полезен не только в вашей текущей работе, но и в будущем. Чем раньше вы начнете погружаться в эту тему, тем быстрее вы станете более востребованным специалистом.
Мониторинг — это инвестиция в стабильность и качество. В конечном итоге это то, что делает ваше приложение надежным, а вашу команду — эффективной.
И да, мониторинг — это просто красиво. Когда наглядно видишь тонкости работы приложения — это совершенно новый уровень погружения в работу.
Так что если вы еще не начали заниматься мониторингом, самое время начать. У вас есть все инструменты и все возможности — вы можете скачать наш репозиторий и начать вникать прямо сейчас.
Полезные источники
- Официальная документация Micrometer
- Официальная документация Prometheus
- Официальная документация Grafana
- 4 золотых сигнала
- Книга об SRE
Если вам понравится материал и вы захотите ознакомиться с другим моим контентом — приглашаю в мой телеграм-канал.
586 открытий4К показов