Пакет javax.management.monitor
Предоставляет определения классов мониторов. Монитор — это MBean, который периодически наблюдает за значением атрибута в одном или нескольких других MBean. Если атрибут удовлетворяет определенному условию, монитор отправляет MonitorNotification. Когда мониторский MBean периодически вызывает getAttribute для получения значения контролируемого атрибута, он делает это в контексте контроля доступа вызывающего Monitor.start().
Наблюдаемое значение может быть простым значением, содержащимся в сложном типе. Например, MemoryMXBean, определенный в java.lang.management, имеет атрибут HeapMemoryUsage типа MemoryUsage. Чтобы отслеживать объем используемой памяти, описанный свойством used объекта MemoryUsage, можно отслеживать "HeapMemoryUsage.used". Эта строка будет аргументом для setObservedAttribute.
Правила интерпретации ObservedAttribute, таких как "HeapMemoryUsage.used", следующие. Предположим, что строка — A.e (следовательно, A будет "HeapMemoryUsage", а e будет "used" в примере).
Сначала получается значение атрибута A. Назовем его v. Значение x извлекается из v следующим образом:
- Если v является
CompositeDataи если v.get(e) возвращает значение, то x — это это значение. - Если v — массив, а e — строка
"length", то x — это длина массива. - Если вышеперечисленные правила не дают значения, и если интроспекция, как будто вызывая Introspector.getBeanInfo, для класса v (v.
getClass()) идентифицирует свойство с именем e, то x — это результат чтения значения свойства.
Третье правило означает, что, например, если атрибут HeapMemoryUsage является MemoryUsage, то отслеживание "HeapMemoryUsage.used" получит наблюдаемое значение, вызвав MemoryUsage.getUsed().
Если ObservedAttribute содержит более одной точки, например, "ConnectionPool.connectionStats.length", то вышеуказанные правила применяются итеративно. Здесь v изначально будет значением атрибута ConnectionPool, а x будет получено применением вышеуказанных правил с e, равным "connectionStats". Затем v будет установлено в это x, и новое x будет получено применением правил снова с e, равным "length".
Хотя рекомендуется, чтобы имена атрибутов были допустимыми идентификаторами Java, возможно, что атрибут называется HeapMemoryUsage.used. Это означает, что ObservedAttribute, который является HeapMemoryUsage.used, может означать, что наблюдаемое значение — это либо атрибут с таким именем, либо свойство used внутри атрибута, названного HeapMemoryUsage. Таким образом, по соображениям совместимости, когда ObservedAttribute содержит точку (.), монитор проверит, существует ли атрибут с полным именем ObservedAttribute (HeapMemoryUsage.used в примере). Это делается путем вызова getMBeanInfo для наблюдаемого MBean и поиска содержащегося MBeanAttributeInfo с заданным именем. Если он найден, то это и отслеживается. Если наблюдается более одного MBean, поведение не определено, если у некоторых из них есть атрибут HeapMemoryUsage.used, а у других нет. Таким образом, реализация может вызвать getMBeanInfo только для одного из MBean в этом случае. Поведение также не определено, если результат проверки меняется во время работы монитора.
Точное поведение мониторов подробно описано в Спецификации JMX. Далее следует сводка.
Существует три вида мониторов:
-
CounterMonitorнаблюдает за атрибутами целочисленного типа. Предполагается, что атрибуты неотрицательные и монотонно возрастающие, за исключением возможного переполнения в указанном модуле. Каждый наблюдаемый атрибут имеет связанное пороговое значение. Уведомление отправляется, когда атрибут превышает свой порог.Можно указать смещение. Когда наблюдаемое значение превышает свой порог, порог увеличивается на смещение или на кратное смещения, достаточное для того, чтобы порог стал больше нового наблюдаемого значения.
CounterMonitorможет работать в режиме разности. В этом режиме значение, сравниваемое с порогом, — это разность между двумя последовательными наблюдениями за атрибутом. -
GaugeMonitorнаблюдает за атрибутами числового типа. Каждый наблюдаемый атрибут имеет связанные верхний порог и нижний порог.Когда наблюдаемый атрибут пересекает верхний порог, если флаг уведомлять при превышении истинен, отправляется уведомление. Последующие пересечения верхнего порога не будут вызывать дополнительные уведомления, пока значение датчика не станет меньше или равно нижнему порогу.
Когда наблюдаемый атрибут пересекает нижний порог, если флаг уведомлять при падении истинен, отправляется уведомление. Последующие пересечения нижнего порога не будут вызывать дополнительные уведомления, пока значение датчика не станет больше или равно верхнему порогу.
Обычно устанавливается только один из флагов уведомлений о превышении или падении. Другой порог используется для обеспечения механизма гистерезиса, чтобы избежать повторного отправления уведомлений, когда атрибут совершает небольшие колебания около порога.
GaugeMonitorможет работать в режиме разности. В этом режиме значение, сравниваемое с верхним и нижним порогом, — это разность между двумя последовательными наблюдениями за атрибутом. -
StringMonitorнаблюдает за атрибутами типаString. Уведомление отправляется, когда наблюдаемый атрибут становится равным и/или неравным заданной строке.
- Since:
- 1.5
- See Also:
| Класс | Описание |
|---|---|
| CounterMonitor | Определяет мониторский MBean, предназначенный для наблюдения за значениями атрибута счётчика. |
| CounterMonitorMBean | Выявляет удалённый интерфейс управления монитора счётчика MBean. |
| GaugeMonitor | Определяет мониторский MBean, предназначенный для наблюдения за значениями атрибута шкалы. |
| GaugeMonitorMBean | Выявляет удалённый интерфейс управления монитора шкалы MBean. |
| Monitor | Определяет общую часть всех мониторских MBean. |
| MonitorMBean | Выявляет удалённый интерфейс управления мониторскими MBean. |
| MonitorNotification | Предоставляет определения уведомлений, отправляемых мониторскими MBean. |
| MonitorSettingException | Исключение, выбрасываемое монитором, когда установка монитора становится недействительной во время работы монитора. |
| StringMonitor | Определяет мониторский MBean, предназначенный для наблюдения за значениями атрибута строки. |
| StringMonitorMBean | Выявляет удалённый интерфейс управления монитора строк MBean. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/monitor/package-summary.html