# JMX Discovery

# 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

<p class="callout warning">**Se requiere Java en el sistema que ejecuta el plugin** </p>

**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**

<table border="1" id="bkmrk---conf-ruta-al-archi"><tbody><tr><td>--conf</td><td>Ruta al archivo de configuración</td></tr></tbody></table>

**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

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/scaled-1680-/b2mimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/b2mimage.png)

**Métrica con umbral**

java.lang:type=Threading/TotalStartedThreadCount|min\_warning 30|min\_critical 45

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/scaled-1680-/p0Jimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/p0Jimage.png)

**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/](https://pandorafms.com/library/)

Una vez cargado, se podrán monitorizar entornos de JMX creando tareas de *Discovery* desde la sección *Management &gt; Discovery &gt; 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

[![Captura desde 2026-02-05 16-22-08.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-02/scaled-1680-/captura-desde-2026-02-05-16-22-08.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-02/captura-desde-2026-02-05-16-22-08.png)

En la siguiente pantalla se podrán seleccionar los Mbeans descubiertos, los atributos de cada mbean seleccionado se monitorizaran.

[![Captura desde 2026-01-22 16-58-22.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/scaled-1680-/captura-desde-2026-01-22-16-58-22.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/captura-desde-2026-01-22-16-58-22.png)

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

[![Captura desde 2026-01-22 17-17-19.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/scaled-1680-/captura-desde-2026-01-22-17-17-19.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/captura-desde-2026-01-22-17-17-19.png)

- **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".

[![Captura desde 2026-01-22 17-17-58.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/scaled-1680-/captura-desde-2026-01-22-17-17-58.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/captura-desde-2026-01-22-17-17-58.png)

- **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
    ```

[![Captura desde 2026-01-22 17-18-27.png](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/scaled-1680-/captura-desde-2026-01-22-17-18-27.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2026-01/captura-desde-2026-01-22-17-18-27.png)

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

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/scaled-1680-/b2mimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/b2mimage.png)

**Métrica con umbral**

java.lang:type=Threading/TotalStartedThreadCount|min\_warning 30|min\_critical 45

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/scaled-1680-/p0Jimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-06/p0Jimage.png)

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.

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2024-03/scaled-1680-/i97image.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2024-03/i97image.png)

# 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 :

[![image.png](https://pandorafms.com/guides/public/uploads/images/gallery/2025-05/scaled-1680-/MUqimage.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2025-05/MUqimage.png)