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.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.