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.diffusion.created.topics.total

Total count of topics created in the service for publishing

Counter

gateway.diffusion.publish.request.total

Total count of requests made by the service to publish to Diffusion topics

Counter

gateway.diffusion.publish.success.total

Total count of successful publications to various Diffusion topics by the service

Counter

gateway.diffusion.publish.failure.total

Total count of failed publications to different Diffusion topics by the service

Counter

gateway.diffusion.publish.duration

Time taken by the service to publish to different Diffusion topics

Timer

gateway.diffusion.topic.publish.request.total

Total count of requests made by the service to publish to a specific Diffusion topic

Counter

gateway.diffusion.topic.publish.success.total

Total count of successful publications to a specific Diffusion topic by the service

Counter

gateway.diffusion.topic.publish.failure.total

Total count of failed publications to a specific Diffusion topic by the service

Counter

gateway.diffusion.topic.publish.duration

Time taken by the service to publish to a specific Diffusion topic

Timer

gateway.diffusion.topic.patch.request.total

Total count of patch requests made by the service for a specific Diffusion topic

Counter

gateway.diffusion.topic.patch.success.total

Total count of successful patch requests made by the service for a specific Diffusion topic

Counter

gateway.diffusion.topic.patch.failure.total

Total count of failed patch requests made by the service for a specific Diffusion topic

Counter

gateway.diffusion.topic.patch.duration

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

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.diffusion.subscribed.topics.total

Total count of Diffusion topic subscriptions in the sink service

Counter

gateway.diffusion.unsubscribed.topics.total

Total count of Diffusion topic unsubscriptions in the sink service

Counter

gateway.diffusion.subscription.closure.total

Total count of Diffusion topic subscription closures in the sink service

Counter

gateway.diffusion.subscription.error.total

Total count of Diffusion topic subscription errors in the sink service

Counter

gateway.diffusion.sink.updates.received.total

Total count of updates received by the sink service

Counter

gateway.diffusion.sink.updates.success.total

Total count of updates successfully processed by the sink handler

Counter

gateway.diffusion.sink.updates.failure.total

Total count of updates that failed to be processed by the sink handler

Counter

gateway.diffusion.sink.updates.duration

Time taken for update processing by the sink handler

Timer

gateway.diffusion.sink.topic.updates.received.total

Total count of updates received from a specific Diffusion topic by a sink service

Counter

gateway.diffusion.sink.topic.updates.success.total

Total count of updates successfully processed from a specific Diffusion topic by a sink handler

Counter

gateway.diffusion.sink.topic.updates.failure.total

Total count of updates that failed to be processed from a specific Diffusion topic by a sink handler

Counter

gateway.diffusion.sink.topic.update.duration

Time taken by a sink handler to process updates from a specific Diffusion topic

Timer

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