Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
Description
The Kafka clients expose their metrics registries through a `metrics` method presenting an unmodifiable collection, but `KafkaStreams` does not expose its registry. Currently, applications can access a StreamsMetrics instance via the ProcessorContext within a Processor, but this limits flexibility.
Having read-only access to a KafkaStreams.metrics() method would allow a developer to define a health check for their application based on the metrics that KafkaStreams is collecting. Or a developer might want to define a metric in some other framework based on KafkaStreams' metrics.
I am imagining that an application would build and register KafkaStreams-based health checks after building a KafkaStreams instance but before calling the start() method. Are metrics added to the registry at the time a KafkaStreams instance is constructed, or only after calling the start() method? If metrics are registered only after application startup, then this approach may not be sufficient.