JMX Discovery
Este documento describe la funcionalidad JMX de de PandoraFMS, compuesta por el plugin de discovery.
- Introducción
- Prerrequisitos
- Parámetros
- Métricas
- Ejecución manual
- Discovery
- Agentes y módulos generados por el plugin
Introducción
Este plugin está diseñado para monitorizar aplicaciones Java mediante JMX (Java Management Extensions), recolectando métricas clave desde los MBeans expuestos por el servidor. Entre estas métricas se incluyen valores relativos a uso de CPU, memoria, actividad interna de la aplicación y otras estadísticas expuestas por los MBeans configurados, lo que permite tener un control preciso del estado de la plataforma Java.
El plugin se conecta a los endpoints JMX configurados, consulta las métricas definidas en los ficheros de configuración, y genera automáticamente agentes y módulos en formato XML que son enviados al servidor de Pandora FMS para su procesamiento. Este sistema permite una monitorización distribuida y escalable, gestionando múltiples instancias en paralelo mediante procesos, y facilitando la integración con sistemas Java empresariales de forma sencilla y flexible.
Prerrequisitos
Se requiere Java en el sistema que ejecuta el plugin
1. Activación del monitoreo JMX remoto para aplicaciones Java
Una aplicación Java no requiere software adicional instalado, pero debe iniciarse con las siguientes opciones de línea de comandos para habilitar el soporte para la supervisión JMX remota.
Al menos, si solo desea iniciar el monitoreo de una aplicación Java básica en un host local sin seguridad, use estas opciones:
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.port=9090 \
-Dcom.sun.management.jmxremote.rmi.port=9090 \
-Djava.rmi.server.hostname=localhost"
Esto configura Java para aceptar conexiones JMX entrantes en el puerto 9090 únicamente desde el localhost, sin necesidad de autenticación ni SSL.
Si se requiere authenticación, se debe de habilitar:
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.authenticate=true \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.port=9090 \
-Dcom.sun.management.jmxremote.rmi.port=9090 \
-Djava.rmi.server.hostname=localhost \
-Dcom.sun.management.jmxremote.password.file=/usr/local/tomcat/conf/jmxremote.password \
-Dcom.sun.management.jmxremote.access.file=/usr/local/tomcat/conf/jmxremote.access
2. El sistema que ejecuta el plugin debe de tener conectividad y poder llegar al servidor JMX
Parámetros
Parámetros
| --conf | Ruta al archivo de configuración |
Archivo de configuración (--conf)
user = < usuario >
password = < contraseña >
jmx_url = < Url del entorno de JMX principal, se descubriran los Mbeans de este entorno y las metricas de los mbeans seleccionados se monitorizaran para todas las instancias configuradas >
module_prefix = < Prefijo para los módulos >
agent_prefix = < Prefijo para los agentes >
agents_group_name = < nombre de grupo para el agente >
interval = < intervalo de creación del agente >
threads = < número de hilos >
temporal = < ruta de directorios temporales >
transfer_mode = < modo de transferencia >
tentacle_ip = < ruta de tentacle >
tentacle_port = < puerto de tentacle >
tentacle_opts = < opciones de tentacle >
data_dir = < ruta de ficheros .data >
allow_regexp = < Patron de regexp. Las métricas que coincidan con el patron se monitorizaran >
deny_regexp = < Patron de regexp. Las métricas que coincidan con el patron se descartaran >
jmx_mbeans= lista con el nombre de los Mbeans a monitorizar, separados por coma.
[MODULE_NAMES]
< Nombre de la metrica que se quiera renombrar en el nombre del módulo | nombre del módulo deseado para esa métrica >
Ejemplo
[CONF]
user = controlRole
password = myPassword
jmx_url = service:jmx:rmi:///jndi/rmi://172.17.0.2:9010/jmxrmi
module_prefix = tomcat.
agent_prefix = tomcat.
agents_group_name = jmx
interval = 300
threads = 4
temporal = /tmp
transfer_mode = tentacle
tentacle_client = tentacle_client
tentacle_ip =172.42.42.101
tentacle_port =41121
tentacle_opts =
data_dir = /var/spool/pandora/data_in/
allow_regexp = ^Catalina:.*
deny_regexp =
jmx_mbeans=["Catalina:type=Service","java.lang:type=ClassLoading","Catalina:type=Deployer,host=localhost","java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool"]
[MODULE_NAMES]
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/PeakUsage/max | Memory.usage.max
Catalina:type=Service/name | Catalina.service.name
Archivo de instancias (--target_instances)
Especificar en cada línea la url de conexión a la instancia Java.
Ejemplo
service:jmx:rmi:///jndi/rmi://172.17.0.1:9090/jmxrmi
service:jmx:rmi:///jndi/rmi://172.12.0.23:9090/jmxrmi
service:jmx:rmi:///jndi/rmi://172.11.0.1:9090/jmxrmi
Archivo de metricas (--target_metrics)
Especificar métrica línea a línea.
Por cada línea en el fichero de configuración se debe añadir un atributo y esto creará un modulo con esa estadística en Pandora. Si es necesario configurar umbrales, se deben especificar a la derecha del atributo, separado cada umbral por |. Ejemplo:
Métrica sin umbral
java.lang:type=Threading/ThreadCount
Métrica con umbral
java.lang:type=Threading/TotalStartedThreadCount|min_warning 30|min_critical 45
Ejemplo
java.lang:type=Threading/TotalThreadAllocatedBytes
java.lang:type=Threading/CurrentThreadAllocatedBytes
java.lang:type=Threading/ThreadAllocatedMemoryEnabled
java.lang:type=Threading/ThreadAllocatedMemorySupported
java.lang:type=Threading/ThreadCount
java.lang:type=Threading/TotalStartedThreadCount|min_warning 30|min_critical 45
java.lang:type=Threading/AllThreadIds
java.lang:type=Threading/CurrentThreadCpuTime
java.lang:type=Threading/CurrentThreadUserTime
java.lang:type=Threading/ThreadCpuTimeSupported
java.lang:type=Threading/ThreadCpuTimeEnabled
java.lang:type=Threading/ThreadContentionMonitoringEnabled
java.lang:type=Threading/ThreadContentionMonitoringSupported
java.lang:type=Threading/CurrentThreadCpuTimeSupported
java.lang:type=Threading/ObjectMonitorUsageSupported
java.lang:type=Threading/SynchronizerUsageSupported
java.lang:type=Threading/PeakThreadCount
java.lang:type=Threading/DaemonThreadCount
java.lang:type=Threading/ObjectName
Métricas
El plugin acepta Métricas de Mbeans , las siguientes métricas se pueden especificar y si el sistema cuenta con ese Mbean podrá monitorizarla.
MBean: Catalina:type=Service
Catalina:type=Service/modelerType
Catalina:type=Service/stateName
Catalina:type=Service/connectorNames
Catalina:type=Service/name
MBean: Catalina:type=StringCache
Catalina:type=StringCache/accessCount
Catalina:type=StringCache/modelerType
Catalina:type=StringCache/cacheSize
Catalina:type=StringCache/hitCount
Catalina:type=StringCache/trainThreshold
Catalina:type=StringCache/charEnabled
Catalina:type=StringCache/byteEnabled
MBean: JMImplementation:type=MBeanServerDelegate
JMImplementation:type=MBeanServerDelegate/MBeanServerId
JMImplementation:type=MBeanServerDelegate/SpecificationName
JMImplementation:type=MBeanServerDelegate/SpecificationVersion
JMImplementation:type=MBeanServerDelegate/SpecificationVendor
JMImplementation:type=MBeanServerDelegate/ImplementationName
JMImplementation:type=MBeanServerDelegate/ImplementationVersion
JMImplementation:type=MBeanServerDelegate/ImplementationVendor
MBean: java.lang:type=Runtime
java.lang:type=Runtime/Name
java.lang:type=Runtime/ClassPath
java.lang:type=Runtime/BootClassPathSupported
java.lang:type=Runtime/VmName
java.lang:type=Runtime/VmVendor
java.lang:type=Runtime/VmVersion
java.lang:type=Runtime/LibraryPath
MBean: java.lang:type=Threading
java.lang:type=Threading/TotalThreadAllocatedBytes
java.lang:type=Threading/CurrentThreadAllocatedBytes
java.lang:type=Threading/ThreadAllocatedMemoryEnabled
java.lang:type=Threading/ThreadAllocatedMemorySupported
java.lang:type=Threading/ThreadCount
java.lang:type=Threading/TotalStartedThreadCount
java.lang:type=Threading/AllThreadIds
java.lang:type=Threading/CurrentThreadCpuTime
java.lang:type=Threading/CurrentThreadUserTime
java.lang:type=Threading/ThreadCpuTimeSupported
java.lang:type=Threading/ThreadCpuTimeEnabled
java.lang:type=Threading/ThreadContentionMonitoringEnabled
java.lang:type=Threading/ThreadContentionMonitoringSupported
java.lang:type=Threading/CurrentThreadCpuTimeSupported
java.lang:type=Threading/ObjectMonitorUsageSupported
java.lang:type=Threading/SynchronizerUsageSupported
java.lang:type=Threading/PeakThreadCount
java.lang:type=Threading/DaemonThreadCount
java.lang:type=Threading/ObjectName
MBean: java.nio:name=direct,type=BufferPool
java.nio:name=direct,type=BufferPool/Name
java.nio:name=direct,type=BufferPool/Count
java.nio:name=direct,type=BufferPool/TotalCapacity
java.nio:name=direct,type=BufferPool/MemoryUsed
java.nio:name=direct,type=BufferPool/ObjectName
MBean: java.lang:name=G1 Young Generation,type=GarbageCollector
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/GcThreadCount
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/duration
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/endTime
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/id
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/memoryUsageAfterGc
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/memoryUsageBeforeGc
java.lang:name=G1 Young Generation,type=GarbageCollector/LastGcInfo/startTime
java.lang:name=G1 Young Generation,type=GarbageCollector/CollectionCount
java.lang:name=G1 Young Generation,type=GarbageCollector/CollectionTime
java.lang:name=G1 Young Generation,type=GarbageCollector/MemoryPoolNames
java.lang:name=G1 Young Generation,type=GarbageCollector/Name
java.lang:name=G1 Young Generation,type=GarbageCollector/Valid
java.lang:name=G1 Young Generation,type=GarbageCollector/ObjectName
MBean: java.lang:name=CodeCacheManager,type=MemoryManager
java.lang:name=CodeCacheManager,type=MemoryManager/MemoryPoolNames
java.lang:name=CodeCacheManager,type=MemoryManager/Name
java.lang:name=CodeCacheManager,type=MemoryManager/Valid
java.lang:name=CodeCacheManager,type=MemoryManager/ObjectName
MBean: Catalina:type=Valve,host=localhost,name=ErrorReportValve
Catalina:type=Valve,host=localhost,name=ErrorReportValve/modelerType
Catalina:type=Valve,host=localhost,name=ErrorReportValve/stateName
Catalina:type=Valve,host=localhost,name=ErrorReportValve/showReport
Catalina:type=Valve,host=localhost,name=ErrorReportValve/showServerInfo
Catalina:type=Valve,host=localhost,name=ErrorReportValve/asyncSupported
Catalina:type=Valve,host=localhost,name=ErrorReportValve/className
MBean: java.lang:type=ClassLoading
java.lang:type=ClassLoading/Verbose
java.lang:type=ClassLoading/TotalLoadedClassCount
java.lang:type=ClassLoading/UnloadedClassCount
java.lang:type=ClassLoading/LoadedClassCount
java.lang:type=ClassLoading/ObjectName
MBean: java.lang:name=G1 Survivor Space,type=MemoryPool
java.lang:name=G1 Survivor Space,type=MemoryPool/Usage/committed
java.lang:name=G1 Survivor Space,type=MemoryPool/Usage/init
java.lang:name=G1 Survivor Space,type=MemoryPool/Usage/max
java.lang:name=G1 Survivor Space,type=MemoryPool/Usage/used
java.lang:name=G1 Survivor Space,type=MemoryPool/PeakUsage/committed
java.lang:name=G1 Survivor Space,type=MemoryPool/PeakUsage/init
java.lang:name=G1 Survivor Space,type=MemoryPool/PeakUsage/max
java.lang:name=G1 Survivor Space,type=MemoryPool/PeakUsage/used
java.lang:name=G1 Survivor Space,type=MemoryPool/MemoryManagerNames
MBean: Catalina:type=Connector,port=8080
Catalina:type=Connector,port=8080/modelerType
Catalina:type=Connector,port=8080/maxPostSize
Catalina:type=Connector,port=8080/proxyName
Catalina:type=Connector,port=8080/scheme
Catalina:type=Connector,port=8080/redirectPortWithOffset
Catalina:type=Connector,port=8080/className
Catalina:type=Connector,port=8080/acceptCount
Catalina:type=Connector,port=8080/secret
Catalina:type=Connector,port=8080/secure
Catalina:type=Connector,port=8080/threadPriority
Catalina:type=Connector,port=8080/maxSwallowSize
Catalina:type=Connector,port=8080/ajpFlush
Catalina:type=Connector,port=8080/maxSavePostSize
Catalina:type=Connector,port=8080/proxyPort
Catalina:type=Connector,port=8080/sslProtocols
Catalina:type=Connector,port=8080/portWithOffset
Catalina:type=Connector,port=8080/protocol
Catalina:type=Connector,port=8080/maxParameterCount
Catalina:type=Connector,port=8080/useIPVHosts
Catalina:type=Connector,port=8080/stateName
Catalina:type=Connector,port=8080/redirectPort
Catalina:type=Connector,port=8080/allowTrace
Catalina:type=Connector,port=8080/ciphers
Catalina:type=Connector,port=8080/protocolHandlerClassName
Catalina:type=Connector,port=8080/maxThreads
Catalina:type=Connector,port=8080/connectionTimeout
Catalina:type=Connector,port=8080/tcpNoDelay
Catalina:type=Connector,port=8080/useBodyEncodingForURI
Catalina:type=Connector,port=8080/connectionLinger
Catalina:type=Connector,port=8080/processorCache
Catalina:type=Connector,port=8080/keepAliveTimeout
Catalina:type=Connector,port=8080/maxKeepAliveRequests
Catalina:type=Connector,port=8080/address
Catalina:type=Connector,port=8080/localPort
Catalina:type=Connector,port=8080/enableLookups
Catalina:type=Connector,port=8080/allowedRequestAttributesPattern
Catalina:type=Connector,port=8080/secretRequired
Catalina:type=Connector,port=8080/packetSize
Catalina:type=Connector,port=8080/URIEncoding
Catalina:type=Connector,port=8080/minSpareThreads
Catalina:type=Connector,port=8080/executorName
Catalina:type=Connector,port=8080/ciphersUsed
Catalina:type=Connector,port=8080/maxHeaderCount
Catalina:type=Connector,port=8080/port
Catalina:type=Connector,port=8080/portOffset
Catalina:type=Connector,port=8080/xpoweredBy
MBean: java.lang:name=Metaspace,type=MemoryPool
java.lang:name=Metaspace,type=MemoryPool/Usage/committed
java.lang:name=Metaspace,type=MemoryPool/Usage/init
java.lang:name=Metaspace,type=MemoryPool/Usage/max
java.lang:name=Metaspace,type=MemoryPool/Usage/used
java.lang:name=Metaspace,type=MemoryPool/PeakUsage/committed
java.lang:name=Metaspace,type=MemoryPool/PeakUsage/init
java.lang:name=Metaspace,type=MemoryPool/PeakUsage/max
java.lang:name=Metaspace,type=MemoryPool/PeakUsage/used
java.lang:name=Metaspace,type=MemoryPool/MemoryManagerNames
java.lang:name=Metaspace,type=MemoryPool/UsageThreshold
java.lang:name=Metaspace,type=MemoryPool/UsageThresholdExceeded
java.lang:name=Metaspace,type=MemoryPool/UsageThresholdCount
java.lang:name=Metaspace,type=MemoryPool/UsageThresholdSupported
MBean: Catalina:type=Valve,name=StandardEngineValve
Catalina:type=Valve,name=StandardEngineValve/modelerType
Catalina:type=Valve,name=StandardEngineValve/stateName
Catalina:type=Valve,name=StandardEngineValve/asyncSupported
Catalina:type=Valve,name=StandardEngineValve/className
MBean: Users:type=UserDatabase,database=UserDatabase
Users:type=UserDatabase,database=UserDatabase/modelerType
Users:type=UserDatabase,database=UserDatabase/readonly
Users:type=UserDatabase,database=UserDatabase/roles
Users:type=UserDatabase,database=UserDatabase/groups
Users:type=UserDatabase,database=UserDatabase/users
Users:type=UserDatabase,database=UserDatabase/pathname
Users:type=UserDatabase,database=UserDatabase/writable
MBean: Catalina:type=Realm,realmPath=/realm0
Catalina:type=Realm,realmPath=/realm0/realms
Catalina:type=Realm,realmPath=/realm0/modelerType
Catalina:type=Realm,realmPath=/realm0/cacheSize
Catalina:type=Realm,realmPath=/realm0/lockOutTime
Catalina:type=Realm,realmPath=/realm0/allRolesMode
Catalina:type=Realm,realmPath=/realm0/cacheRemovalWarningTime
Catalina:type=Realm,realmPath=/realm0/realmPath
Catalina:type=Realm,realmPath=/realm0/className
Catalina:type=Realm,realmPath=/realm0/failureCount
Catalina:type=Realm,realmPath=/realm0/validate
MBean: Catalina:type=Deployer,host=localhost
Catalina:type=Deployer,host=localhost/configBaseName
Catalina:type=Deployer,host=localhost/modelerType
Catalina:type=Deployer,host=localhost/copyXML
Catalina:type=Deployer,host=localhost/unpackWARs
Catalina:type=Deployer,host=localhost/className
Catalina:type=Deployer,host=localhost/deployXML
Catalina:type=Deployer,host=localhost/contextClass
MBean: java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/Usage/committed
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/Usage/init
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/Usage/max
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/Usage/used
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/PeakUsage/committed
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/PeakUsage/init
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/PeakUsage/max
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/PeakUsage/used
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/MemoryManagerNames
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/UsageThreshold
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/UsageThresholdExceeded
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/UsageThresholdCount
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/UsageThresholdSupported
MBean: java.nio:name=mapped,type=BufferPool
java.nio:name=mapped,type=BufferPool/Name
java.nio:name=mapped,type=BufferPool/Count
java.nio:name=mapped,type=BufferPool/TotalCapacity
java.nio:name=mapped,type=BufferPool/MemoryUsed
java.nio:name=mapped,type=BufferPool/ObjectName
MBean: Catalina:type=Server
Catalina:type=Server/portWithOffset
Catalina:type=Server/modelerType
Catalina:type=Server/address
Catalina:type=Server/serverInfo
Catalina:type=Server/port
Catalina:type=Server/stateName
Catalina:type=Server/portOffset
Catalina:type=Server/serverBuilt
MBean: java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/Usage/committed
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/Usage/init
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/Usage/max
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/Usage/used
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/PeakUsage/committed
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/PeakUsage/init
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/PeakUsage/max
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/PeakUsage/used
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/MemoryManagerNames
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/UsageThreshold
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/UsageThresholdExceeded
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/UsageThresholdCount
java.lang:name=CodeHeap 'non-profiled nmethods',type=MemoryPool/UsageThresholdSupported
MBean: com.sun.management:type=HotSpotDiagnostic
com.sun.management:type=HotSpotDiagnostic/DiagnosticOptions
com.sun.management:type=HotSpotDiagnostic/ObjectName
MBean: Catalina:type=UtilityExecutor
Catalina:type=UtilityExecutor/removeOnCancelPolicy
Catalina:type=UtilityExecutor/activeCount
Catalina:type=UtilityExecutor/modelerType
Catalina:type=UtilityExecutor/largestPoolSize
Catalina:type=UtilityExecutor/poolSize
Catalina:type=UtilityExecutor/continueExistingPeriodicTasksAfterShutdownPolicy
Catalina:type=UtilityExecutor/executeExistingDelayedTasksAfterShutdownPolicy
Catalina:type=UtilityExecutor/taskCount
Catalina:type=UtilityExecutor/corePoolSize
Catalina:type=UtilityExecutor/terminating
Catalina:type=UtilityExecutor/completedTaskCount
Catalina:type=UtilityExecutor/maximumPoolSize
Catalina:type=UtilityExecutor/terminated
Catalina:type=UtilityExecutor/shutdown
MBean: jdk.management.jfr:type=FlightRecorder
jdk.management.jfr:type=FlightRecorder/Recordings
jdk.management.jfr:type=FlightRecorder/Configurations
jdk.management.jfr:type=FlightRecorder/EventTypes
jdk.management.jfr:type=FlightRecorder/ObjectName
MBean: Catalina:type=Mapper
Catalina:type=Mapper/modelerType
Catalina:type=Mapper/stateName
MBean: Catalina:type=Valve,host=localhost,name=StandardHostValve
Catalina:type=Valve,host=localhost,name=StandardHostValve/modelerType
Catalina:type=Valve,host=localhost,name=StandardHostValve/stateName
Catalina:type=Valve,host=localhost,name=StandardHostValve/asyncSupported
Catalina:type=Valve,host=localhost,name=StandardHostValve/className
MBean: java.lang:type=OperatingSystem
java.lang:type=OperatingSystem/OpenFileDescriptorCount
java.lang:type=OperatingSystem/MaxFileDescriptorCount
java.lang:type=OperatingSystem/CommittedVirtualMemorySize
java.lang:type=OperatingSystem/TotalSwapSpaceSize
java.lang:type=OperatingSystem/FreeSwapSpaceSize
java.lang:type=OperatingSystem/ProcessCpuTime
java.lang:type=OperatingSystem/FreeMemorySize
java.lang:type=OperatingSystem/TotalMemorySize
java.lang:type=OperatingSystem/CpuLoad
java.lang:type=OperatingSystem/ProcessCpuLoad
java.lang:type=OperatingSystem/FreePhysicalMemorySize
java.lang:type=OperatingSystem/TotalPhysicalMemorySize
java.lang:type=OperatingSystem/SystemCpuLoad
java.lang:type=OperatingSystem/Arch
java.lang:type=OperatingSystem/SystemLoadAverage
java.lang:type=OperatingSystem/Name
java.lang:type=OperatingSystem/Version
java.lang:type=OperatingSystem/AvailableProcessors
java.lang:type=OperatingSystem/ObjectName
MBean: java.lang:name=G1 Concurrent GC,type=GarbageCollector
java.lang:name=G1 Concurrent GC,type=GarbageCollector/LastGcInfo
java.lang:name=G1 Concurrent GC,type=GarbageCollector/CollectionCount
java.lang:name=G1 Concurrent GC,type=GarbageCollector/CollectionTime
java.lang:name=G1 Concurrent GC,type=GarbageCollector/MemoryPoolNames
java.lang:name=G1 Concurrent GC,type=GarbageCollector/Name
java.lang:name=G1 Concurrent GC,type=GarbageCollector/Valid
java.lang:name=G1 Concurrent GC,type=GarbageCollector/ObjectName
MBean: Catalina:type=Realm,realmPath=/realm0/realm0
Catalina:type=Realm,realmPath=/realm0/realm0/modelerType
Catalina:type=Realm,realmPath=/realm0/realm0/stateName
Catalina:type=Realm,realmPath=/realm0/realm0/allRolesMode
Catalina:type=Realm,realmPath=/realm0/realm0/realmPath
Catalina:type=Realm,realmPath=/realm0/realm0/className
Catalina:type=Realm,realmPath=/realm0/realm0/resourceName
Catalina:type=Realm,realmPath=/realm0/realm0/localJndiResource
Catalina:type=Realm,realmPath=/realm0/realm0/validate
MBean: java.lang:type=Compilation
java.lang:type=Compilation/TotalCompilationTime
java.lang:type=Compilation/Name
java.lang:type=Compilation/CompilationTimeMonitoringSupported
java.lang:type=Compilation/ObjectName
MBean: Catalina:type=Host,host=localhost
Catalina:type=Host,host=localhost/modelerType
Catalina:type=Host,host=localhost/aliases
Catalina:type=Host,host=localhost/errorReportValveClass
Catalina:type=Host,host=localhost/backgroundProcessorDelay
Catalina:type=Host,host=localhost/contextClass
Catalina:type=Host,host=localhost/children
Catalina:type=Host,host=localhost/stateName
Catalina:type=Host,host=localhost/deployXML
Catalina:type=Host,host=localhost/workDir
MBean: java.lang:name=G1 Old Gen,type=MemoryPool
java.lang:name=G1 Old Gen,type=MemoryPool/Usage/committed
java.lang:name=G1 Old Gen,type=MemoryPool/Usage/init
java.lang:name=G1 Old Gen,type=MemoryPool/Usage/max
java.lang:name=G1 Old Gen,type=MemoryPool/Usage/used
java.lang:name=G1 Old Gen,type=MemoryPool/PeakUsage/committed
java.lang:name=G1 Old Gen,type=MemoryPool/PeakUsage/init
java.lang:name=G1 Old Gen,type=MemoryPool/PeakUsage/max
java.lang:name=G1 Old Gen,type=MemoryPool/PeakUsage/used
java.lang:name=G1 Old Gen,type=MemoryPool/MemoryManagerNames
java.lang:name=G1 Old Gen,type=MemoryPool/UsageThreshold
java.lang:name=G1 Old Gen,type=MemoryPool/UsageThresholdExceeded
java.lang:name=G1 Old Gen,type=MemoryPool/UsageThresholdCount
java.lang:name=G1 Old Gen,type=MemoryPool/UsageThresholdSupported
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsageThreshold
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsageThresholdExceeded
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsageThresholdCount
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsage/committed
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsage/init
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsage/max
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsage/used
java.lang:name=G1 Old Gen,type=MemoryPool/CollectionUsageThresholdSupported
java.lang:name=G1 Old Gen,type=MemoryPool/Name
java.lang:name=G1 Old Gen,type=MemoryPool/Type
java.lang:name=G1 Old Gen,type=MemoryPool/Valid
java.lang:name=G1 Old Gen,type=MemoryPool/ObjectName
MBean: Catalina:type=Engine
Catalina:type=Engine/modelerType
Catalina:type=Engine/catalinaBase
Catalina:type=Engine/stateName
Catalina:type=Engine/defaultHost
Catalina:type=Engine/name
Catalina:type=Engine/backgroundProcessorDelay
MBean: java.util.logging:type=Logging
java.util.logging:type=Logging/LoggerNames
java.util.logging:type=Logging/ObjectName
MBean: java.lang:name=G1 Old Generation,type=GarbageCollector
java.lang:name=G1 Old Generation,type=GarbageCollector/LastGcInfo
java.lang:name=G1 Old Generation,type=GarbageCollector/CollectionCount
java.lang:name=G1 Old Generation,type=GarbageCollector/CollectionTime
java.lang:name=G1 Old Generation,type=GarbageCollector/MemoryPoolNames
java.lang:name=G1 Old Generation,type=GarbageCollector/Name
java.lang:name=G1 Old Generation,type=GarbageCollector/Valid
java.lang:name=G1 Old Generation,type=GarbageCollector/ObjectName
MBean: java.lang:name=Metaspace Manager,type=MemoryManager
java.lang:name=Metaspace Manager,type=MemoryManager/MemoryPoolNames
java.lang:name=Metaspace Manager,type=MemoryManager/Name
java.lang:name=Metaspace Manager,type=MemoryManager/Valid
java.lang:name=Metaspace Manager,type=MemoryManager/ObjectName
MBean: Catalina:type=ProtocolHandler,port=8080
Catalina:type=ProtocolHandler,port=8080/sslImplementationName
Catalina:type=ProtocolHandler,port=8080/waitingProcessorCount
Catalina:type=ProtocolHandler,port=8080/relaxedPathChars
Catalina:type=ProtocolHandler,port=8080/sSLProtocol
Catalina:type=ProtocolHandler,port=8080/sSLCertificateKeyFile
Catalina:type=ProtocolHandler,port=8080/keyAlias
Catalina:type=ProtocolHandler,port=8080/acceptCount
Catalina:type=ProtocolHandler,port=8080/sSLCACertificatePath
Catalina:type=ProtocolHandler,port=8080/maxSavePostSize
Catalina:type=ProtocolHandler,port=8080/allowHostHeaderMismatch
Catalina:type=ProtocolHandler,port=8080/sSLPasswordFile
Catalina:type=ProtocolHandler,port=8080/sSLCARevocationFile
Catalina:type=ProtocolHandler,port=8080/keystorePass
Catalina:type=ProtocolHandler,port=8080/id
Catalina:type=ProtocolHandler,port=8080/algorithm
Catalina:type=ProtocolHandler,port=8080/serverRemoveAppProvidedValues
Catalina:type=ProtocolHandler,port=8080/compressibleMimeTypes
Catalina:type=ProtocolHandler,port=8080/maxKeepAliveRequests
Catalina:type=ProtocolHandler,port=8080/allowedTrailerHeaders
Catalina:type=ProtocolHandler,port=8080/truststoreProvider
Catalina:type=ProtocolHandler,port=8080/sessionCacheSize
Catalina:type=ProtocolHandler,port=8080/clientCertProvider
Catalina:type=ProtocolHandler,port=8080/acceptorThreadPriority
Catalina:type=ProtocolHandler,port=8080/maxHttpHeaderSize
Catalina:type=ProtocolHandler,port=8080/keystoreType
Catalina:type=ProtocolHandler,port=8080/domain
Catalina:type=ProtocolHandler,port=8080/compression
Catalina:type=ProtocolHandler,port=8080/desiredBufferSize
Catalina:type=ProtocolHandler,port=8080/server
Catalina:type=ProtocolHandler,port=8080/modelerType
Catalina:type=ProtocolHandler,port=8080/rejectIllegalHeader
Catalina:type=ProtocolHandler,port=8080/connectionUploadTimeout
Catalina:type=ProtocolHandler,port=8080/noCompressionStrongETag
Catalina:type=ProtocolHandler,port=8080/aprRequired
Catalina:type=ProtocolHandler,port=8080/compressibleMimeType
Catalina:type=ProtocolHandler,port=8080/nameIndex
Catalina:type=ProtocolHandler,port=8080/ciphers
Catalina:type=ProtocolHandler,port=8080/disableUploadTimeout
Catalina:type=ProtocolHandler,port=8080/relaxedQueryChars
Catalina:type=ProtocolHandler,port=8080/crlFile
Catalina:type=ProtocolHandler,port=8080/connectionTimeout
Catalina:type=ProtocolHandler,port=8080/keystoreProvider
Catalina:type=ProtocolHandler,port=8080/sSLCipherSuite
Catalina:type=ProtocolHandler,port=8080/sSLDisableCompression
Catalina:type=ProtocolHandler,port=8080/useSendfile
Catalina:type=ProtocolHandler,port=8080/sSLCertificateChainFile
Catalina:type=ProtocolHandler,port=8080/sSLCACertificateFile
Catalina:type=ProtocolHandler,port=8080/keyPass
Catalina:type=ProtocolHandler,port=8080/compressionMinSize
Catalina:type=ProtocolHandler,port=8080/globalRequestProcessorMBeanName
Catalina:type=ProtocolHandler,port=8080/portOffset
Catalina:type=ProtocolHandler,port=8080/truststoreFile
Catalina:type=ProtocolHandler,port=8080/keystoreFile
Catalina:type=ProtocolHandler,port=8080/defaultSSLHostConfigName
Catalina:type=ProtocolHandler,port=8080/selectorTimeout
Catalina:type=ProtocolHandler,port=8080/paused
Catalina:type=ProtocolHandler,port=8080/truststoreType
Catalina:type=ProtocolHandler,port=8080/sSLPassword
Catalina:type=ProtocolHandler,port=8080/secure
Catalina:type=ProtocolHandler,port=8080/continueResponseTiming
Catalina:type=ProtocolHandler,port=8080/sSLHonorCipherOrder
Catalina:type=ProtocolHandler,port=8080/portWithOffset
Catalina:type=ProtocolHandler,port=8080/trustManagerClassName
Catalina:type=ProtocolHandler,port=8080/sniParseLimit
Catalina:type=ProtocolHandler,port=8080/maxTrailerSize
Catalina:type=ProtocolHandler,port=8080/keyPassFile
Catalina:type=ProtocolHandler,port=8080/sendfileSupported
Catalina:type=ProtocolHandler,port=8080/trustMaxCertLength
Catalina:type=ProtocolHandler,port=8080/maxThreads
Catalina:type=ProtocolHandler,port=8080/truststoreAlgorithm
Catalina:type=ProtocolHandler,port=8080/tcpNoDelay
Catalina:type=ProtocolHandler,port=8080/keepAliveTimeout
Catalina:type=ProtocolHandler,port=8080/localPort
Catalina:type=ProtocolHandler,port=8080/pollerThreadCount
Catalina:type=ProtocolHandler,port=8080/acceptorThreadCount
Catalina:type=ProtocolHandler,port=8080/rejectIllegalHeaderName
Catalina:type=ProtocolHandler,port=8080/sSLDisableSessionTickets
Catalina:type=ProtocolHandler,port=8080/minSpareThreads
Catalina:type=ProtocolHandler,port=8080/sSLCARevocationPath
Catalina:type=ProtocolHandler,port=8080/port
Catalina:type=ProtocolHandler,port=8080/maxHeaderCount
Catalina:type=ProtocolHandler,port=8080/name
Catalina:type=ProtocolHandler,port=8080/sslProtocol
Catalina:type=ProtocolHandler,port=8080/sessionTimeout
Catalina:type=ProtocolHandler,port=8080/clientAuth
Catalina:type=ProtocolHandler,port=8080/sSLVerifyDepth
Catalina:type=ProtocolHandler,port=8080/sSLCertificateFile
Catalina:type=ProtocolHandler,port=8080/connectionCount
Catalina:type=ProtocolHandler,port=8080/useKeepAliveResponseHeader
Catalina:type=ProtocolHandler,port=8080/keystorePassFile
Catalina:type=ProtocolHandler,port=8080/threadPriority
Catalina:type=ProtocolHandler,port=8080/maxSwallowSize
Catalina:type=ProtocolHandler,port=8080/truststorePass
Catalina:type=ProtocolHandler,port=8080/sSLEnabled
Catalina:type=ProtocolHandler,port=8080/sslEnabledProtocols
Catalina:type=ProtocolHandler,port=8080/maxHttpResponseHeaderSize
Catalina:type=ProtocolHandler,port=8080/maxExtensionSize
Catalina:type=ProtocolHandler,port=8080/sSLVerifyClient
Catalina:type=ProtocolHandler,port=8080/maxConnections
Catalina:type=ProtocolHandler,port=8080/connectionLinger
Catalina:type=ProtocolHandler,port=8080/processorCache
Catalina:type=ProtocolHandler,port=8080/restrictedUserAgents
Catalina:type=ProtocolHandler,port=8080/noCompressionUserAgents
Catalina:type=ProtocolHandler,port=8080/maxHttpRequestHeaderSize
Catalina:type=ProtocolHandler,port=8080/pollerThreadPriority
Catalina:type=ProtocolHandler,port=8080/objectName
Catalina:type=ProtocolHandler,port=8080/useServerCipherSuitesOrder
MBean: Catalina:type=MBeanFactory
Catalina:type=MBeanFactory/modelerType
MBean: java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/Usage/committed
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/Usage/init
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/Usage/max
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/Usage/used
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/PeakUsage/committed
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/PeakUsage/init
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/PeakUsage/max
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/PeakUsage/used
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/MemoryManagerNames
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/UsageThreshold
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/UsageThresholdExceeded
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/UsageThresholdCount
java.lang:name=CodeHeap 'profiled nmethods',type=MemoryPool/UsageThresholdSupported
MBean: java.nio:name=mapped - 'non-volatile memory',type=BufferPool
java.nio:name=mapped - 'non-volatile memory',type=BufferPool/Name
java.nio:name=mapped - 'non-volatile memory',type=BufferPool/Count
java.nio:name=mapped - 'non-volatile memory',type=BufferPool/TotalCapacity
java.nio:name=mapped - 'non-volatile memory',type=BufferPool/MemoryUsed
java.nio:name=mapped - 'non-volatile memory',type=BufferPool/ObjectName
MBean: Catalina:type=Valve,host=localhost,name=AccessLogValve
Catalina:type=Valve,host=localhost,name=AccessLogValve/rotatable
Catalina:type=Valve,host=localhost,name=AccessLogValve/modelerType
Catalina:type=Valve,host=localhost,name=AccessLogValve/checkExists
Catalina:type=Valve,host=localhost,name=AccessLogValve/prefix
Catalina:type=Valve,host=localhost,name=AccessLogValve/pattern
Catalina:type=Valve,host=localhost,name=AccessLogValve/className
Catalina:type=Valve,host=localhost,name=AccessLogValve/encoding
Catalina:type=Valve,host=localhost,name=AccessLogValve/locale
Catalina:type=Valve,host=localhost,name=AccessLogValve/suffix
Catalina:type=Valve,host=localhost,name=AccessLogValve/directory
Catalina:type=Valve,host=localhost,name=AccessLogValve/enabled
Catalina:type=Valve,host=localhost,name=AccessLogValve/condition
Catalina:type=Valve,host=localhost,name=AccessLogValve/conditionUnless
Catalina:type=Valve,host=localhost,name=AccessLogValve/stateName
Catalina:type=Valve,host=localhost,name=AccessLogValve/buffered
Catalina:type=Valve,host=localhost,name=AccessLogValve/asyncSupported
Catalina:type=Valve,host=localhost,name=AccessLogValve/renameOnRotate
Catalina:type=Valve,host=localhost,name=AccessLogValve/conditionIf
Catalina:type=Valve,host=localhost,name=AccessLogValve/fileDateFormat
MBean: java.lang:name=Compressed Class Space,type=MemoryPool
java.lang:name=Compressed Class Space,type=MemoryPool/Usage/committed
java.lang:name=Compressed Class Space,type=MemoryPool/Usage/init
java.lang:name=Compressed Class Space,type=MemoryPool/Usage/max
java.lang:name=Compressed Class Space,type=MemoryPool/Usage/used
java.lang:name=Compressed Class Space,type=MemoryPool/PeakUsage/committed
java.lang:name=Compressed Class Space,type=MemoryPool/PeakUsage/init
java.lang:name=Compressed Class Space,type=MemoryPool/PeakUsage/max
java.lang:name=Compressed Class Space,type=MemoryPool/PeakUsage/used
java.lang:name=Compressed Class Space,type=MemoryPool/MemoryManagerNames
java.lang:name=Compressed Class Space,type=MemoryPool/UsageThreshold
java.lang:name=Compressed Class Space,type=MemoryPool/UsageThresholdExceeded
java.lang:name=Compressed Class Space,type=MemoryPool/UsageThresholdCount
java.lang:name=Compressed Class Space,type=MemoryPool/UsageThresholdSupported
MBean: java.lang:type=Memory
java.lang:type=Memory/ObjectPendingFinalizationCount
java.lang:type=Memory/HeapMemoryUsage/committed
java.lang:type=Memory/HeapMemoryUsage/init
java.lang:type=Memory/HeapMemoryUsage/max
java.lang:type=Memory/HeapMemoryUsage/used
java.lang:type=Memory/NonHeapMemoryUsage/committed
java.lang:type=Memory/NonHeapMemoryUsage/init
java.lang:type=Memory/NonHeapMemoryUsage/max
java.lang:type=Memory/NonHeapMemoryUsage/used
java.lang:type=Memory/Verbose
java.lang:type=Memory/ObjectName
MBean: java.lang:name=G1 Eden Space,type=MemoryPool
java.lang:name=G1 Eden Space,type=MemoryPool/Usage/committed
java.lang:name=G1 Eden Space,type=MemoryPool/Usage/init
java.lang:name=G1 Eden Space,type=MemoryPool/Usage/max
java.lang:name=G1 Eden Space,type=MemoryPool/Usage/used
java.lang:name=G1 Eden Space,type=MemoryPool/PeakUsage/committed
java.lang:name=G1 Eden Space,type=MemoryPool/PeakUsage/init
java.lang:name=G1 Eden Space,type=MemoryPool/PeakUsage/max
java.lang:name=G1 Eden Space,type=MemoryPool/PeakUsage/used
java.lang:name=G1 Eden Space,type=MemoryPool/MemoryManagerNames
Ejecución manual
El formato de la ejecución del plugin es el siguiente:
./pandora_jmx --conf < ruta al fichero de configuración > --target_instances < fichero de configuración de instancias > --target_metrics < fichero de métricas>
Por ejemplo:
./pandora_jmx --conf /usr/share/pandora_server/util/plugin/jmx.conf --target_instances /usr/share/pandora_server/util/plugin/instances.conf --target_metrics /usr/share/pandora_server/util/plugin/metrics.conf
La ejecución devolverá una salida en formato JSON con información sobre la ejecución, y generará un fichero XML para cada agente monitorizado que enviará al servidor de Pandora FMS por el método de transferencia indicado en la configuración.
Discovery
Este plugin puede integrarse con el Discovery de Pandora FMS.
Para ello se debe cargar el paquete ".disco" que puede descargar desde la librería de Pandora FMS:
https://pandorafms.com/library/
Una vez cargado, se podrán monitorizar entornos de JMX creando tareas de Discovery desde la sección Management > Discovery > App
Para cada tarea se solicitarán los siguientes datos mínimos:
- Instances target strings: Url de cada instancia que se pretende monitorizar.
Por ejemplo:
service:jmx:rmi:///jndi/rmi://172.17.0.1:9090/jmxrmi
service:jmx:rmi:///jndi/rmi://172.12.0.23:9090/jmxrmi
service:jmx:rmi:///jndi/rmi://172.11.0.1:9090/jmxrmi
- JMX Url : Url de instancia de la que se descubriran los mbeans (las metricas de los mbeans seleccionados se intentaran obtener para todos los targets de instancia especificados)
- Auth basic: Marcar para habilitar autenticacion básica
- User: Usuario
- Password : Contraseña del usuario
En la siguiente pantalla se podrán seleccionar los Mbeans descubiertos, los atributos de cada mbean seleccionado se monitorizaran.
Y en la siguiente pantalla :
- Max threads: Número de hilos a usar en la tarea.
- Use prefix for modules: Marcar para poder especificar un prefijo para los módulos
- Prefix for modules created: Prefijo para los módulos creados
- Use prefix for agent: Marcar para poder especificar un prefijo para los módulos
- Prefix for agents created: Prefijo para los agentes creados
- Tentacle IP: Dirección de tentacle.
- Tentacle port: Puerto de tentacle.
- Tentacle extra options : Opciones extra de tentacle.
- Regexp to filter modules: Marcar para poder especificar un patron de regexp que creara solo las métricas que coincidan con el patron, puedes ver las métricas de cada Mbean listadas en el apartado "Metricas".
- Allow regexp: Patron de regexp que creara solo las métricas que coincidan con el patron, puedes ver las métricas de cada Mbean listadas en el apartado "Metricas".
- Regexp to discard modules: Marcar para poder especificar un patron de regexp que descartará las métricas que coincidan con el patron, puedes ver las métricas de cada Mbean listadas en el apartado "Metricas".
- Deny regexp: Patron de regexp que descartará las métricas que coincidan con el patron, puedes ver las métricas de cada Mbean listadas en el apartado "Metricas".
- Custom Metrics: Métricas personalizadas a monitorizar (independiente de los Mbeans seleccionados, si la metrica ya existe en un Mbean seleccionado solo se creara una vez
- Rename default modules: Marcar para poder especificar un nuevo nombre en las métricas deseadas.
- Modules names: Nombre de la metrica que se quiera renombrar en el nombre del módulo Y nombre del módulo deseado para esa métrica separado por "|" , por ejemplo :
java.lang:name=CodeHeap 'non-nmethods',type=MemoryPool/PeakUsage/max | Memory.usage.max Catalina:type=Service/name | Catalina.service.name
Por cada línea se debe añadir un atributo y esto creará un modulo con esa estadística en Pandora. Si es necesario configurar umbrales, se deben especificar a la derecha del atributo, separado cada umbral por |. Ejemplo:
Métrica sin umbral
java.lang:type=Threading/ThreadCount
Métrica con umbral
java.lang:type=Threading/TotalStartedThreadCount|min_warning 30|min_critical 45
Las tareas completadas con éxito tendrán un resumen de ejecución con la siguiente información:
- Total agents : Número total de agentes generados por la tarea.
Agentes y módulos generados por el plugin
El plugin creará un agente, por instancia con el nombre que se le especifique, de no especificarse su nombre será el target definido para la instancia. Contendrá los módulos de cada estadística definida en el fichero de configuración y las estadísticas de cada Mbean seleccionado. Así, por ejemplo, la ejecución de este plugin contra las siguientes métricas:
java.lang:type=Threading/TotalThreadAllocatedBytes
java.lang:type=Threading/CurrentThreadAllocatedBytes
java.lang:type=Threading/ThreadAllocatedMemoryEnabled
java.lang:type=Threading/ThreadAllocatedMemorySupported
java.lang:type=Threading/ThreadCount
java.lang:type=Threading/TotalStartedThreadCount
java.lang:type=Threading/AllThreadIds
java.lang:type=Threading/CurrentThreadCpuTime
java.lang:type=Threading/CurrentThreadUserTime
java.lang:type=Threading/ThreadCpuTimeSupported
java.lang:type=Threading/ThreadCpuTimeEnabled
java.lang:type=Threading/ThreadContentionMonitoringEnabled
java.lang:type=Threading/ThreadContentionMonitoringSupported
java.lang:type=Threading/CurrentThreadCpuTimeSupported
java.lang:type=Threading/ObjectMonitorUsageSupported
java.lang:type=Threading/SynchronizerUsageSupported
java.lang:type=Threading/PeakThreadCount
java.lang:type=Threading/DaemonThreadCount
java.lang:type=Threading/ObjectName
Crearía los siguientes módulos :