Рубрики
Без рубрики

Автономный Мониторинг Для Приложений Spring Boot

Используйте привод метрик Spring Boot для создания автономного решения для мониторинга.

Автор оригинала: Michael Pratt.

1. введение

Одной из многих замечательных особенностей Spring Boot является набор встроенных приводов . Эти приводы обеспечивают простой способ мониторинга и управления практически всеми аспектами приложения Spring Boot.

В этом уроке мы рассмотрим использование привода metrics для создания автономного решения для мониторинга приложений Spring Boot.

2. База данных метрик

Первая часть мониторинга приложений Spring Boot-это выбор базы данных метрик . По умолчанию Spring Boot настроит реестр метрик Micrometer в каждом приложении.

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

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

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

2.1. InfluxDB

InfluxDB -это база данных временных рядов с открытым исходным кодом. Самый быстрый способ начать работу с InfluxDB-запустить его локально в качестве контейнера Docker:

docker run -p 8086:8086 -v /tmp:/var/lib/influxdb influxdb

Обратите внимание, что при этом метрики будут храниться в локальном разделе /tmp . Это прекрасно подходит для разработки и тестирования, но не будет хорошим выбором для производственных сред.

После запуска InfluxDB мы можем настроить наше приложение Spring Boot для публикации метрик в нем, добавив соответствующую зависимость от микрометра :


    io.micrometer
    micrometer-registry-influx

Кроме того, нам нужно добавить новую запись в файл application.properties :

management.metrics.export.influx.uri=http://localhost:8086

Из коробки имя базы данных устанавливается в my db , в то время как имя пользователя и пароль остаются не заданными.

Однако мы можем переопределить значения по умолчанию с помощью специальных свойств:

management.metrics.export.influx.db=customDbName
management.metrics.export.influx.user-name=myUserName
management.metrics.export.influx.password=mySecret

InfluxDB не предоставляет собственный инструмент визуализации . Однако он предоставляет отдельный инструмент под названием Chronograph , который хорошо работает для визуализации данных InfluxDB.

2.2. Прометей

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

Вместо того, чтобы настраивать наше приложение для публикации метрик в Prometheus, мы настраиваем Prometheus для периодического опроса нашего приложения .

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


    io.micrometer
    micrometer-registry-prometheus

Это создаст новую конечную точку привода, которая будет генерировать данные метрик в специальном формате, понятном Prometheus.

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в || prometheus.файл yml||.

scrape_configs:
  - job_name: 'spring-actuator'
    metrics_path: '/actuator/prometheus'
    scrape_interval: 5s
    static_configs:
    - targets: ['127.0.0.1:8080']

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .

docker run -d \
--name=prometheus \
-p 9090:9090 \
-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus \
--config.file=/etc/prometheus/prometheus.yml

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в || prometheus.файл yml||.

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml

docker run -d \
 --name graphite \
 --restart=always \
 -p 80:80 \
 -p 2003-2004:2003-2004 \
 -p 2023-2024:2023-2024 \
 -p 8125:8125/udp \
 -p 8126:8126 \
 graphiteapp/graphite-statsd

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .


    io.micrometer
    micrometer-registry-graphite

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .

management.metrics.export.graphite.host=127.0.0.1
management.metrics.export.graphite.port=2004

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в || prometheus.файл yml||.

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в || prometheus.файл yml||.

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в || prometheus.файл yml||.

Затем мы должны настроить Prometheus для опроса нашего приложения, добавив нужную конфигурацию в prometheus.файл yml .

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

Чтобы запустить Grafana локально, мы можем запустить его с помощью Docker:

docker run -d -p 3000:3000 grafana/grafana

Теперь мы можем получить доступ к домашней странице Grafana по адресу http://localhost:3000/ .

На этом этапе нам нужно будет настроить один или несколько источников данных . Это может быть любая из баз данных метрик, рассмотренных ранее, или множество других поддерживаемых инструментов.

Как только источник данных настроен, мы можем создать новую панель мониторинга или импортировать ту, которая делает то, что мы хотим.

4. Заключение

В этой статье мы рассмотрели создание автономного решения для мониторинга приложений Spring Boot.

Мы рассмотрели три базы данных метрик, которые легко поддерживает Spring Boot, и увидели, как запустить их локально.

Мы также кратко рассмотрели Grafana, мощный инструмент визуализации, который может отображать данные метрик из различных источников.