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. |
Gauge |
gateway.diffusion.session.reconnection.attempts |
Specifies the total attempts of Diffusion session reconnection. Resets to |
Gauge |
gateway.diffusion.connection.attempts |
Specifies the total attempts of Diffusion server connection. |
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.