JMX provides a standard mechanism to monitor and manage applications. By default your GLU.Engines will expose management endpoints as JMX MBeans under the org.springframework.boot domain. If your application contains more than one Spring ApplicationContext you may find that names clash. To solve this you can set the endpoints.jmx.unique-names in the GLU ‘Application Settings’ property to ‘true’ so that MBean names are always unique.
GET /actuator
GET /actuator/info
GET /actuator/env/
GET actuator/jolokia/read/org.apache.camel:context=*,type=routes,name=”api.*”
GET /actuator/engineinfo
POST /actuator/loggers/global.glu body configuredLevel -> DEBUG/INFO
POST /actuator/loggers/org.apache.came body configuredLevel -> DEBUG/INFO
If you don’t want to expose endpoints over JMX you can set the endpoints.jmx.enabled property to ‘false’.
Jolokia is a JMX-HTTP bridge giving an alternative method of accessing JMX beans. With Spring Boot you can use your application.properties, simply prefix the parameter with jolokia.config.debug property to ‘true’. For additional detail on JMX monitoring see this resource.
Actuator endpoints allow you to monitor and interact with your GLU application. GLU.Engines includes a number of built-in endpoints and you can also add your own. For example, the health endpoint provides basic application health information on your Application. Click here or additional detail.
Using JMX Metrics
If you are using the JMX metrics, they are accessed via the server port. They can be used to query the GLU.Engine system and to get detail on the context of what is running. It is also possible to use these to change settings in the GLU.Engine.
Jolokia is an open-source project that provides a JMX-HTTP bridge, allowing JMX-style management and monitoring to be performed over HTTP. It allows access to JMX MBeans (Java Management Extensions managed beans) remotely, without the need for a JMX connector.
Jolokia allows JMX-based monitoring and management tools to access MBeans through a REST-style HTTP API, instead of the traditional JMX connector. This provides a more secure, lightweight, and flexible way of accessing JMX information, as well as making it easier to integrate with modern DevOps tools and practices.
In short, Jolokia provides a way to access JMX MBeans remotely over HTTP, making it easier to integrate JMX-based monitoring and management into modern DevOps environments.

