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

Загрузка агента 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→ Ваш ключ API ClickStack, полученный выше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→ Ваш ключ API ClickStackhttp://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, показывающих:
- Рост кучи памяти с периодическими событиями сборки мусора
- Изменения количества потоков
- Реалистичные паузы 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, рекомендуется:
- Настроить оповещения для критически важных метрик, таких как высокое использование heap, частые паузы GC или исчерпание потоков
- Изучить другие интеграции ClickStack, чтобы объединить данные вашей обсервабилити
Переход в продакшен
В этом руководстве показана настройка Java-агента OpenTelemetry для локального тестирования. Для продакшен-развертываний включайте JAR-файл агента в образы контейнеров и настраивайте его через переменные окружения для упрощения управления. Для крупных сред с большим количеством экземпляров JVM разверните централизованный OpenTelemetry Collector, чтобы агрегировать и пересылать метрики от нескольких приложений вместо отправки их напрямую в ClickStack.
См. раздел Ingesting with OpenTelemetry для ознакомления со сценариями продакшен-развертывания и примерами конфигурации OpenTelemetry Collector.