PAS for OpenEdge allows for the collection of runtime metrics for the Session Manager and the ABL web application through the collectMetrics property in the openedge.properties file.

Metrics can be collected in the form of counts and times that are gathered over a period of time. Anything that is valid only for a snapshot of time is not a metric. Examples of metrics can be, for example:
  • Number of hits to the web application
  • Average response time
  • Number of fatal errors

Collecting metrics, especially time-based metrics, can be expensive for system resources. The openedge.properties file lets administrators enable or disable the collection of time-based and count-based metrics.

This article describes how to configure the collect metrics functionality in PAS for OpenEdge for both the Session Manager and ABL web applications.

Note: All the time metrics are collected in milliseconds.

Enable collect metrics

Both the Session Manager and ABL web applications enable collecting metrics using the openedge.properties file. Both properties support the following values for collecting metrics:

        collectMetrics= 0 - disable the collection of metrics.
        1 - enable the collection of count-based metrics.
        2 - enable the collection of time-based metrics.
        3 - enable the collection of both count-based and time-based metrics. 
       

Configure Session Manager runtime metrics

Session Manager runtime metrics represent the metrics of the ABL application. Each PAS for OpenEdge instance contains a default ABL application in the /ablapps directory with the same name as the instance (for example, oepas1 ).

To configure the Session Manager to collect runtime metrics for the ABL application, perform the following steps:
  1. Open the openedge.properties file for the target PAS for OpenEdge instance.
  2. Under the [AppServer] section, change the value of collectMetrics to the appropriate value ( 1 , 2 , or 3 ).
  3. Restart the PAS for OpenEdge instance.
  4. View the Session Manager metrics using the oemanager REST API or OEJMX query. For more information, see the following topics:

    You can also reset the runtime metrics using the Reset runtime metrics REST API or OEJMX Reset metrics for an ABL application query in PAS for OpenEdge Administration Tools Reference.

Session Manager metrics

Setting collectMetrics to 1 returns the following (count-based) metrics:
Session Manager count metric Description
requests Total number of requests to the session.
writeErrors Number of errors that occurred during writing a request to the agent.
reads Number of times a response was read by the session from the agent.
concurrentConnectedClients Number of clients connected at a particular time.
writes Number of times requests were written by the session on the agent.
maxConcurrentClients Maximum number of concurrent clients.
readErrors Number of errors that occurred while reading a response from the agent.
numReserveABLSessionTimeouts Number of timeouts that occurred while reserving a local ABL session.
numReserveABLSessionWaits Number of waits that occurred while reserving a local ABL session.
Setting collectMetrics to 2 returns the following (time-based) metrics:
Session Manager time metric Description
maxAgentReadTime Maximum time to read a response from the agent.
avgReserveABLSessionWaitTime Average time that a reserved ABL session had to wait before executing.
totReserveABLSessionWaitTime Total time that reserved ABL sessions had to wait before executing.
stdDevAgentReadTime Standard deviation of the time taken to read a response from the agent.
maxReserveABLSessionWaitTime Maximum time that a reserved ABL session had to wait before executing.
maxConcurrentClients Maximum number of concurrent clients.
avgAgentReadTime Average time to read a response from the agent.
minAgentReadTime Minimum time to read a response from the agent.

Setting collectMetrics to 3 returns both the count-based and time-based metrics.

Configure ABL web application runtime metrics

ABL web application runtime metrics represent the metrics of the web application and its supporting transports. The default ABL web application for the PAS for OpenEdge instance is ROOT. ABL web applications are located in the /webapps directory of the instance.

The metrics are obtained for each enabled transport on the ABL web application.

To configure an ABL web application to collect runtime metrics, perform the following steps:
  1. Open the openedge.properties file for the target PAS for OpenEdge instance.
  2. Under the [ABL_app_name.Web_app_name] section, change the value of collectMetrics to the appropriate value.

    For example, to enable collect metrics in the default instance's ABL application (oepas1) for the ROOT application, navigate to the [oepas1.ROOT] section of the openedge.properties file.

  3. Restart the PAS for OpenEdge instance.
  4. Get the ABL web application metrics for each transport. For example, if you have the oemanager application deployed to your PAS for OpenEdge instance, the metrics for each transport are available at the following API endpoints:
    
    http://localhost:port/oemanager/applications/oepas1/webapps/ROOT/transports
    /apsv/metrics
    http://localhost:port/oemanager/applications/oepas1/webapps/ROOT/transports
    /rest/metrics
    http://localhost:port/oemanager/applications/oepas1/webapps/ROOT/transports
    /soap/metrics
    http://localhost:port/oemanager/applications/oepas1/webapps/ROOT/transports
    /web/metrics
    

APSV transport metrics

Setting collectMetrics to 1 for the ABL web application returns the following (count-based) metrics for the APSV transport:
APSV count metric Description
statusRequests Number of requests for the status of APSV transport.
connectRequests Number of requests for new connections to the session.
sessionErrors Number of errors getting a session to run a remote procedure.
connectErrors Number of connect errors.
disconnectRequests Number of disconnect requests.
sessionRequests Number of requests to get a local session to run a remote procedure.
disconnectErrors Number of errors during disconnect.
forbiddenErrors Number of errors due to transport being disabled.

Setting collectMetrics to 2 does not return time-based metrics.

Setting collectMetrics to 3 returns the count-based metrics.

SOAP transport metrics

