Monitoring API Gateway through Prometheus Metrics

How do I collect Prometheus metrics?

To check the usage of the application and system parameters, use the following metrics endpoint: GET /metrics. When the endpoint is called, webMethods API Gateway gathers metrics and returns the data in the Prometheus format.

Note: Prometheus is a non- IBM dashboarding tool that helps in trend analysis. For more information, see https://prometheus.io/.

Prometheus metrics are exposed through the following endpoint.

[http|https]://host:port/metrics
The metrics endpoint by default is available on the following ports:
  • Default primary port (http). 5555
  • Default secure port (https). 5543
  • Default diagnostic port (debug port). 9999

A sample for the metrics endpoint is as follows:

http://server:5555/metrics

The metrics you monitor have the following characteristics:

  • The metrics are maintained separately for each cluster node
  • The metrics are not persisted. They are reinitialized on API Gateway restart.
Authentication for the metrics endpoint
  • By default, the authentication is disabled when running webMethods API Gateway as Docker container.
  • For on-premise installations, the following environment variable can be set to switch off the authentication for the metrics endpoint:
    SAG_IS_METRICS_ENDPOINT_ACL=Anonymous

The endpoint also exposes the Integration Server Prometheus metrics. For more details on the Integration Server Prometheus metrics, see Developing Microservices with IBM webMethods Microservices Runtime.

Exposing API Gateway Prometheus Metrics over a dedicated port

The metrics endpoint can be made available on a custom port. After creating the port, add the following service to the port's allow list:

wm.server.query:getPrometheusStats

Similarly, the metrics endpoint can be removed from the default ports (5555 or 5543 or 9999) by removing the service from the allow or deny lists.