BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Prometheus и Grafana: принципиально новый способ мониторинга работы приложения Spring Boot

Prometheus и Grafana: принципиально новый способ мониторинга работы приложения Spring Boot

Узнайте, как настроить и использовать Prometheus и Grafana для сбора показателей Вашего приложения Spring Boot, а затем эффективно их визуализировать

Представьте, что у Вас есть приложение Spring Boot производственного уровня, которое одновременно обслуживает тысячи пользователей. Без должного мониторинга Вы никогда не сможете получить подробную информацию о его производительности, работоспособности приложения и о том, есть ли в нем какие-либо глубинные проблемы или нет. Именно здесь на помощь и приходит мониторинг приложения.

Prometheus и Grafana предлагают достойной решение по мониторингу приложений Spring Boot. Prometheus собирает метрики и управляет оповещениями, а Grafana визуализирует данные и управляет оповещениями. Вместе они помогают обнаружить и устранить проблемы еще до того, как они затронут конечных  пользователей.

В этом блоге мы рассмотрим процесс мониторинга приложений Spring Boot с помощью Prometheus и Grafana, а также все шаги, связанные с настройкой этих инструментов, и их преимущества.

 

Введение в Prometheus

Prometheus - это популярная система мониторинга и оповещения с открытым исходным кодом. Она собирает, хранит и анализирует метрики из различных источников, таких как приложения, сервисы, операционные системы и аппаратные устройств и позволяет получить представление о производительности и состоянии системы в целом.

 

 

Введение в Grafana

Grafana - это open-source инструмент для визуализации данных, мониторинга производительности системы и устранения неполадок. Для визуализации метрик из таких источников, как Prometheus, Elasticsearch, InfluxDB и CloudWatch он создает специальные панели, которые Вы можете настраивать с помощью графиков, таблиц, диаграмм и карт в соответствии с Вашими потребностями.

 

Необходимые условия

Для работы у Вас уже должно быть следующее:

  • Работающее приложение Spring Boot для мониторинга
  • Docker для запуска образов Prometheus и Grafana

 

Настройка проекта Spring Boot для работы с Prometheus и Grafana

В файл pom.xml Вашего проекта spring boot необходимо добавить зависимости, приведенные ниже:

  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
   <groupId>io.micrometer</groupId>
   <artifactId>micrometer-registry-prometheus</artifactId>
   <scope>runtime</scope>
  </dependency>

 

  • Зависимость Actuator позволяет использовать конечные точки, которые предоставляют информацию о состоянии Вашего приложения, метриках, конфигурации и мониторинге.
  • Если в Вашем проекте нет зависимости Spring Web, добавьте ее;
  • Зависимость Micrometer используется для настройки приложений Spring Boot на передачу метрик в формате, который Prometheus может легко считывать и эффективно хранить.

 

После добавления этих зависимостей, когда Вы запускаете приложение Spring Boot и вызываете конечную точку http://localhost:8080/actuator, Вы увидите следующее:

 

Включите все конечные точки, добавив приведенную ниже конфигурацию в файл application.yml Вашего проекта spring boot:

management:
    endpoints:
        web:
            exposure:
                include: '*'

 

Теперь, если Вы будете вызывать конечную точку  http://localhost:8080/actuator , В увидите список всех доступных точек Аctuator.

Поскольку нам нужна только http://localhost:8080/actuator/prometheus , мы можем включить ее, добавив в файл application.yml проекта Spring Boot следующую конфигурацию:

management:
    endpoints:
        web:
            exposure:
                include: [ "prometheus" ]

 

Теперь, когда Вы вызовите конечную точку http://localhost:8080/actuator/prometheus , Вы получите метрики в формате, подходящем для Prometheus.

 

Вот, собственно говоря, и все!

Для мониторинга работы проекта Spring Boot с помощью Prometheus и Grafana нам просто нужно настроить все эти опции.

 

Установка Prometheus и Grafana с помощью Docker

Файл Docker Compose настраивает контейнер Prometheus на сбор метрик из приложения Spring Boot с помощью файла prometheus.yml. Он также настраивает и контейнер Grafana, который использует файл datasources.yml для определения Prometheus в качестве источника данных для анализа собранных метрик.

Убедитесь в том, что путь к файлам prometheus.yml и datasources.yml указан правильно, в полном соответствии с путем к файлу docker-compose.yml.

 

Создайте файл  docker-compose.yml:

version: '3.7'
services:
  prometheus:
    image: prom/prometheus:v2.44.0
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
  grafana:
    image: grafana/grafana:9.5.2
    container_name: grafana
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources

 

Создайте файл prometheus.yml:

scrape_configs:
  - job_name: 'MyAppMetrics'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 3s
    static_configs:
      - targets: ['host.docker.internal:8080']
        labels:
          application: 'My Spring Boot Application'

 