Setting collectMetrics to 1 for the ABL web application returns the following (count-based) metrics for the SOAP transport:
SOAP count metric Description
statusRequests Number of requests for the status of the SOAP transport.
serviceDisabled Number of WSDL or SOAP requests that were denied because the WSDL or Web Service Application services were disabled by the administrator.
soapProcessorErrors Number of administration and SOAP requests that failed due to an internal SOAP processor related error.
httpRequestErrors Number of malformed HTTP requests.
httpRequests Number of HTTP requests that are not WSDL or SOAP related.
methodNotAllowederrors Number of HTTP methods that are not supported by the WSA. The WSA accepts only GET and POST HTTP methods.
soapRequests Number of incoming SOAP requests.
wsdlRequests Number of requests to fetch the WSDL document.
activeRequests Number of in-process administration or Web Service Application SOAP requests.
urlNotFoundErrors Number of HTTP requests that requested a URL path not supported by the SOAP transport.
Setting collectMetrics to 2 returns the following (time-based) metrics:
SOAP time metric Description
minTotalTime Minimum transport time for SOAP requests to successfully return to the client via the transport after making a round trip to PAS for OpenEdge.
stdDevTotalTime Standard deviation in the transport time for SOAP requests to successfully return to the client via the transport after making a round trip to PAS for OpenEdge.
avgTotalTime Average transport time for SOAP requests to successfully return to the client via the transport after making a round trip to PAS for OpenEdge.
maxTotalTime Maximum transport time for SOAP requests to successfully return to the client via the transport after making a round trip to PAS for OpenEdge.

Setting collectMetrics to 3 returns both the count-based and time-based metrics for the SOAP transport.

REST transport metrics

Setting collectMetrics to 1 for the ABL web application returns the following (count-based) metrics for the REST transport:
REST count metric Description
statusRequests Number of requests for the of status of the REST Transport (i.e. requests at /rest URL).
successfulRunRequests Number of run requests that successfully returned from PAS for OpenEdge to the REST transport.
requests Total number of requests coming to the REST transport including status requests.
serviceUnavailableRequests Number of requests that came when the REST Transport was disabled (i.e. when the service was unavailable).
failedRequests Number of requests that returned with a non-success return code to the REST client.
connectRequests Number of requests for which new connections were made between the REST transport's endpoint and PAS for OpenEdge.
Note: The REST transport normally reuses the same connection object, so you may find fewer connect requests than connections.
expressionErrors Number of requests for which the parameter value had ill-formatted JSON data.
successfulConnectRequests Number of requests for which connection objects were created successfully. These successful connection objects are used to run the actual service on PAS for OpenEdge.
successfulRequests Number of requests that made a successful round-trip to PAS for OpenEdge and returned successfully with a 200 OK response code.
runRequests Number of requests for which an ABL procedure, class, or function were invoked on PAS for OpenEdge.
serviceNotFoundErrors Number of requests for which no REST service was found.
Setting collectMetrics to 2 returns the following (time-based) metrics:
REST time metric Description
avgConnectTime Average time to establish a connection to PAS for OpenEdge from the REST Transport.
minDisconnectTime Minimum time it took for a disconnect request to run.
stdDevDisconnectTime Standard deviation of the time it took for a disconnect request to run.
stdDevConnectTime Standard deviation of the time it takes to establish a connection to PAS for OpenEdge from the REST Transport.
stdDevSessionTime Standard deviation of the time it took for a session to run a remote procedure.
maxConnectTime Maximum time it took to establish a connection to PAS for OpenEdge from the REST Transport.
minSessionTime Minimum time it took for a session to run a remote procedure.
avgSessionTime Average time it took for a session to run a remote procedure.
maxDisconnectTime Maximum time it took for a disconnect request to run.
minConnectTime Minimum time it took to establish a connection to PAS for OpenEdge from the REST Transport.
avgDisconnectTime Average time it took for a disconnect request to run.
maxSessionTime Maximum time it took for a session to run a remote procedure.

Setting collectMetrics to 3 returns both the count-based and time-based metrics.

WEB transport metrics

Setting collectMetrics to 1 for the ABL web application returns the following (count-based) metrics for the WEB transport:
WEB count metric Description
patchErrors Number of PATCH request errors.
postErrors Number of POST request errors.
failedServletRequests Number of failed requests to the WEB transport.
getRequests Number of GET requests.
optionsErrors Number of OPTIONS request errors.
connectRequests Indicates if the first WEB request was received. This metric is either 0 or 1.
putRequests Number of PUT requests.
getErrors Number of GET request errors.
deleteRequests Number of DELETE requests.
patchRequests Number of PATCH requests.
ablConnectErrors Number of failures to create the OpenAppObject for transport communication with the ABL.
postRequests Number of POST requests.
successfulServletRequests Number of successful requests to the WEB transport.
optionsRequests Number of OPTIONS requests.
traceRequests Number of TRACE requests.
putErrors Number of PUT requests.
deleteErrors Number of DELETE request errors.
headRequests Number of HEAD requests.
traceErrors Number of TRACE request errors.
servletRequests Total number of requests to the WEB transport.
headErrors Number of HEAD request errors.
Setting collectMetrics to 2 returns the following (time-based) metrics:
WEB time metric Description
maxABLConnectTime Maximum time it took to create an ABL connection using the OpenAppObject .
stdABLDevConnectTime Standard deviation of the time it took to create an ABL connection using the OpenAppObject .
minABLProcessingTime Minimum amount of time it took the WEB transport to process a request.
maxABLProcessingTime Maximum amount of time it took the WEB transport to process a request.
stdDevABLProcessingTime Standard deviation of the amount of time it took the WEB transport to process a request.
minABLConnectTime Minimum time it took to create an ABL connection using the OpenAppObject .
avgABLProcessingTime Average time it took the WEB transport to process a request.
avgABLConnectTime Average time it took to create an ABL connection using the OpenAppObject .

Setting collectMetrics to 3 returns both the count-based and time-based metrics.