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

Table 1. Tags

Key

Description

action

Backpressure action: applied/ released (per-connection) or global_applied/ global_released (broker-wide budget).

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

Table 2. Tags

Key

Description

reason

Rejection reason, lower-cased.

Failures

Number of broker failures, including lifecycle (start) and authentication failures (tagged operation=auth).

Name: korvet.broker.failures
Type: counter

Table 3. Tags

Key

Description

error_type

Failure category, lower-cased.

operation

Logical operation name.

Fetch Latency

Fetch request latency.

Name: korvet.broker.fetch
Type: timer
Base unit: seconds

Table 4. Tags

Key

Description

topic

Kafka topic name.

Fetch Records

Number of records delivered in fetch responses.

Name: korvet.broker.fetch.records
Type: counter
Base unit: records

Table 5. Tags

Key

Description

topic

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

Table 6. Tags

Key

Description

api_key

Kafka API key (request type) on the broker, lower-cased.

direction

Frame direction: request or response.

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

Table 7. Tags

Key

Description

partition

Kafka partition number, as a decimal string.

topic

Kafka topic name.

Lossy Records

Number of records affected by lossy offset mapping, by phase.

Name: korvet.broker.lossy_records
Type: counter

Table 8. Tags

Key

Description

phase

Lifecycle phase, lower-cased.

topic

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

Table 9. Tags

Key

Description

partition

Kafka partition number, as a decimal string.

topic

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

Table 10. Tags

Key

Description

publisher

Metrics publisher reporting its refresh health, e.g. broker_offsets or group_lag.

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

Table 11. Tags

Key

Description

topic

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

Table 12. Tags

Key

Description

topic

Kafka topic name.

Produce Latency

Produce request latency.

Name: korvet.broker.produce
Type: timer
Base unit: seconds

Table 13. Tags

Key

Description

topic

Kafka topic name.

Produce Records

Number of records successfully produced.

Name: korvet.broker.produce.records
Type: counter
Base unit: records

Table 14. Tags

Key

Description

topic

Kafka topic name.

Rebalances

Number of consumer group rebalance lifecycle events.

Name: korvet.broker.rebalances
Type: counter

Table 15. Tags

Key

Description

phase

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

Table 16. Tags

Key

Description

reason

Rejection reason, lower-cased.

Request Latency

Broker Kafka API request latency, observed per request.

Name: korvet.broker.request
Type: timer
Base unit: seconds

Table 17. Tags

Key

Description

api_key

Kafka API key (request type) on the broker, lower-cased.

result

Outcome of the broker request, lower-cased.

Up

Whether the broker is currently running.

Name: korvet.broker.up
Type: gauge