Эта конфигурация предписывает Prometheus задействовать конечную точу http://localhost:8080/actuator/prometheus по адресу host.docker.internal:8080 каждые 3 минуты. Метка приложения используется для идентификации приложения в Prometheus.

 

Создайте файл datasources.yml:

apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    isDefault: true

 

Указанный источник данных «приказывает» Grafana подключаться к Prometheus с помощью http://prometheus:9090 и использовать его в качестве источника данных по умолчанию. Вы также можете добавить источник данных Prometheus вручную после запуска контейнера Grafana.

Давайте запустим сервисы, выполнив приведенную ниже команду, в которой находится файл docker-compose.yml:

$ docker-compose up

 

Теперь Prometheus доступен через  http://localhost:9090 , а Grafana – через   http://localhost:3000.

 

Изучаем Prometheus

На основе настроенных интервалов сервер Prometheus периодически запрашивает у настроенных конечных точек их метрики, которые хранятся в базе данных временных рядов.

Prometheus предоставляет богатый язык запросов под названием PromQL. На рисунке, представленном ниже, показано, как получить метрики настроенного приложения Spring Boot.

 

В дополнение к возможностям мониторинга Prometheus предлагает надежную поддержку оповещений, которая немедленно уведомляет Вас в том случае, когда определенные показатели превышают пороговое значение. Вы можете настроить отправку оповещений по различным каналам, таким как электронная почта, платформы мгновенного обмена сообщениями или конечные точки webhook.

 

Изучаем Grafana

При первом входе в Grafana используйте имя пользователя и пароль по умолчанию - «admin». Вам будет предложено сбросить пароль, поэтому введите свой новый пароль и подтвердите его.

 

Grafana способна подключаться к различным источникам данных, включая базы данных, базы данных временных рядов, такие как Prometheus, облачные платформы и API. Она позволяет запрашивать и агрегировать данные из выбранных Вами источников.

С помощью Grafana Вы можете создавать настраиваемые дашборды, состоящие из панелей. Grafana предлагает широкий спектр типов панелей, таких как графики, одиночные данные, таблицы, тепловые карты и другие.

 

NB:

  • Поскольку мы уже настроили источник данных Prometheus в файле docker-compose.yml (в процессе создания контейнера Docker ), большом нет необходимости в добавлении источника данных Prometheus в Grafana. Вы можете создавать дашборд, используя предварительно настроенный источник данных Prometheus.
  • Ввиду использования представления Docker в Grafana Вы заметите разницу в интерфейсе Grafana.

 

 

У Grafana также есть небольшой маркетплейс, предлагающий широкий выбор шаблонов дашбордов. Как правило, они представлены в формате файлов JSON или как ID дашбордов Grafana. 

 

Кроме того, Grafana предлагает своим пользователям встроенную систему оповещений, позволяющую устанавливать правила и условия на основе отслеживаемых метрик.  При превышении определенных пороговых значений Grafana отправит Вам уведомление. Это может быть реализовано через электронную почту, Slack, PagerDuty и т.д.

 

Ключевые выводы

Prometheus – высокомасштабируемое и гибкое решение по мониторингу работы системы, а  Grafana –мощный инструмент визуализации данных.

С помощью Prometheus Вы можете собирать метрики производительности работы Вашего приложения. Grafana же идеально подходит для их эффективной визуализации. С помощью Spring Boot Actuator Вы можете получить доступ к таким метрикам, как среднее время отклика или количество ошибок. Всех их можно собирать и хранить с помощью Prometheus.

 

Выигрышная комбинация Prometheus + Grafana является идеальным решением по мониторингу производительности работы приложения Spring Boot. С его помощью Вы можете отслеживать работоспособность системы, выявлять проблемы и определять тенденции.  

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Основы Grafana
Следующая статья →
Инициализируйте Grafana внутри контейнера Docker вместе с предварительно созданным дашбордом

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • ГК «Агропромкомплектация-Курск» - одна из ведущих в Российской Федерации агропромышленных компаний с полным производственным циклом "от поля до прилавка". За 32 года работы на рынке компания заслуженно завоевала репутацию одного из лидеров страны в производстве свинины и молока.

  • АО «Новосибирскэнергосбыт» является единственным гарантирующим поставщиком электроэнергии на территории г. Новосибирска и Новосибирской области. Предприятие отвечает за электроснабжение клиентов, закупая электроэнергию на оптовом рынке, регулируя поставку электроэнергии через договорные отношения с сетевыми организациями.

  • Розничный и интернет-магазин 12 Storeez один из лидеров на рынке женской одежды. С географией рынка не только на территории России, своя продукция представлена еще и в таких странах как Казахстан и Дубай.

  • «ПрофХолод» — крупнейший в России производитель сэндвич-панелей с пенополиуретаном. 

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.