Expand description
The controller’s event-queue measurements.
These are Kafka’s ControllerEventManager EventQueueTimeMs, EventQueueProcessingTimeMs
and AvgIdleRatio, and KafkaController’s
EventQueueOperationsStartedCount and EventQueueOperationsTimedOutCount.
Kafka’s QuorumController runs every operation as an event on one queue
thread. Krabka’s engine loop is that thread: each turn handles one command
from the engine’s mpsc or one timer, so a turn is one event. A command
waited on the mpsc for its queue time; a timer has none, as a Kafka
deferred event sets DOES_NOT_UPDATE_QUEUE_TIME. A write that parks for
its commit keeps its processing time running until the commit reply, as a
Kafka ControllerWriteEvent does.
The engine reports to an EventQueueRecorder. The broker registers its
metrics as one; NoEventQueueRecorder is the default.
Structs§
- NoEvent
Queue Recorder - The recorder of a controller nobody measures.
Traits§
- Event
Queue Recorder - Receives the engine loop’s event-queue measurements. Every method is called from the engine task, so an implementation must not block.