Your opinion will help to improve our service
Leave a feedback >Quality: Golden Tier.
🐙 userver provides access to Apache Kafka Brokers via two independent interfaces: kafka::ProducerComponent and kafka::ConsumerComponent.
They expose APIs for sending messages to Kafka topics, suspending coroutine until message delivery succeeded or failed, and for process message batches from the subscribed set of topics, asynchronously polling messages in separate task processor.
Producer and consumer yields same set of metrics (but with different prefixes):
Metric name | Labels | Description |
---|---|---|
kafka_producer.avg_ms_spent_time | component-name , topic | Average message producer latency |
kafka_producer.messages_total | component-name , topic | Total number of sent messages |
kafka_producer.messages_success | component-name , topic | Number of messages successfully written to partition |
kafka_producer.messages_error | component-name , topic | Number of messages failed to produce |
kafka_producer.connections_error | component-name | Number of broker connection errors occurred |
kafka_consumer.avg_ms_spent_time | component-name , topic | Average time between message written to partition and read by consumer |
kafka_consumer.messages_total | component-name , topic | Total number of read messages |
kafka_consumer.messages_success | component-name , topic | Number of successfully processed messages |
kafka_consumer.messages_error | component-name , topic | Number of messages user-callback failed |
kafka_consumer.connections_error | component-name | Number of broker connection errors occurred |
See Service Statistics and Metrics (Prometheus/Graphite/...) for info on how to get the metrics.