KafkaStreams binder metrics - duplicate entries
When the same metric name is repeated, there are some registry implementations such as the micrometer Prometheus registry fail to register the duplicate entry. Fixing this issue by restricting the duplicate metric names not to be registered. Also, address an issue with multiple processors and metrics in the same application by prepending the application ID of the Kafka Streams processor in the metric name itself. Resolves #788
This commit is contained in:
@@ -1094,6 +1094,10 @@ All dashes in the original metric information is replaced with dots.
|
||||
For e.g. the metric name `network-io-total` from the metric group `consumer-metrics` is available in the micrometer registry as `consumer.metrics.network.io.total`.
|
||||
Similarly, the metric `commit-total` from `stream-metrics` is available as `stream.metrics.commit.total`.
|
||||
|
||||
If you have multiple Kafka Streams processors in the same application, then the metric name will be prepended with the corresponding application ID of the Kafka Streams.
|
||||
The application ID in this case will be preserved as is, i.e. no dashes will be converted to dots etc.
|
||||
For example, if the application ID of the first processor is `processor-1`, then the metric name `network-io-total` from the metric group `consumer-metrics` is available in the micrometer registry as `processor-1.consumer.metrics.network.io.total`.
|
||||
|
||||
You can either programmatically access the Micrometer `MeterRegistry` in the application and then iterate through the available gauges or use Spring Boot actuator to access the metrics through a REST endpoint.
|
||||
When accessing through the Boot actuator endpoint, make sure to add `metrics` to the property `management.endpoints.web.exposure.include`.
|
||||
Then you can access `/acutator/metrics` to get a list of all the available metrics which then can be individually accessed through the same URL (`/actuator/metrics/<metric-name>`).
|
||||
|
||||
Reference in New Issue
Block a user