The server port needs to be provided in the call. If multiple GLU.Engines are running on the server, then each GLU.Engine must have a unique server port.
See Jolokai for the API requests provided through the Jolokia Client and the JMX hooks which runs along side the GLU JVM. All of these will be started as part of the GLU.Engine start process.
The following sections describe some of the basic JMX metrics which might be utilised.
Integration Transaction View
The Jolokia API can be refined to remove the information which is not used to show just the API information for the connectors which are visible in the GLU.Ware Integrations. The basic Jolokia API will show all the route information including route 1-4; however this is not relevant to most integrations.
To see only the APIs in the integration use this query:
http://IP:SERVERPORT/actuator/jolokia/read/org.apache.camel:context=,type=routes,name=”api.”
Replace IP with the IP address for the GLU.Engine server.
Replace SERVERPORT for the server port for the GLU.Engine.
Integration Transaction Metrics
For each Transaction configured into a GLU.Engine the following metrics are available, all times are in milliseconds.
Field | Description | Example Value |
---|---|---|
ExchangesCompleted | This is all the transactions which have passed through the integration which have deemed to be successful (i.e. transaction has not received a Client or Server Error) | 30 |
ExchangesFailed | This is the count of all the transactions which were failed and not handled, example of these are where maximum number of retries has been reached and the transaction fails. | 2 |
MaxProcessTime | This is the transactions time for the transaction which took the maximise amount of time to process, (This is important for setting the time out value for the connections.) | 72 |
MeanProcessTime | This is the average time over the period the GLU.Engine has been running for all transactions. | 55 |
MinProcessTime | This is the fastest time for the transaction which took the maximise amount of time to process. | 31 |
Last processing time | This is the time for the last transaction. | 34 |
Failures handled | This is the number of Failures which have been handled by the integration, if for instance a DB call failed due to “Incorrect arguments to sleep.”, and the error was trapped and passed back in the error response, this would be incremented. | 12 |
Redelivery | This counts the number of times a transaction has been sent as a retry. If the receiving end point is busy and the transaction times out it can be set up to retry. More on retries can be read at Connector Retry function. | 13 |
LastError | This is the last error which the Transaction received. GLU is still to recreate this metric. | TO BE CONFIRMED |
InFlight | This is the count of the number of transactions which the GLU.Engine is currently processing, this can be used to confirm the maximum transactions which are processed which is controlled by Throttle Type 2 | 12 |
JMX APIs
JMX APIs are a set of Java interfaces and classes used for building and accessing management and monitoring applications for Java applications.
JMX APIs allow developers to define and publish management and monitoring information about their applications, such as performance metrics, configuration settings, and status information. They also provide a standard way for management and monitoring applications to access this information.
JMX APIs are commonly used in enterprise applications for monitoring and managing application performance, detecting and diagnosing problems, and for configuring and tuning the application. They can also be used to monitor the performance and status of other system components, such as databases, web servers, and application servers.
API Health
This API can be used to indicated if a GLU.Engine is running. If the API is called it will return the following JSON payload if the GLU.Engine service is running. { status”:”UP” } If the GLU.Engine is not running an error will be returned. The server port needs to be provided in the call. The server port will map to the server port for the GLU.Engine. If multiple GLU.Engines are running on the server, then each GLU.Engine must have a unique server port. This is ONLY APPLICABLE to Integration Built Engines NOT Menu Built Engines.
Protocol: REST
Method: POST
Context Name: /actuator/health
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT/actuator/health
Sample Success Response: { “status”:”UP” }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API Changelogginglevel
This API can be used to change the logging level of a running GLU.Engine. If the GLU.Engine is not running an error will be returned. The server port needs to be provided in the call. The server port will map to the server port for the GLU.Engine. If multiple GLU.Engines are running on the server, then each GLU.Engine must have a unique server port. This is ONLY APPLICABLE to Integration Built Engines NOT Menu Built Engines.
Protocol: REST
Method: POST / GET
POST to set the logging level
GET to retrieve the level set
Context Name: /actuator/loggers/global.glu
Content Type: JSON
Request Parameters: body
Parameter | Type | Description | Example Value |
configuredLevel | Text | configuredLevel [DEBUG] | [ WARN] | [ERROR] | [TRACE] | [INFO]Description | OBS : configuredLevel |
Sample Request: http://IP:SERVERPORT/actuator/loggers/global.glu
Sample Success Response: 204 No Content response
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API Changelogginglevel Apache Camel
This API can be used to change the logging level of a the extra Apache Camel logs running from the GLU.Engine. If the GLU.Engine is not running an error will be returned. The server port needs to be provided in the call. The server port will map to the server port for the GLU.Engine. If multiple GLU.Engines are running on the server, then each GLU.Engine must have a unique server port. This is ONLY APPLICABLE to Integration Built Engines NOT Menu Built Engines.
Protocol: REST
Method: POST / GET
POST to set the logging level
GET to retrieve the level set
Context Name: /actuator/loggers/org.apache.camel
Content Type: JSON
Request Parameters: body
Parameter | Type | Description | Example Value |
configuredLevel | Text | configuredLevel [DEBUG] | [ WARN] | [ERROR] | [TRACE] | [INFO]Description | OBS : configuredLevel |
Sample Request: http://IP:SERVERPORT/actuator/loggers/org.apache.camel
Sample Success Response: { }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator
Description: This API can be used to return a list of the metrics which can be extracted.
Protocol: REST
Method: GET
Context Name: /actuator/
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request :
http://IP:SERVERPORT/actuator
Response Parameters:
Parameter | Type | Description | Example Value |
Sample Success Response
{ "_links": { "self": { "href": "http://3.232.188.148:9224/actuator", "templated": false }, "camelroutecontroller": { "href": "http://3.232.188.148:9224/actuator/camelroutecontroller", "templated": false }, "camelroutes": { "href": "http://3.232.188.148:9224/actuator/camelroutes", "templated": false }, "camelroutes-id-action": { "href": "http://3.232.188.148:9224/actuator/camelroutes/{id}/{action}", "templated": true }, "camelroutes-id": { "href": "http://3.232.188.148:9224/actuator/camelroutes/{id}", "templated": true }, "auditevents": { "href": "http://3.232.188.148:9224/actuator/auditevents", "templated": false }, "beans": { "href": "http://3.232.188.148:9224/actuator/beans", "templated": false }, "caches-cache": { "href": "http://3.232.188.148:9224/actuator/caches/{cache}", "templated": true }, "caches": { "href": "http://3.232.188.148:9224/actuator/caches", "templated": false }, "health": { "href": "http://3.232.188.148:9224/actuator/health", "templated": false }, "health-component": { "href": "http://3.232.188.148:9224/actuator/health/{component}", "templated": true }, "health-component-instance": { "href": "http://3.232.188.148:9224/actuator/health/{component}/{instance}", "templated": true }, "conditions": { "href": "http://3.232.188.148:9224/actuator/conditions", "templated": false }, "shutdown": { "href": "http://3.232.188.148:9224/actuator/shutdown", "templated": false }, "configprops": { "href": "http://3.232.188.148:9224/actuator/configprops", "templated": false }, "env-toMatch": { "href": "http://3.232.188.148:9224/actuator/env/{toMatch}", "templated": true }, "env": { "href": "http://3.232.188.148:9224/actuator/env", "templated": false }, "info": { "href": "http://3.232.188.148:9224/actuator/info", "templated": false }, "logfile": { "href": "http://3.232.188.148:9224/actuator/logfile", "templated": false }, "loggers": { "href": "http://3.232.188.148:9224/actuator/loggers", "templated": false }, "loggers-name": { "href": "http://3.232.188.148:9224/actuator/loggers/{name}", "templated": true }, "heapdump": { "href": "http://3.232.188.148:9224/actuator/heapdump", "templated": false }, "threaddump": { "href": "http://3.232.188.148:9224/actuator/threaddump", "templated": false }, "prometheus": { "href": "http://3.232.188.148:9224/actuator/prometheus", "templated": false }, "metrics": { "href": "http://3.232.188.148:9224/actuator/metrics", "templated": false }, "metrics-requiredMetricName": { "href": "http://3.232.188.148:9224/actuator/metrics/{requiredMetricName}", "templated": true }, "scheduledtasks": { "href": "http://3.232.188.148:9224/actuator/scheduledtasks", "templated": false }, "httptrace": { "href": "http://3.232.188.148:9224/actuator/httptrace", "templated": false }, "mappings": { "href": "http://3.232.188.148:9224/actuator/mappings", "templated": false }, "jolokia": { "href": "http://3.232.188.148:9224/actuator/jolokia", "templated": false } } }
Sample Error Response
{ "timestamp": "2021-03-09T10:20:05.050+0000", "status": 404, "error": "Not Found", "message": "No message available", "path": "/actuator/ll" }
API actuator/info
Description: This API can be used see the API up time, status and details such as version of camel.
Protocol: REST
Method: GET
Context Name: /actuator/health
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT/actuator/info
Sample Success Response:
{ "camel.name": "camel-1", "camel.version": "2.25.0", "camel.uptime": "1 hour 40 minutes", "camel.uptimeMillis": 6003034, "camel.status": "Started" }
Sample Error Response:
{ "timestamp": "2021-03-09T11:19:53.549+0000", "status": 404, "error": "Not Found", "message": "No message available", "path": "/actuator/info/camel.status" }
API actuator/metrics/process.uptime
Description: This API can be used see the uptime of the java machine supporting the GLU.Engine.
Protocol: REST
Method: GET
Context Name: /actuator/health
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT/actuator/metrics/process.uptime
Response Parameters:
Parameter | Type | Description | Example Value |
See below |
Sample Success Response:
{ "name": "process.uptime", "description": "The uptime of the Java virtual machine", "baseUnit": "seconds", "measurements": [ { "statistic": "VALUE", "value": 1329.218 } ], "availableTags": [] }
Sample Error Response:
{ "timestamp": "2021-03-09T11:19:53.549+0000", "status": 404, "error": "Not Found", "message": "No message available", "path": "/actuator/info/camel.status" }
API actuator/metrics/process.start.time
Description: This API can be used to provide the start time of the supporting process.
Protocol: REST
Method: GET
Context Name: /actuator/health
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT/actuator/env/PID
Response Parameters:
Parameter | Type | Description | Example Value |
See below |
Sample Success Response:
{ "property": { "source": "systemProperties", "value": "1" }, "activeProfiles": [], "propertySources": [ { "name": "server.ports" }, { "name": "commandLineArgs" }, { "name": "servletConfigInitParams" }, { "name": "servletContextInitParams" }, { "name": "systemProperties", "property": { "value": "1" } }, { "name": "systemEnvironment" }, { "name": "random" }, { "name": "applicationConfig: [classpath:/application.yml]" }, { "name": "Management Server" } ] }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API Actuator/env/pid
Description: This API can be used to return the process id, port details and other details about the Java engine running the GLU.Engine.
Protocol: REST
Method: GET
Context Name: /actuator/env/pid
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT/actuator/env/pid
Response Parameters:
Parameter | Type | Description | Example Value |
See Below |
Sample Success Response:
{ "property": { "source": "systemProperties", "value": "1" }, "activeProfiles": [], "propertySources": [ { "name": "server.ports" }, { "name": "commandLineArgs" }, { "name": "servletConfigInitParams" }, { "name": "servletContextInitParams" }, { "name": "systemProperties", "property": { "value": "1" } }, { "name": "systemEnvironment" }, { "name": "random" }, { "name": "applicationConfig: [classpath:/application.yml]" }, { "name": "Management Server" } ] }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/env
Description: This API can be used Metrics about the env where GE is running.
Protocol: REST
Method: GET
Context Name: /actuator/env
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT:9224/actuator/env/
Response Parameters:
Parameter | Type | Description | Example Value |
See Below |
Sample Success Response:
{ "activeProfiles": [], "propertySources": [ { "name": "server.ports", "properties": { "local.server.port": { "value": 9195 } } }, { "name": "commandLineArgs", "properties": { "logging.config": { "value": "./engine/config/loggingSetting.xml" } } }, { "name": "servletContextInitParams", "properties": {} }, { "name": "systemProperties", "properties": { "java.runtime.name": { "value": "OpenJDK Runtime Environment" }, "java.protocol.handler.pkgs": { "value": "org.springframework.boot.loader" }, "sun.boot.library.path": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64" }, "java.vm.version": { "value": "25.111-b14" }, "java.vm.vendor": { "value": "Oracle Corporation" }, "java.vendor.url": { "value": "http://java.oracle.com/" }, "path.separator": { "value": ":" }, "java.vm.name": { "value": "OpenJDK 64-Bit Server VM" }, "file.encoding.pkg": { "value": "sun.io" }, "user.country": { "value": "US" }, "sun.java.launcher": { "value": "SUN_STANDARD" }, "sun.os.patch.level": { "value": "unknown" }, "PID": { "value": "1" }, "java.vm.specification.name": { "value": "Java Virtual Machine Specification" }, "user.dir": { "value": "/" }, "java.runtime.version": { "value": "1.8.0_111-internal-alpine-r0-b14" }, "java.awt.graphicsenv": { "value": "sun.awt.X11GraphicsEnvironment" }, "java.endorsed.dirs": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre/lib/endorsed" }, "os.arch": { "value": "amd64" }, "java.io.tmpdir": { "value": "/tmp" }, "line.separator": { "value": "\n" }, "java.vm.specification.vendor": { "value": "Oracle Corporation" }, "os.name": { "value": "Linux" }, "sun.jnu.encoding": { "value": "UTF-8" }, "jetty.git.hash": { "value": "afcf563148970e98786327af5e07c261fda175d3" }, "spring.beaninfo.ignore": { "value": "true" }, "java.library.path": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib" }, "java.specification.name": { "value": "Java Platform API Specification" }, "java.class.version": { "value": "52.0" }, "sun.management.compiler": { "value": "HotSpot 64-Bit Tiered Compilers" }, "os.version": { "value": "5.4.0-1038-aws" }, "LOG_FILE": { "value": "gluware" }, "user.home": { "value": "/root" }, "catalina.useNaming": { "value": "false" }, "user.timezone": { "value": "GMT" }, "java.awt.printerjob": { "value": "sun.print.PSPrinterJob" }, "file.encoding": { "value": "UTF-8" }, "java.specification.version": { "value": "1.8" }, "catalina.home": { "value": "/tmp/tomcat.5232966415223648616.9195" }, "java.class.path": { "value": "/light-1.0-SNAPSHOT.jar" }, "user.name": { "value": "root" }, "java.vm.specification.version": { "value": "1.8" }, "sun.java.command": { "value": "******" }, "java.home": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre" }, "sun.arch.data.model": { "value": "64" }, "user.language": { "value": "en" }, "java.specification.vendor": { "value": "Oracle Corporation" }, "awt.toolkit": { "value": "sun.awt.X11.XToolkit" }, "java.vm.info": { "value": "mixed mode" }, "java.version": { "value": "1.8.0_111-internal" }, "java.ext.dirs": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre/lib/ext:/usr/java/packages/lib/ext" }, "sun.boot.class.path": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre/lib/resources.jar:/usr/lib/jvm/java-1.8-openjdk/jre/lib/rt.jar:/usr/lib/jvm/java-1.8-openjdk/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-1.8-openjdk/jre/lib/jsse.jar:/usr/lib/jvm/java-1.8-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-1.8-openjdk/jre/lib/charsets.jar:/usr/lib/jvm/java-1.8-openjdk/jre/lib/jfr.jar:/usr/lib/jvm/java-1.8-openjdk/jre/classes" }, "java.awt.headless": { "value": "true" }, "java.vendor": { "value": "Oracle Corporation" }, "net.sf.ehcache.skipUpdateCheck": { "value": "true" }, "catalina.base": { "value": "/tmp/tomcat.5232966415223648616.9195" }, "FILE_LOG_PATTERN": { "value": "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n" }, "com.zaxxer.hikari.pool_number": { "value": "1" }, "java.security.egd": { "value": "file:/dev/./urandom" }, "file.separator": { "value": "/" }, "java.vendor.url.bug": { "value": "http://bugreport.sun.com/bugreport/" }, "sun.io.unicode.encoding": { "value": "UnicodeLittle" }, "sun.cpu.endian": { "value": "little" }, "LOG_PATH": { "value": "log" }, "sun.cpu.isalist": { "value": "" } } }, { "name": "systemEnvironment", "properties": { "PATH": { "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin", "origin": "System Environment Property \"PATH\"" }, "HOSTNAME": { "value": "light", "origin": "System Environment Property \"HOSTNAME\"" }, "JAVA_ALPINE_VERSION": { "value": "8.111.14-r0", "origin": "System Environment Property \"JAVA_ALPINE_VERSION\"" }, "LD_LIBRARY_PATH": { "value": "/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64", "origin": "System Environment Property \"LD_LIBRARY_PATH\"" }, "NLSPATH": { "value": "/usr/dt/lib/nls/msg/%L/%N.cat", "origin": "System Environment Property \"NLSPATH\"" }, "JAVA_HOME": { "value": "/usr/lib/jvm/java-1.8-openjdk", "origin": "System Environment Property \"JAVA_HOME\"" }, "XFILESEARCHPATH": { "value": "/usr/dt/app-defaults/%L/Dt", "origin": "System Environment Property \"XFILESEARCHPATH\"" }, "JAVA_VERSION": { "value": "8u111", "origin": "System Environment Property \"JAVA_VERSION\"" }, "LANG": { "value": "C.UTF-8", "origin": "System Environment Property \"LANG\"" }, "HOME": { "value": "/root", "origin": "System Environment Property \"HOME\"" } } }, { "name": "applicationConfig: [classpath:/application.yml]", "properties": { "logging.config": { "value": "engine/config/loggingSetting.xml", "origin": "class path resource [application.yml]:1:17" }, "docker.url": { "value": "docker.io", "origin": "class path resource [application.yml]:3:13" }, "logging.fileNamePattern": { "value": "yyyy-MM-dd HH:mm:ss", "origin": "class path resource [application.yml]:4:26" }, "jolokia.config.debug": { "value": true, "origin": "class path resource [application.yml]:5:23" }, "management.endpoint.shutdown.enabled": { "value": true, "origin": "class path resource [application.yml]:6:39" }, "spring.jmx.enabled": { "value": true, "origin": "class path resource [application.yml]:7:21" }, "docker.username": { "value": "gluglobal", "origin": "class path resource [application.yml]:8:18" }, "logging.path": { "value": "log", "origin": "class path resource [application.yml]:9:15" }, "management.endpoints.jmx.domain": { "value": "glu-ware", "origin": "class path resource [application.yml]:10:34" }, "docker.skip": { "value": false, "origin": "class path resource [application.yml]:11:14" }, "server.port": { "value": 9195, "origin": "class path resource [application.yml]:12:14" }, "docker.password": { "value": "******", "origin": "class path resource [application.yml]:13:18" }, "docker.image.repository": { "value": "gluglobal", "origin": "class path resource [application.yml]:14:26" }, "logging.level.root": { "value": "INFO", "origin": "class path resource [application.yml]:15:21" }, "logging.file": { "value": "gluware", "origin": "class path resource [application.yml]:16:15" }, "logging.pattern.file": { "value": "%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - %msg%n", "origin": "class path resource [application.yml]:17:23" }, "logging.level.org.springframework": { "value": "WARN", "origin": "class path resource [application.yml]:18:36" }, "logging.level.org.hibernate": { "value": "ERROR", "origin": "class path resource [application.yml]:19:30" }, "logging.level.o.e": { "value": "WARN", "origin": "class path resource [application.yml]:20:20" }, "logging.level.o.e.jetty.server": { "value": "WARN", "origin": "class path resource [application.yml]:21:33" }, "logging.level.org.apache.camel": { "value": "DEBUG", "origin": "class path resource [application.yml]:22:33" }, "logging.level.global.glu": { "value": "DEBUG", "origin": "class path resource [application.yml]:23:27" }, "jetty.port60678": { "value": 8082, "origin": "class path resource [application.yml]:25:18" }, "jetty.host60678": { "value": "0.0.0.0", "origin": "class path resource [application.yml]:26:18" }, "docker.serviceName": { "value": "light", "origin": "class path resource [application.yml]:27:22" }, "spring.mvc.view.prefix": { "value": "/jsp/", "origin": "class path resource [application.yml]:30:25" }, "management.endpoint.metrics.enabled": { "value": true, "origin": "class path resource [application.yml]:33:38" }, "management.endpoints.web.exposure.include": { "value": "*", "origin": "class path resource [application.yml]:34:44" }, "management.endpoint.prometheus.enabled": { "value": true, "origin": "class path resource [application.yml]:35:41" }, "management.metrics.export.prometheus.enabled": { "value": true, "origin": "class path resource [application.yml]:36:47" } } } ] }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/metrics
Description: This API can be used to give Metric about the JVM and JDBC, tomcat…
Protocol: REST
Method: GET
Context Name: /actuator/metrics
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request: http://IP:SERVERPORT:9224/actuator/metrics/
Response Parameters:
Parameter | Type | Description | Example Value |
See below |
Sample Success Response:
{ "names": [ "jvm.memory.max", "jvm.threads.states", "process.files.max", "jvm.gc.memory.promoted", "CamelRoutePolicy", "system.load.average.1m", "http.server.requests", "jvm.memory.used", "jvm.gc.max.data.size", "jdbc.connections.max", "jdbc.connections.min", "jvm.gc.pause", "jvm.memory.committed", "system.cpu.count", "logback.events", "tomcat.global.sent", "jvm.buffer.memory.used", "tomcat.sessions.created", "jvm.threads.daemon", "system.cpu.usage", "jvm.gc.memory.allocated", "tomcat.global.request.max", "hikaricp.connections.idle", "hikaricp.connections.pending", "tomcat.global.request", "tomcat.sessions.expired", "hikaricp.connections", "jvm.threads.live", "jvm.threads.peak", "tomcat.global.received", "hikaricp.connections.active", "hikaricp.connections.creation", "process.uptime", "tomcat.sessions.rejected", "process.cpu.usage", "tomcat.threads.config.max", "jvm.classes.loaded", "hikaricp.connections.max", "hikaricp.connections.min", "jvm.classes.unloaded", "tomcat.global.error", "tomcat.sessions.active.current", "tomcat.sessions.alive.max", "jvm.gc.live.data.size", "hikaricp.connections.usage", "tomcat.threads.current", "hikaricp.connections.timeout", "process.files.open", "jvm.buffer.count", "jvm.buffer.total.capacity", "tomcat.sessions.active.max", "hikaricp.connections.acquire", "tomcat.threads.busy", "process.start.time" ] }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/jolokia/read
Description: This API can be used to give metrics for specific endpoints.
Protocol: REST
Method: GET
Context Name: /actuator/read
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request:
http://IP:SERVERPORT/actuator/jolokia/read/org.apache.camel:context=*,type=routes,name=”api.GetCustomerTrx”
Response Parameters:
Parameter | Type | Description | Example Value |
See below |
Sample Success Response:
{ "request": { "mbean": "org.apache.camel:context=*,name=\"api.GetCustomerTrx\",type=routes", "type": "read" }, "stacktrace": "javax.management.InstanceNotFoundException: No MBean with pattern org.apache.camel:context=*,type=routes,name=\"api.GetCustomerTrx\" found for reading attributes\n\tat org.jolokia.handler.ReadHandler.searchMBeans(ReadHandler.java:160)\n\tat org.jolokia.handler.ReadHandler.fetchAttributesForMBeanPattern(ReadHandler.java:126)\n\tat org.jolokia.handler.ReadHandler.doHandleRequest(ReadHandler.java:116)\n\tat org.jolokia.handler.ReadHandler.doHandleRequest(ReadHandler.java:37)\n\tat org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:161)\n\tat org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:156)\n\tat org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99)\n\tat org.jolokia.backend.BackendManager.callRequestDispatcher(BackendManager.java:429)\n\tat org.jolokia.backend.BackendManager.handleRequest(BackendManager.java:158)\n\tat org.jolokia.http.HttpRequestHandler.executeRequest(HttpRequestHandler.java:197)\n\tat org.jolokia.http.HttpRequestHandler.handleGetRequest(HttpRequestHandler.java:86)\n\tat org.jolokia.http.AgentServlet$4.handleRequest(AgentServlet.java:470)\n\tat org.jolokia.http.AgentServlet.handleSecurely(AgentServlet.java:350)\n\tat org.jolokia.http.AgentServlet.handle(AgentServlet.java:321)\n\tat org.jolokia.http.AgentServlet.doGet(AgentServlet.java:277)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:634)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:741)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114)\n\tat org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n\tat org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118)\n\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\n\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)\n\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)\n\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)\n\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)\n\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)\n\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)\n\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.lang.Thread.run(Thread.java:745)\n", "error_type": "javax.management.InstanceNotFoundException", "error": "javax.management.InstanceNotFoundException : No MBean with pattern org.apache.camel:context=*,type=routes,name=\"api.GetCustomerTrx\" found for reading attributes", "status": 404 }
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/jolokia/exec getNumberSessions
Description: This API can be used to give metrics for specific number of Session.
Protocol: REST
Method: GET
Context Name: /actuator/jolokia/exec
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request:
http://IP:SERVERPORT/actuator/jolokia/exec/global.glu.jmx:name=USSDSession/getNumberSessions
Response Parameters:
Parameter | Type | Description | Example Value |
See Below |
Sample Success Response:
{"request":{"mbean":"org.apache.camel:context=*,name=\"api.GetCustomerTrx\",type=routes","type":"read"},"stacktrace":"javax.management.InstanceNotFoundException: No MBean with pattern org.apache.camel:context=*,type=routes,name=\"api.GetCustomerTrx\" found for reading attributes\n\tat org.jolokia.handler.ReadHandler.searchMBeans(ReadHandler.java:160)\n\tat .... java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.lang.Thread.run(Thread.java:745)\n","error_type":"javax.management.InstanceNotFoundException","error":"javax.management.InstanceNotFoundException : No MBean with pattern org.apache.camel:context=*,type=routes,name=\"api.GetCustomerTrx\" found for reading attributes","status":404}
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/jolokia/exec getNumberConcurrentSessions
Description: This API can be used to give metrics for specific Concurrent tSessions.
Protocol: REST
Method: GET
Context Name: /actuator/jolokia/exec
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request:
http://Template:IP:9224/actuator/jolokia/exec/global.glu.jmx:name=USSDSession/getNumberConcurrentSessions
Response Parameters:
Parameter | Type | Description | Example Value |
Sample Success Response:
{"request":{"mbean":"org.apache.camel:context=*,name=\"api.GetCustomerTrx\",type=routes","type":"read"},"stacktrace":"javax.management.InstanceNotFoundException: No MBean with pattern org.apache.camel:context=*,type=routes,name=\"api.GetCustomerTrx\" found for reading attributes\n\tat ......... org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\tat java.lang.Thread.run(Thread.java:745)\n","error_type":"javax.management.InstanceNotFoundException","error":"javax.management.InstanceNotFoundException : No MBean with pattern org.apache.camel:context=*,type=routes,name=\"api.GetCustomerTrx\" found for reading attributes","status":404}
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/jolokia/exec getNumberDroppedSessions
Description: This API can be used to give metrics for specific Dropped Sessions.
Protocol: REST
Method: GET
Context Name: /actuator/jolokia/exec
Content Type: JSON
Request Parameters:
Parameter | Type | Description | Example Value |
NONE | Text | NONE | OBS : NONE |
Sample Request:
http://IP:SERVERPORT/actuator/jolokia/read/org.apache.camel:context=*,type=routes,name=”api.GetCustomerTrx”
Sample Success Response:
http://Template:IP:9224/actuator/jolokia/exec/global.glu.jmx:name=USSDSession/getNumberDroppedSessions
Sample Error Response: (7) Failed to connect to localhost port 9195: Connection refused
API actuator/engineinfo
Description: This API can be used to collect information about the GLU.Engine.
Protocol: REST
Method: GET
Context Name: /actuator/jolokia/exec
Content Type: JSON
http://IP:PORT/actuator/engineinfo
Sample Success Response
{ "client": "GLU Test CODE : [10482]", "glu_engine": "sticky_connectors", "glu_engine_version": "1.1-SNAPSHOT", "integration_spec_name": "Sticky Connectors 1.9.13", "menu_spec_name": "There is NO Menu Builder", "build_created_date": "Wed, 28 Jul 2021 19:24:30 +0200", "environment": "docker", "library_version": "1.9.17", "build_ref": "2021072819243030", "original_logging_level": null, "actual_logging_level": "DEBUG" }
The build_ref is same value as shown in Download Build page in the Build Manager in console.

Sample Error Response:
{ "timestamp": "2021-07-29T13:07:08.058+0000", "status": 404, "error": "Not Found", "message": "No message available", "path": "/actuator/engineinfos" }
API actuator/shutdown
Description: This will shut down the GLU process. Use with caution. It is possible to disable this API in the GLU.Engine Settings, see GLU.Engine Settings.
Protocol: REST
Method: POST
Context Name: /actuator/shutdown
Content Type: JSON
Sample Request: http://IP:PORT/actuator/shutdown
Response Parameters: {“message”:”Shutting down, bye…”}