Мониторинг метрик JVM с ClickStack
В этом руководстве описано, как отслеживать метрики JVM‑приложений с помощью ClickStack, используя Java‑агент OpenTelemetry для их сбора. Вы узнаете, как:
- Подключить Java‑агент OpenTelemetry к JVM‑приложению
- Настроить агент на отправку метрик в ClickStack через OTLP
- Использовать готовый дашборд для визуализации кучи памяти, сборки мусора, потоков и ЦП
Демонстрационный набор данных с примерами метрик доступен, если вы хотите протестировать интеграцию до инструментирования продакшен‑приложений.
Требуемое время: 5–10 минут
Интеграция с существующим JVM-приложением
В этом разделе описывается настройка существующего JVM-приложения для отправки метрик в ClickStack с помощью Java-агента OpenTelemetry.
Если вы хотите протестировать интеграцию перед настройкой боевой среды, вы можете использовать наш демонстрационный набор данных из раздела демо-набора данных.
Предварительные требования
- Запущенный экземпляр ClickStack
- Существующее Java-приложение (Java 8+)
- Доступ для изменения аргументов запуска JVM
Получение ClickStack API key
Агент OpenTelemetry Java отправляет данные на OTLP-эндпоинт ClickStack, который требует аутентификации.
- Откройте HyperDX по вашему адресу ClickStack (например, http://localhost:8080)
- Создайте аккаунт или при необходимости войдите в систему
- Перейдите в Team Settings → API Keys
- Скопируйте ваш Ingestion API Key

Загрузка агента OpenTelemetry Java
Скачайте JAR-файл агента OpenTelemetry Java:
Файл будет загружен в ваш текущий каталог. Вы можете разместить его там, где это имеет смысл для вашего развертывания (например, в /opt/opentelemetry/ или рядом с JAR-файлом вашего приложения).
Настройка аргументов запуска JVM
Добавьте Java-агент в команду запуска JVM. Агент автоматически собирает метрики JVM и отправляет их в ClickStack.
Вариант 1: Флаги командной строки
Замените следующие значения:
opentelemetry-javaagent.jar→ Полный путь к JAR-файлу агента (например,/opt/opentelemetry/opentelemetry-javaagent.jar)my-java-app→ Осмысленное имя вашего сервиса (например,payment-service,user-api)YOUR_API_KEY→ Ваш ClickStack API key из шага вышеmy-application.jar→ Имя JAR-файла вашего приложенияhttp://localhost:4318→ Ваш эндпоинт ClickStack (используйтеlocalhost:4318, если ClickStack запущен на той же машине, иначе используйтеhttp://your-clickstack-host:4318)
Вариант 2: Переменные окружения
Или используйте переменные окружения:
Замените следующие значения:
opentelemetry-javaagent.jar→ Полный путь к JAR-файлу агентаmy-java-app→ Имя вашего сервисаYOUR_API_KEY→ Ваш ClickStack API keyhttp://localhost:4318→ Ваш эндпоинт ClickStackmy-application.jar→ Имя JAR-файла вашего приложения
Агент OpenTelemetry Java автоматически собирает следующие метрики JVM:
- Память:
jvm.memory.used,jvm.memory.limit,jvm.memory.committed,jvm.memory.used_after_last_gc - Сборка мусора:
jvm.gc.duration - Потоки:
jvm.thread.count - Классы:
jvm.class.count,jvm.class.loaded,jvm.class.unloaded - CPU:
jvm.cpu.time,jvm.cpu.count
Проверка метрик в HyperDX
После запуска приложения с агентом убедитесь, что метрики поступают в ClickStack:
- Откройте HyperDX по адресу http://localhost:8080 (или по вашему адресу ClickStack)
- Перейдите в Chart Explorer
- Найдите метрики, начинающиеся с
jvm.(например,jvm.memory.used,jvm.gc.duration,jvm.thread.count)
Демонстрационный набор данных
Для пользователей, которые хотят протестировать интеграцию метрик JVM перед инструментированием своих приложений, мы предоставляем пример набора данных с предварительно сгенерированными метриками, отражающими реалистичное поведение JVM для микросервиса среднего размера со стабильным умеренным трафиком.
Загрузите пример набора данных
Набор данных включает 24 часа метрик JVM, показывающих:
- Рост памяти кучи (heap) с периодическими событиями сборки мусора (garbage collection)
- Изменения количества потоков
- Реалистичное время пауз GC
- Активность загрузки классов
- Характер использования CPU
Запустите ClickStack
Если у вас еще не запущен ClickStack:
Подождите немного, чтобы ClickStack полностью запустился.
Импортируйте демонстрационный набор данных
Метрики будут импортированы напрямую в таблицы метрик ClickStack.
Проверьте демонстрационные данные
После импорта:
- Откройте HyperDX по адресу http://localhost:8080 и войдите в систему (при необходимости создайте аккаунт)
- Перейдите в представление Search и установите источник Metrics
- Установите диапазон времени на 2025-12-06 14:00:00 - 2025-12-09 14:00:00
- Выполните поиск по
jvm.memory.usedилиjvm.gc.duration
Вы должны увидеть метрики для демонстрационного сервиса.
HyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демонстрационные данные охватывают период 2025-12-07 14:00:00 - 2025-12-08 14:00:00 (UTC). Установите диапазон времени на 2025-12-06 14:00:00 - 2025-12-09 14:00:00, чтобы гарантированно увидеть демонстрационные метрики независимо от вашего местоположения. Как только вы увидите метрики, вы можете сузить диапазон до 24 часов для более наглядной визуализации.
Дашборды и визуализация
Чтобы помочь вам в мониторинге JVM-приложений с помощью ClickStack, мы предоставляем готовый дашборд с ключевыми визуализациями метрик JVM.
Импортируйте преднастроенный дашборд
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу в меню под многоточием

- Загрузите файл
jvm-metrics-dashboard.jsonи нажмите Finish Import

Просмотрите дашборд
Дашборд будет создан со всеми преднастроенными визуализациями:

Для демонстрационного набора данных установите диапазон времени 2025-12-07 14:00:00 - 2025-12-08 14:00:00 (UTC). При необходимости скорректируйте его в соответствии с вашим часовым поясом.
Устранение неполадок
Агент не запускается
Убедитесь, что JAR-файл агента присутствует:
Проверьте, что используется совместимая версия Java (требуется Java 8+):
Проверьте журналы на наличие сообщения о запуске агента: При запуске приложения вы должны увидеть:
Метрики не отображаются в HyperDX
Убедитесь, что ClickStack запущен и доступен:
Проверьте, что экспортёр метрик настроен:
Проверьте логи приложения на ошибки OpenTelemetry: Найдите в логах вашего приложения сообщения об ошибках, связанных с OpenTelemetry или ошибками экспорта OTLP.
Проверьте сетевое подключение: Если ClickStack находится на удалённом хосте, убедитесь, что порт 4318 доступен с сервера вашего приложения.
Проверьте версию агента: Убедитесь, что вы используете последнюю стабильную версию агента (в настоящее время 2.22.0), так как новые версии часто содержат улучшения производительности.
Следующие шаги
Теперь, когда метрики JVM поступают в ClickStack, рассмотрите возможность:
- Настроить alerts для критически важных метрик, таких как высокий расход heap, частые паузы GC или исчерпание потоков
- Изучить другие интеграции ClickStack для унификации данных обсервабилити
Переход в продакшен
В этом руководстве показана настройка Java-агента OpenTelemetry для локального тестирования. Для продакшен-развертываний включайте JAR-агента в образы контейнеров и настраивайте его через переменные окружения для упрощения управления. Для более крупных сред с большим количеством экземпляров JVM разверните централизованный OpenTelemetry Collector, чтобы группировать в пакеты и пересылать метрики от нескольких приложений вместо отправки их напрямую в ClickStack.
См. раздел Ingesting with OpenTelemetry для типовых схем продакшен-развертывания и примеров конфигурации коллектора.