<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_JMX</id>
	<title>Источник данных JMX - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_JMX"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_JMX&amp;action=history"/>
	<updated>2026-04-13T15:57:17Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_JMX&amp;diff=5350&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «Ключ-АСТРОМ предоставляет фреймворк для создания метрик из '''wikipedia:Java_Management_Extensions|JMX MBeans...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_JMX&amp;diff=5350&amp;oldid=prev"/>
		<updated>2025-06-22T17:13:46Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Ключ-АСТРОМ предоставляет фреймворк для создания метрик из &amp;#039;&amp;#039;&amp;#039;wikipedia:Java_Management_Extensions|JMX MBeans...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ключ-АСТРОМ предоставляет фреймворк для создания метрик из '''[[wikipedia:Java_Management_Extensions|JMX MBeans]]'''﻿. Каждый процесс, отслеживаемый модулем кода '''Java''' ЕдиногоАгента, способен обрабатывать '''расширения JMX 2.0'''.&lt;br /&gt;
&lt;br /&gt;
Вам необходимо включить функцию '''Java Metric Extensions 2.0 (JMX)''' ЕдиногоАгента&lt;br /&gt;
&lt;br /&gt;
== Принцип работы ==&lt;br /&gt;
'''[https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/package-summary.html JMX]'''﻿ организует данные и функциональность объектно-ориентированным способом. Каждый процесс '''Java''' имеет [https://docs.oracle.com/en/java/javase/17/docs/api/java.management/java/lang/management/ManagementFactory.html#getPlatformMBeanServer сервер платформы '''MBean''']﻿, который управляет набором объектов мониторинга, называемых '''MBeans'''.&lt;br /&gt;
&lt;br /&gt;
Каждый '''MBean''' имеет уникальное [https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/ObjectName.html имя объекта]﻿. Каждое имя объекта состоит из имени домена и списка ключевых свойств. Каждое ключевое свойство состоит из имени и (строкового) значения.&lt;br /&gt;
&lt;br /&gt;
'''JMX''' определяет стандартизированный синтаксис для записи этих имен объектов, например, &amp;lt;code&amp;gt;java.lang:type=GarbageCollector,name=YoungGen&amp;lt;/code&amp;gt;. Каждый '''MBean''' имеет 0 или более атрибутов (см. [https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/MBeanServer.html#getAttribute(javax.management.ObjectName,java.lang.String) MBeanServer::getAttribute]﻿). Атрибуты могут быть любого типа '''Java''' (включая логические значения, числа и строки).&lt;br /&gt;
&lt;br /&gt;
Числовые атрибуты могут быть напрямую использованы для создания метрик в Ключ-АСТРОМ. Также возможно извлекать числовые значения из сложных атрибутов.&lt;br /&gt;
&lt;br /&gt;
== Предустановка ==&lt;br /&gt;
Мы предполагаем следующее:&lt;br /&gt;
&lt;br /&gt;
* У вас есть достаточные знания в области '''JMX''' для создания расширения.&lt;br /&gt;
* Вы знакомы с основными концепциями расширений 2.0 и общей структурой файла расширения '''YAML'''.&lt;br /&gt;
&lt;br /&gt;
== Поддерживаемые версии Ключ-АСТРОМ ==&lt;br /&gt;
&lt;br /&gt;
* Клюя-АСТРОМ версии 1.265+&lt;br /&gt;
* ЕдиныйАгент версии 1.265+&lt;br /&gt;
&lt;br /&gt;
== Файл YAML с расширением JMX ==&lt;br /&gt;
Начнем с минимального расширения JMX:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|# required extension metadata&lt;br /&gt;
&lt;br /&gt;
name: custom:com.example.jmx&lt;br /&gt;
&lt;br /&gt;
version: 1.0.0&lt;br /&gt;
&lt;br /&gt;
minDynatraceVersion: 1.265.0&lt;br /&gt;
&lt;br /&gt;
author:&lt;br /&gt;
&lt;br /&gt;
  name: John Doe&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; optional metric metadata&lt;br /&gt;
&lt;br /&gt;
metrics:&lt;br /&gt;
&lt;br /&gt;
  - key: com.example.jmx.thread_count&lt;br /&gt;
&lt;br /&gt;
    metadata:&lt;br /&gt;
&lt;br /&gt;
      displayName: Thread Count&lt;br /&gt;
&lt;br /&gt;
      description: Number of active Java threads&lt;br /&gt;
&lt;br /&gt;
      unit: Count&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; defines how to create metrics from JMX MBeans&lt;br /&gt;
&lt;br /&gt;
jmx:&lt;br /&gt;
&lt;br /&gt;
  groups:&lt;br /&gt;
&lt;br /&gt;
    - group: jvm&lt;br /&gt;
&lt;br /&gt;
      subgroups:&lt;br /&gt;
&lt;br /&gt;
        - subgroup: basic&lt;br /&gt;
&lt;br /&gt;
          query: java.lang:type=Threading&lt;br /&gt;
&lt;br /&gt;
          metrics:&lt;br /&gt;
&lt;br /&gt;
            - key: com.example.jmx.thread_count&lt;br /&gt;
&lt;br /&gt;
              type: gauge&lt;br /&gt;
&lt;br /&gt;
              value: attribute:ThreadCount&lt;br /&gt;
|}&lt;br /&gt;
Первые две части вам уже должны быть знакомы, мы же сосредоточимся на разделе файла YAML &amp;lt;code&amp;gt;jmx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Группы и подгруппы могут использоваться для совместного использования конфигурации между несколькими метриками. В нашем конкретном примере у нас есть только одна группа и одна подгруппа.&lt;br /&gt;
&lt;br /&gt;
== Извлечение метрик из MBeans ==&lt;br /&gt;
Каждая подгруппа должна выбрать набор '''MBeans''', которые должны вносить вклад в метрику. Это делается с помощью поля &amp;lt;code&amp;gt;query&amp;lt;/code&amp;gt; и следует стандартному [https://docs.oracle.com/en/java/javase/17/docs/api/java.management/javax/management/ObjectName.html синтаксису имени объекта '''JMX''']﻿&lt;br /&gt;
&lt;br /&gt;
Здесь запрос &amp;lt;code&amp;gt;java.lang:type=Threading&amp;lt;/code&amp;gt;. Он распадается на поиск компонента в домене &amp;lt;code&amp;gt;java.lang&amp;lt;/code&amp;gt;, который имеет ровно одно свойство с именем &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; и значением &amp;lt;code&amp;gt;Threading&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Каждая подгруппа также должна определить по крайней мере одну метрику, которая должна быть извлечена из выбранных '''MBean'''. В нашем примере мы создаем метрику датчика Ключ-АСТРОМ &amp;lt;code&amp;gt;com.example.jmx.thread_count&amp;lt;/code&amp;gt;, вызываемую путем запроса числового атрибута '''JMX''' &amp;lt;code&amp;gt;ThreadCount&amp;lt;/code&amp;gt; из '''MBean''' &amp;lt;code&amp;gt;java.lang:type=Threading&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
ЕдиныйАгент автоматически добавит в вашу метрику следующие измерения:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;dt.entity.process_group_instance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dt.entity.process_group&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dt.entity.host&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dt.entity.container_group_instance&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dt.metrics.source&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;dt.extension.config.id&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Более подробную информацию см. в [[Справка о источнике данных JMX|справочнике по источникам данных JMX]].&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>