1. Home
  2. GLU.Guide
  3. GLU DevOps
  4. GLU.Engine Management APIs

GLU.Engine Management APIs

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.

FieldDescriptionExample Value
ExchangesCompletedThis 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
ExchangesFailedThis 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
MaxProcessTimeThis 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
MeanProcessTimeThis is the average time over the period the GLU.Engine has been running for all transactions.55
MinProcessTimeThis is the fastest time for the transaction which took the maximise amount of time to process.31
Last processing timeThis is the time for the last transaction.34
Failures handledThis 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
RedeliveryThis 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
LastErrorThis is the last error which the Transaction received. GLU is still to recreate this metric.TO BE CONFIRMED
InFlightThis 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 212


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:

ParameterTypeDescriptionExample Value
NONETextNONEOBS : 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

ParameterTypeDescriptionExample Value
configuredLevelTextconfiguredLevel [DEBUG] | [ WARN] | [ERROR] | [TRACE] | [INFO]DescriptionOBS : 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

ParameterTypeDescriptionExample Value
configuredLevelTextconfiguredLevel [DEBUG] | [ WARN] | [ERROR] | [TRACE] | [INFO]DescriptionOBS : 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:

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request :

http://IP:SERVERPORT/actuator


Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : 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:

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request: http://IP:SERVERPORT/actuator/metrics/process.uptime

Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request: http://IP:SERVERPORT/actuator/env/PID

Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request: http://IP:SERVERPORT/actuator/env/pid


Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request: http://IP:SERVERPORT:9224/actuator/env/


Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONE OBS : NONE

Sample Request: http://IP:SERVERPORT:9224/actuator/metrics/


Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request:

http://IP:SERVERPORT/actuator/jolokia/read/org.apache.camel:context=*,type=routes,name=”api.GetCustomerTrx”

Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request:

http://IP:SERVERPORT/actuator/jolokia/exec/global.glu.jmx:name=USSDSession/getNumberSessions


Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : NONE

Sample Request:

http://Template:IP:9224/actuator/jolokia/exec/global.glu.jmx:name=USSDSession/getNumberConcurrentSessions

Response Parameters:

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

ParameterTypeDescriptionExample Value
NONETextNONEOBS : 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…”}

Was this article helpful?

Related Articles

Fill the form and we’ll contact you shortly

    I agree with

    cookies
    We uses cookies to make your experience on this website better. Learn more
    Accept cookies