PASOE Agent Telemetry
The PASOE Agent Telemetry WebApp can be downloaded from the Consultingwerk ESD as a .war-file.
It logs telemetry data about PASOE Agents into .ndjson-files.
Setup and Installation
To use the WebApp, place the .war-file in the PASOE’s webapps directory. The WebApp needs to be configured. To do this, add a file smart-telemetry.properties to the PASOE’s conf directory. The following is an example of how this file should look like:
{
"interval": 10,
"ablapps":
[
{ "name": "smartpas_stream",
"output": "${CATALINA_BASE}\\ablapps\\smartpas_stream\\telemetry-session\\smartpas_stream.ndjson"
},
{ "name": "guiauth",
"output": "${CATALINA_BASE}\\ablapps\\guiauth\\telemetry-session\\guiauth.ndjson"
}
],
"loglevel": "Normal"
}
interval: The time in seconds between samples.
ablapps: The list of apps for which to log telemetry data.
name: The name of an abl app for which to log data
output: The path to the .ndjson-file to which to write the log data. ${CATALINA_BASE} can be used here to refer to the PASOE’s base directory.
loglevel: This is an optional property to define how much information needs to be written to
${CATALINA_BASE}/logs/pasoe-agent-telementry.log
. The possible values are:
loglevel | Description |
---|---|
Debug | Also writes the config as JSON, each line of the .ndjson and information about entering or returning from a method. |
Verbose | Includes output related to each line written to an .ndjson file. |
Normal | Is the default value. This would also include config and startup/shutdown info. |
Minimal | Only Output related to errors and warnings will be written. |
None | No output will be written. |
Each loglevel also writes the messages that the levels below would write (i.e. with Verbose the messages for Normal and Minimal are written as well).
Usage
After the WebApp is started and configured, it should log the telemetry data. The telemetry data is written as JsonObjects with one object per line. If one of those lines were formatted, it would look like this:
{
"totalSessionMemory": 952100034,
"ablApplication": "smartpas_stream",
"metrics": {
"maxConcurrentClients": "0",
"concurrentConnectedClients": "0",
"numReserveABLSessionTimeouts": "0",
"writeErrors": "0",
"reads": "0",
"numReserveABLSessionWaits": "0",
"startTime": "2025-02-27T11:41:26.451+01:00",
"requests": "0",
"type": "OE_BROKER",
"writes": "0",
"readErrors": "0",
"accessTime": "2025-02-27T11:41:33.281+01:00"
},
"sampleTime": "27022025 11:41:32:878",
"agents": [
{
"agentId": "bEJ9j-xITRa7xojl5x-vjg",
"sessions": [
{
"SessionState": "IDLE",
"RequestsFailed": 0,
"SessionMemory": 476050017,
"StartTime": "2025-02-27T11:41:33.270-01:00",
"RequestsCompleted": 0,
"RequestsCompletedDelta": 0,
"SessionId": 4,
"RequestsFailedDelta": 0
},
{
"SessionState": "IDLE",
"RequestsFailed": 0,
"SessionMemory": 476050017,
"StartTime": "2025-02-27T11:41:33.270-01:00",
"RequestsCompleted": 0,
"RequestsCompletedDelta": 0,
"SessionId": 7,
"RequestsFailedDelta": 0
}
],
"sessionCount": 2,
"agentSessionMemory": 952100034,
"pid": "15752",
"state": "AVAILABLE"
}
]
}
totalSessionMemory: Is the sum of the agentSessionMemory of all sessions of the application.
ablApplication: Is the name of the ablapp that the data is logged for.
metrics: Contains the application metrics as reported by: https://docs.progress.com/de-DE/bundle/pas-for-openedge-reference/page/Get-metrics-for-an-ABL-application-query.html
sampleTime: Timestamp of the log entry
agents: Array of the agents of the application
Contains information returned by: https://docs.progress.com/de-DE/bundle/pas-for-openedge-reference/page/List-agents-with-session-metrics-query.html
agentSessionMemory: The sum of SessionMemory entries of the agents sessions
sessions: The sessions additionally contain the changes (Delta) of the RequestCompleted and RequestsFailed counts as compared to the previous entry.