Gateway Application Metrics

The framework enables monitoring the Gateway application by exposing certain metrics.

However, this feature should be enabled by developers in the application. See Supporting application monitoring for more details.

If the application supports exposing metrics of the application, it can be configured in the application configuration. Exposing metrics is disabled by default, as this can impact the performance of the application. Users can enable the metrics exposure of the application, in the configuration file under the global section.

Supported configuration can be set as follows:

"global": {
    "framework": {
        "metrics": {
            "enabled": true,
            "filterMetricsPrefixes": [
                "jvm",
                "publish.request.failed.total",
                "patch.request"
            ]
        }
    }
}
  • enabled specifies if exposing metrics should be enabled or disabled when running the application. The default value is disabled.

  • filterMetricsPrefixes can be used to exclude certain meters which users do not want to expose for the application. This contains a list of meter name prefixes, which must match the meter names to be filtered-out from aggregated metrics.

Meter names exposed by framework

If the application supports metrics exposure, the framework exposes certain metrics of the application out of the box. They are as follows:

Meter name description type

gateway.diffusion.session.connected

Specifies if the Diffusion session is connected.
Value is set to 1.0 if connected, and 0.0 if disconnected

Gauge

gateway.diffusion.session.reconnection.attempts

Specifies the total attempts of Diffusion session reconnection. Resets to 0.0 once session is reconnected

Gauge

gateway.diffusion.connection.attempts

Specifies the total attempts of Diffusion server connection.
Resets to 0.0 once connection is established

Gauge

gateway.pause.request.total

Total pause requests, applied to service in the application

Counter

gateway.resume.request.total

Total resume requests, applied to service in the application

Counter

gateway.service.state.paused

Specifies if the state of the service is paused

Gauge

gateway.service.state.active

Specified if the state of the service is active

Gauge

gateway.service_state_removed

Specifies if a service is removed

Gauge

gateway.publish.request.total

Total number of requests to publish to specific a topic by a service

Counter

gateway.publish.request.success.total

Total successful requests to publish to a specific topic by a service

Counter

gateway.publish.request.failed.total

Total failed requests to publish to a specific topic by a service

Counter

gateway.publish.request.duration

Total time taken to publish to a specific topic by a service

Timer

gateway.patch.request.total

Total number of patch requests for a specific topic by a service

Counter

gateway.patch.request.success.total

Total number of successful patch requests for a specific topic by a service

Counter

gateway.patch.request.failed.total

Total number of failed patch requests for a specific topic by a service

Counter

gateway.patch.request.duration

Total time taken to send a patch request for a specific topic by a service

Timer

gateway.poll.request.total

Total poll requests made by framework to application layer

Counter

gateway.poll.request.success.total

Total successful poll requests made by the framework to the application layer

Counter

gateway.poll.request.failed.total

Total failed requests made by the framework to the application layer

Counter

gateway.poll.request.duration

Total time taken for a poll request to complete

Timer

gateway.sink.update.total

Total updates from a Diffusion topic sent to sink layer

Counter

gateway.sink.update.success.total

Total successful updates from a Diffusion topic sent to sink layer

Counter

gateway.sink.update.failed.total

Total failed updates from a Diffusion topic sent to sink layer

Counter

gateway.sink.update.duration

Time taken to complete an update request to sink layer

Timer

Apart from the above, various JVM specific, and system specific metrics are also exposed.