Java библиотека
Java библиотека
1 273 подписчиков · @javalib
К каналу →
Совет по Java : вы можете использовать LinkedHashMap, чтобы легко реализовать LRU-кэш (Least Recently Used, «наименее недавно используемый»). Java библиотека
Читать далее →
1 672
Spring Boot лайфхак: как не отправлять null поля в JSON Если ваш API отдаёт JSON и там постоянно летят поля вида: "phone": null, "email": null это: - засоряет ответы - увеличив…
Читать далее →
1 610

Как настроить Prometheus и Grafana для мониторинга Prometheus + Grafana — индустриальный стандарт для мониторинга и визуализации метрик.

Как настроить Prometheus и Grafana для мониторинга

Prometheus + Grafana — индустриальный стандарт для мониторинга и визуализации метрик. Time-series база данных, pull-based сбор метрик, powerful query язык (PromQL), оповещения.

Мониторинг JVM, HTTP requests, кастомных метрик, cache hit rates в реальном времени с историей и алертами.

1️⃣ Добавляем зависимости

Для экспорта метрик в Prometheus нужны spring-boot-starter-actuator и micrometer-registry-prometheus. Micrometer автоматически собирает JVM и application метрики.

Критически важно включить prometheus endpoint через management.endpoints.web.exposure.include=prometheus в application.yml. Без этого /actuator/prometheus не будет доступен.

2️⃣ Устанавливаем и настраиваем Prometheus

Скачайте Prometheus или запустите через Docker. Создайте prometheus.yml конфиг файл с определением targets для scraping.

Добавьте job для вашего приложения: job_name: 'spring-boot-app', targets: ['localhost:8080']. Укажите metrics_path: '/actuator/prometheus' и scrape_interval: 15s. Prometheus начнёт периодически собирать метрики.

3️⃣ Настраиваем кастомные метрики

Inject MeterRegistry в сервисы для регистрации метрик. Используйте Counter для монотонно растущих значений: registry.counter("orders.created", "region", "EU").increment().

Для текущих значений используйте Gauge: registry.gauge("queue.size", queue, Queue::size). Для измерения времени операций используйте Timer с tags для группировки: Timer.builder("api.request.duration").tags("endpoint", "/users").register(registry).

4️⃣ Устанавливаем и подключаем Grafana

Установите Grafana или запустите через Docker. При первом входе (admin/admin) добавьте Prometheus как data source через Configuration → Data Sources.

