Источник данных JMX: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «Ключ-АСТРОМ предоставляет фреймворк для создания метрик из '''wikipedia:Java_Management_Extensions|JMX MBeans...»)
 
(нет различий)

Текущая версия на 17:13, 22 июня 2025

Ключ-АСТРОМ предоставляет фреймворк для создания метрик из JMX MBeans. Каждый процесс, отслеживаемый модулем кода Java ЕдиногоАгента, способен обрабатывать расширения JMX 2.0.

Вам необходимо включить функцию Java Metric Extensions 2.0 (JMX) ЕдиногоАгента

Принцип работы

JMX организует данные и функциональность объектно-ориентированным способом. Каждый процесс Java имеет сервер платформы MBean, который управляет набором объектов мониторинга, называемых MBeans.

Каждый MBean имеет уникальное имя объекта. Каждое имя объекта состоит из имени домена и списка ключевых свойств. Каждое ключевое свойство состоит из имени и (строкового) значения.

JMX определяет стандартизированный синтаксис для записи этих имен объектов, например, java.lang:type=GarbageCollector,name=YoungGen. Каждый MBean имеет 0 или более атрибутов (см. MBeanServer::getAttribute). Атрибуты могут быть любого типа Java (включая логические значения, числа и строки).

Числовые атрибуты могут быть напрямую использованы для создания метрик в Ключ-АСТРОМ. Также возможно извлекать числовые значения из сложных атрибутов.

Предустановка

Мы предполагаем следующее:

  • У вас есть достаточные знания в области JMX для создания расширения.
  • Вы знакомы с основными концепциями расширений 2.0 и общей структурой файла расширения YAML.

Поддерживаемые версии Ключ-АСТРОМ

  • Клюя-АСТРОМ версии 1.265+
  • ЕдиныйАгент версии 1.265+

Файл YAML с расширением JMX

Начнем с минимального расширения JMX:

# required extension metadata

name: custom:com.example.jmx

version: 1.0.0

minDynatraceVersion: 1.265.0

author:

  name: John Doe

# optional metric metadata

metrics:

  - key: com.example.jmx.thread_count

    metadata:

      displayName: Thread Count

      description: Number of active Java threads

      unit: Count

# defines how to create metrics from JMX MBeans

jmx:

  groups:

    - group: jvm

      subgroups:

        - subgroup: basic

          query: java.lang:type=Threading

          metrics:

            - key: com.example.jmx.thread_count

              type: gauge

              value: attribute:ThreadCount

Первые две части вам уже должны быть знакомы, мы же сосредоточимся на разделе файла YAML jmx.

Группы и подгруппы могут использоваться для совместного использования конфигурации между несколькими метриками. В нашем конкретном примере у нас есть только одна группа и одна подгруппа.

Извлечение метрик из MBeans

Каждая подгруппа должна выбрать набор MBeans, которые должны вносить вклад в метрику. Это делается с помощью поля query и следует стандартному синтаксису имени объекта JMX

Здесь запрос java.lang:type=Threading. Он распадается на поиск компонента в домене java.lang, который имеет ровно одно свойство с именем type и значением Threading.

Каждая подгруппа также должна определить по крайней мере одну метрику, которая должна быть извлечена из выбранных MBean. В нашем примере мы создаем метрику датчика Ключ-АСТРОМ com.example.jmx.thread_count, вызываемую путем запроса числового атрибута JMX ThreadCount из MBean java.lang:type=Threading.

ЕдиныйАгент автоматически добавит в вашу метрику следующие измерения:

  • dt.entity.process_group_instance
  • dt.entity.process_group
  • dt.entity.host
  • dt.entity.container_group_instance
  • dt.metrics.source
  • dt.extension.config.id

Более подробную информацию см. в справочнике по источникам данных JMX.