|
This version is still in development and is not considered stable yet. For the latest stable version, please use Korvet 0.19! |
Broker Metrics
These metrics are emitted by korvet-broker.
Metrics
Backpressure Connections
Current number of broker connections with backpressure applied.
Name: korvet.broker.backpressure.connections
Type: gauge
Backpressure Transitions
Backpressure lifecycle transitions, tagged by action=applied|released|global_applied|global_released (per-connection vs broker-wide budget).
Name: korvet.broker.backpressure.transitions
Type: counter
Key |
Description |
|
Backpressure action: |
Connections
Current number of active broker connections.
Name: korvet.broker.connections
Type: gauge
Connection Closes
Number of connections closed by the broker, tagged by reason. Client-initiated disconnects are not counted; every increment is a deliberate broker-side close (idle reaping, response-queue overflow, expired session, or a transport error), which a client observes as an abrupt connection loss — e.g. an offset commit failing with "use of closed network connection".
Name: korvet.broker.connections.closed
Type: counter
Key |
Description |
|
Rejection reason, lower-cased. |
Failures
Number of broker failures, including lifecycle (start) and authentication failures (tagged operation=auth).
Name: korvet.broker.failures
Type: counter
Key |
Description |
|
Failure category, lower-cased. |
|
Logical operation name. |
Fetch Latency
Fetch request latency.
Name: korvet.broker.fetch
Type: timer
Base unit: seconds
Key |
Description |
|
Kafka topic name. |
Fetch Records
Number of records delivered in fetch responses.
Name: korvet.broker.fetch.records
Type: counter
Base unit: records
Key |
Description |
|
Kafka topic name. |
Frame Size
Broker Kafka frame size in bytes, by direction (request/response) and API key.
Name: korvet.broker.frame_size
Type: distribution summary
Base unit: bytes
Key |
Description |
|
Kafka API key (request type) on the broker, lower-cased. |
|
Frame direction: |
Global Backpressure
Whether the broker-wide pending memory budget is currently exhausted (1) or open (0).
Name: korvet.broker.backpressure.global
Type: gauge
Log Start Offset
Log start offset per (topic, partition): earliest still-readable offset. Empty partitions report 0.
Name: korvet.broker.log_start_offset
Type: gauge
Key |
Description |
|
Kafka partition number, as a decimal string. |
|
Kafka topic name. |
Lossy Records
Number of records affected by lossy offset mapping, by phase.
Name: korvet.broker.lossy_records
Type: counter
Key |
Description |
|
Lifecycle phase, lower-cased. |
|
Kafka topic name. |
Max Offset
High watermark per (topic, partition): next offset to be assigned (i.e. latest visible offset + 1). Empty partitions report 0.
Name: korvet.broker.max_offset
Type: gauge
Key |
Description |
|
Kafka partition number, as a decimal string. |
|
Kafka topic name. |
Metrics Degraded
Whether a metrics publisher’s most recent refresh failed (1) or succeeded (0), tagged by publisher. A value of 1 means that publisher’s gauges may be stale or absent — typically because Redis metadata lookups are failing or timing out — so operators get an explicit degraded signal instead of silently vanishing or frozen series.
Name: korvet.broker.metrics.degraded
Type: gauge
Key |
Description |
|
Metrics publisher reporting its refresh health, e.g. |
Pending
Current broker request bytes waiting on asynchronous completion.
Name: korvet.broker.pending
Type: gauge
Base unit: bytes
Produce Chain Wait
Time a produce partition write spends waiting in the per-partition serialized chain before its own processing starts — queueing behind earlier in-flight writes for the same partition.
Name: korvet.broker.produce.chain.wait
Type: timer
Base unit: seconds
Key |
Description |
|
Kafka topic name. |
Produce Encode Wait
Residual wait for the pre-encoded (at-rest compressed) bodies once a partition write’s turn in the serialized chain arrives. Encoding is kicked at request arrival to overlap with the previous in-flight write; a non-trivial value here means encoding did not finish within that overlap window (codec executor queueing or codec CPU cost exceeding the write round-trip).
Name: korvet.broker.produce.encode.wait
Type: timer
Base unit: seconds
Key |
Description |
|
Kafka topic name. |
Produce Latency
Produce request latency.
Name: korvet.broker.produce
Type: timer
Base unit: seconds
Key |
Description |
|
Kafka topic name. |
Produce Records
Number of records successfully produced.
Name: korvet.broker.produce.records
Type: counter
Base unit: records
Key |
Description |
|
Kafka topic name. |
Rebalances
Number of consumer group rebalance lifecycle events.
Name: korvet.broker.rebalances
Type: counter
Key |
Description |
|
Lifecycle phase, lower-cased. |
Rejected Requests
Number of requests rejected by broker resource-safety bounds, tagged by reason.
Name: korvet.broker.rejected_requests
Type: counter
Key |
Description |
|
Rejection reason, lower-cased. |