Укажите URL Prometheus (http://localhost:9090), настройте scrape interval. Grafana автоматически проверит подключение через Test кнопку. После успешного подключения можно создавать дашборды.

5️⃣ Создаём дашборды в Grafana

Импортируйте готовый дашборд для Spring Boot: используйте ID 4701 или 6756 из Grafana Marketplace. Они содержат панели для JVM memory, GC, HTTP metrics, database pool.

Создайте кастомные панели для бизнес метрик. Используйте PromQL для запросов: rate(http_server_requests_seconds_count[5m]) для requests per second, sum by (status)(http_server_requests_seconds_count) для группировки по HTTP статусам.

6️⃣ Настраиваем алерты

В Grafana создайте alert rules через Alerting → Alert rules. Определите условия: например, high error rate — rate(http_server_requests_seconds_count{status="500"}[5m]) > 10.

Настройте каналы оповещения (Slack, email, PagerDuty, webhook) для получения алертов. Укажите threshold values, evaluation interval и for duration (как долго условие должно быть true перед отправкой алерта).

7️⃣ Best practices и оптимизация

🔘 Используйте tags (labels) для всех метрик — это позволяет фильтровать и группировать
🔘 Не создавайте метрики с high cardinality tags (например, user_id) — это убьёт Prometheus
🔘 Настройте retention policy в Prometheus для баланса между историей и хранилищем
🔘 Используйте recording rules в Prometheus для предагрегации часто используемых запросы
🔘 Используйте @Timed(percentiles = {0.5, 0.95, 0.99}) для SLA трекинга

✔️ Что происходит под капотом

Micrometer собирает метрики во время работы приложения: подсчитывает request rate, измеряет latency, собирает JVM статистику. Метрики хранятся в памяти в формате Prometheus.

Prometheus периодически делает HTTP GET запрос к /actuator/prometheus, получает все метрики в текстовом формате. Сохраняет их в time-series БД с timestamp. Grafana запрашивает данные у Prometheus через PromQL, строит графики и проверяет условия алёртов.

Java библиотека
Какие коллекции следует использовать в многопоточной среде в Java? [1-й вариант] - через вызов метода Collections.synchronized() - преобразует обычную коллекцию в синхронизирован…
Читать далее →
1 447
Java совет: избегай шаринга данных между потоками Одна из главных причин багов в многопоточке - общий изменяемый state (shared mutable state). Чем больше потоков трогают одни и те…
Читать далее →
1 367
Другие главы канала «Java библиотека»
Выберите главу, чтобы продолжить чтение
Все посты →
Глава от 29.05.2026
Совет по Java Spring Boot: используйте @Retryable для обработки нестабильных вне…
👁 251 просмотров
Глава от 28.05.2026
Просто о сложном: идемпотентность Идемпотентность — это свойство операции, кото…
👁 350 просмотров
Глава от 27.05.2026
Java-совет: WeakHashMap для кэша без утечек памяти Если ты используешь HashMap …
👁 381 просмотров
Глава от 27.05.2026
👩‍💻 Java в Kubernetes за 40 минут: как задеплоить приложение в Minikube Приглаш…
👁 389 просмотров
Глава от 26.05.2026
Магия IntelliJ IDEA: покрытие тестами Запускаешь тесты, они зелёные, и ты дума…
👁 477 просмотров
Глава от 26.05.2026
Параллельные стримы: ускорение или нет? Java предоставляет мощный инструмент дл…
👁 517 просмотров
Глава от 25.05.2026
Spring Boot: @AutoConfigureMockMvc позволяет тестировать контроллеры без запуска…
👁 542 просмотров
Глава от 25.05.2026
Магия IntelliJ IDEA: Ctrl+E Переключаешься между файлами через Project View? Те…
👁 558 просмотров
Глава от 25.05.2026
Мифы про ИИ-агентов: что реально работает в 2026 году. Открытый урок курса «ИИ-а…
👁 564 просмотров

Популярные посты канала «Java библиотека»

Быстрый Java-совет: точное измерение времени с Instant и Duration Если нужно замерить время выполнения кода с наносекундной точностью — исп…
👁 4 339 просмотров
10 ошибок API 40 000+ записей без пагинации, 200 OK вместо 400 Bad Request, SQL-запросы в ответах клиенту. Собрал 10 ошибок API из реальных…
👁 4 325 просмотров
Микросервисы: как выбрать между синхронной блокировкой и событийной архитектурой? Синхронные вызовы кажутся простыми и знакомыми, пока не п…
👁 4 283 просмотров
Безопасная загрузка ресурсов в Java Хитрый совет по Java: используй скрытую возможность ClassLoader для безопасной подгрузки конфигураций и…
👁 4 275 просмотров
Spring, kafka, неблокирующий retry, лаги История об особенностях использования механизмов retry, которые дает spring-kafka из коробки и про…
👁 4 272 просмотров
Магия IntelliJ IDEA: Extend Selection Нужно выделить метод целиком? Или весь блок try-catch? Или параметры метода? Обычно хватаешься за мыш…
👁 4 270 просмотров
WebFlux и JWT В этом видео мы разработаем небольшое приложение, используя Spring Security и WebFlux, а также внедрим Redis и MongoDB для хр…
👁 4 264 просмотров
Java-совет: не оптимизируй слишком рано Частая ошибка разработчиков — пытаться «ускорять» код ещё до того, как он вообще готов. Сначала ва…
👁 4 244 просмотров
💡 SOLID: принцип подстановки Лисков (LSP) говорит: 🔁 объекты базового класса должны без проблем заменяться объектами его подклассов. Если …
👁 4 223 просмотров
Генерация ID в распределенных системах: Snowflake ID В этом видео мы рассмотрим генерацию уникальных ID по методу Twitter Snowflake ID. Пос…
👁 4 221 просмотров
Spring Boot Actuator: полный гайд по мониторингу в 2026 Выкатили приложение, а через час — таймауты? Redis отключился, а вы узнали об этом …
👁 4 214 просмотров
Микросервисы: как это на самом деле работает В этом видео мы пошагово разберём, почему реальные корпоративные системы значительно сложнее у…
👁 4 188 просмотров
Чек-лист по Spring Boot профилям Чтобы не путаться в окружениях и не тащить dev в прод 🚨 — держите компактный список best practices. Карточ…
👁 4 173 просмотров
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн Но где их находить? Как узнавать о них раньше, чем когда…
👁 4 143 просмотров
Spring Boot Actuator: полный гайд по мониторингу в 2026 Выкатили приложение, а через час — таймауты? Redis отключился, а вы узнали об этом …
👁 4 143 просмотров
Совет по Java С паттерн-матчингом для instanceof в Java можно объявлять переменную прямо внутри проверки. Это избавляет от лишнего каста и …
👁 4 136 просмотров
💡 Java-совет: выбирай constructor injection вместо field injection Во многих проектах до сих пор можно встретить такое: @Component public…
👁 4 135 просмотров
Что такое BeanPostProcessor в Java Spring Boot? Это интерфейс, который позволяет вмешиваться в процесс создания и инициализации бинов в Spr…
👁 4 113 просмотров
Совет по Spring Boot: ускорить приложение можно с помощью @EnableCaching и @Cacheable. 🟢 Позволяет избежать повторных вызовов к БД и API 🟢 …
👁 4 102 просмотров
🚫 Spring Boot: избегай FetchType.EAGER, если это не жизненно необходимо Когда ты помечаешь связь как EAGER, ORM будет загружать её КАЖДЫЙ …
👁 4 093 просмотров

Связанные темы в других каналах

Каналы из той же тематики, где часто появляются близкие сюжеты
Вся тема →
@matematik_andrei_channel
Математик Андрей
Основатель онлайн-школы «Точка Знаний» В канале: — короткие видео по темам 1-11 классов — разбор задач ВПР/ОГЭ/ЕГЭ — применение математики в жизни Получить консульта…
👥 239 565 · +36 664/7д
@obr_mo
Образование Подмосковья
Главные новости об образовании в Московской области: школы, колледжи, детские сады, вузы. Актуальная информация от Министерства образования МО: реформы, ЕГЭ, олимпиады, л…
👥 79 439 · -1 465/7д
@Moscow_school
Московское образование
Успех начинается здесь! Приложение «ЗОЖ с МЭШиком» https://max.ru/meshik_app_bot Для СМИ: press-donm@mos.ru Сайт: mosobr.shkolamoskva.ru ВК: vk.com/educationdep ТГ: htt…
👥 67 554 · -640/7д
@minprosrf
Минпросвещения России
Официальный канал Министерства просвещения России. Всё об образовании для родителей, педагогов и учащихся. Сайт edu.gov.ru ВКонтакте vk.com/minprosvet Однокл
👥 54 933 · +1 619/7д
@Lingvaa
Лингвист | Русский язык Образование
Канал №1 для тех, кто звонИт, а не звОнит! По рекламе: https://clck.ru/3R7DoR Биржа: https://telega.in/c/Lingvaa
👥 53 567 · -114/7д
@id110802233432_biz
Школы РФ
Новости школьного образования для детей и родителей # дети школа школьник новости школьное образование гдз егэ огэ дневник впр оценка учителя родители Реклама: https:…
👥 43 702 · +1 053/7д
🏷 Темы и теги
#книги по java #мемы для программистов #учебные материалы #java #программирование #Образование
📋 О канале Java библиотека
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: https://t.me/NadikaKir или в ЛС сообщества ВК https://vk.com/javatutorial

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
🔍 Архив всех постов Макс
Поиск по 8,431,366 постам из 199,701 каналов
Попробовать за 1 ₽ →
Удалить пост или канал с МАКСОТЕКИ
Заявка подтверждается через бота Макс: нужно быть администратором канала и добавить бота МАКСОТЕКИ в администраторы. После проверки канал или конкретный пост скрывается с сайта.
📊 Аналитика канала «Java библиотека» ➡️ Перейти в канал Макс
Заявка в МАКСОТЕКА
Добавьте свой канал в каталог
Зарегистрируйтесь в личном кабинете и добавьте канал за пару кликов.
Перейти в личный кабинет →

Бесплатная регистрация, быстрая модерация.