Remove unused kafka metrics from doc (#10371)

This commit is contained in:
Lauri Tulmin 2024-02-01 17:44:36 +02:00 committed by GitHub
parent bb8e301111
commit c3e5245354
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 200 additions and 205 deletions

View File

@ -396,6 +396,9 @@ public abstract class AbstractOpenTelemetryMetricsReporterTest {
.equals(kafkaMetricId))
.findFirst()
.map(RegisteredObservable::getInstrumentDescriptor);
if (!descriptor.isPresent()) {
continue;
}
// Append table row
sb.append(
String.format(
@ -406,13 +409,27 @@ public abstract class AbstractOpenTelemetryMetricsReporterTest {
.map(key -> "`" + key + "`")
.collect(joining(",")),
descriptor.map(i -> "`" + i.getName() + "`").orElse(""),
descriptor.map(InstrumentDescriptor::getDescription).orElse(""),
descriptor.map(i -> toDescription(i)).orElse(""),
descriptor.map(i -> "`" + i.getInstrumentType() + "`").orElse("")));
}
}
logger.info("Mapping table" + System.lineSeparator() + sb);
}
private static String toDescription(InstrumentDescriptor instrumentDescriptor) {
String description = instrumentDescriptor.getDescription();
if (!description.isEmpty() && !description.endsWith(".")) {
return description + ".";
} else if (description.isEmpty()
&& "kafka.consumer.request_latency_avg".equals(instrumentDescriptor.getName())) {
return "The average request latency in ms.";
} else if (description.isEmpty()
&& "kafka.consumer.request_latency_max".equals(instrumentDescriptor.getName())) {
return "The maximum request latency in ms.";
}
return description;
}
/**
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
* any time.
@ -428,6 +445,12 @@ public abstract class AbstractOpenTelemetryMetricsReporterTest {
@Override
public void metricChange(KafkaMetric kafkaMetric) {
try {
kafkaMetric.measurable();
} catch (IllegalStateException exception) {
// ignore non-measurable metrics, we don't report them
return;
}
seenMetrics.add(KafkaMetricId.create(kafkaMetric.metricName()));
}

View File

@ -90,207 +90,179 @@ OpenTelemetry metric each maps to (if available). Empty values in the Instrument
Description, etc column indicates there is no registered mapping for the metric and data is NOT
collected.
| Metric Group | Metric Name | Attribute Keys | Instrument Name | Instrument Description | Instrument Type |
|----------------------------------|---------------------------------------------|---------------------------------|------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| `app-info` | `commit-id` | `client-id` | | | |
| `app-info` | `start-time-ms` | `client-id` | | | |
| `app-info` | `version` | `client-id` | | | |
| `consumer-coordinator-metrics` | `assigned-partitions` | `client-id` | `kafka.consumer.assigned_partitions` | The number of partitions currently assigned to this consumer. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-latency-avg` | `client-id` | `kafka.consumer.commit_latency_avg` | The average time taken for a commit request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-latency-max` | `client-id` | `kafka.consumer.commit_latency_max` | The max time taken for a commit request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-rate` | `client-id` | `kafka.consumer.commit_rate` | The number of commit calls per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-total` | `client-id` | `kafka.consumer.commit_total` | The total number of commit calls. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `failed-rebalance-rate-per-hour` | `client-id` | `kafka.consumer.failed_rebalance_rate_per_hour` | The number of failed rebalance events per hour. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `failed-rebalance-total` | `client-id` | `kafka.consumer.failed_rebalance_total` | The total number of failed rebalance events. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `heartbeat-rate` | `client-id` | `kafka.consumer.heartbeat_rate` | The number of heartbeats per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `heartbeat-response-time-max` | `client-id` | `kafka.consumer.heartbeat_response_time_max` | The max time taken to receive a response to a heartbeat request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `heartbeat-total` | `client-id` | `kafka.consumer.heartbeat_total` | The total number of heartbeats. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `join-rate` | `client-id` | `kafka.consumer.join_rate` | The number of group joins per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `join-time-avg` | `client-id` | `kafka.consumer.join_time_avg` | The average time taken for a group rejoin. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `join-time-max` | `client-id` | `kafka.consumer.join_time_max` | The max time taken for a group rejoin. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `join-total` | `client-id` | `kafka.consumer.join_total` | The total number of group joins. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `last-heartbeat-seconds-ago` | `client-id` | `kafka.consumer.last_heartbeat_seconds_ago` | The number of seconds since the last coordinator heartbeat was sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `last-rebalance-seconds-ago` | `client-id` | `kafka.consumer.last_rebalance_seconds_ago` | The number of seconds since the last successful rebalance event. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-assigned-latency-avg` | `client-id` | `kafka.consumer.partition_assigned_latency_avg` | The average time taken for a partition-assigned rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-assigned-latency-max` | `client-id` | `kafka.consumer.partition_assigned_latency_max` | The max time taken for a partition-assigned rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-lost-latency-avg` | `client-id` | `kafka.consumer.partition_lost_latency_avg` | The average time taken for a partition-lost rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-lost-latency-max` | `client-id` | `kafka.consumer.partition_lost_latency_max` | The max time taken for a partition-lost rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-revoked-latency-avg` | `client-id` | `kafka.consumer.partition_revoked_latency_avg` | The average time taken for a partition-revoked rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-revoked-latency-max` | `client-id` | `kafka.consumer.partition_revoked_latency_max` | The max time taken for a partition-revoked rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-latency-avg` | `client-id` | `kafka.consumer.rebalance_latency_avg` | The average time taken for a group to complete a successful rebalance, which may be composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-latency-max` | `client-id` | `kafka.consumer.rebalance_latency_max` | The max time taken for a group to complete a successful rebalance, which may be composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-latency-total` | `client-id` | `kafka.consumer.rebalance_latency_total` | The total number of milliseconds this consumer has spent in successful rebalances since creation. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `rebalance-rate-per-hour` | `client-id` | `kafka.consumer.rebalance_rate_per_hour` | The number of successful rebalance events per hour, each event is composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-total` | `client-id` | `kafka.consumer.rebalance_total` | The total number of successful rebalance events, each event is composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `sync-rate` | `client-id` | `kafka.consumer.sync_rate` | The number of group syncs per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `sync-time-avg` | `client-id` | `kafka.consumer.sync_time_avg` | The average time taken for a group sync. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `sync-time-max` | `client-id` | `kafka.consumer.sync_time_max` | The max time taken for a group sync. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `sync-total` | `client-id` | `kafka.consumer.sync_total` | The total number of group syncs. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `bytes-consumed-rate` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `bytes-consumed-rate` | `client-id`,`topic` | `kafka.consumer.bytes_consumed_rate` | The average number of bytes consumed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `bytes-consumed-total` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `bytes-consumed-total` | `client-id`,`topic` | `kafka.consumer.bytes_consumed_total` | The total number of bytes consumed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `fetch-latency-avg` | `client-id` | `kafka.consumer.fetch_latency_avg` | The average time taken for a fetch request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-latency-max` | `client-id` | `kafka.consumer.fetch_latency_max` | The max time taken for any fetch request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-rate` | `client-id` | `kafka.consumer.fetch_rate` | The number of fetch requests per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-size-avg` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `fetch-size-avg` | `client-id`,`topic` | `kafka.consumer.fetch_size_avg` | The average number of bytes fetched per request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-size-max` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `fetch-size-max` | `client-id`,`topic` | `kafka.consumer.fetch_size_max` | The maximum number of bytes fetched per request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-throttle-time-avg` | `client-id` | `kafka.consumer.fetch_throttle_time_avg` | The average throttle time in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-throttle-time-max` | `client-id` | `kafka.consumer.fetch_throttle_time_max` | The maximum throttle time in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-total` | `client-id` | `kafka.consumer.fetch_total` | The total number of fetch requests. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `preferred-read-replica` | `client-id`,`topic`,`partition` | `kafka.consumer.preferred_read_replica` | The current read replica for the partition, or -1 if reading from leader. | |
| `consumer-fetch-manager-metrics` | `records-consumed-rate` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `records-consumed-rate` | `client-id`,`topic` | `kafka.consumer.records_consumed_rate` | The average number of records consumed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-consumed-total` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `records-consumed-total` | `client-id`,`topic` | `kafka.consumer.records_consumed_total` | The total number of records consumed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `records-lag` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lag` | The latest lag of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lag-avg` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lag_avg` | The average lag of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lag-max` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `records-lag-max` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lag_max` | The maximum lag in terms of number of records for any partition in this window. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lead` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lead` | The latest lead of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lead-avg` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lead_avg` | The average lead of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lead-min` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `records-lead-min` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lead_min` | The minimum lead in terms of number of records for any partition in this window. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-per-request-avg` | `client-id` | | | |
| `consumer-fetch-manager-metrics` | `records-per-request-avg` | `client-id`,`topic` | `kafka.consumer.records_per_request_avg` | The average number of records in each request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-close-rate` | `client-id` | `kafka.consumer.connection_close_rate` | The number of connections closed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-close-total` | `client-id` | `kafka.consumer.connection_close_total` | The total number of connections closed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `connection-count` | `client-id` | `kafka.consumer.connection_count` | The current number of active connections. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-creation-rate` | `client-id` | `kafka.consumer.connection_creation_rate` | The number of new connections established per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-creation-total` | `client-id` | `kafka.consumer.connection_creation_total` | The total number of new connections established. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `failed-authentication-rate` | `client-id` | `kafka.consumer.failed_authentication_rate` | The number of connections with failed authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `failed-authentication-total` | `client-id` | `kafka.consumer.failed_authentication_total` | The total number of connections with failed authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `failed-reauthentication-rate` | `client-id` | `kafka.consumer.failed_reauthentication_rate` | The number of failed re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `failed-reauthentication-total` | `client-id` | `kafka.consumer.failed_reauthentication_total` | The total number of failed re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `incoming-byte-rate` | `client-id` | | | |
| `consumer-metrics` | `incoming-byte-total` | `client-id` | | | |
| `consumer-metrics` | `io-ratio` | `client-id` | `kafka.consumer.io_ratio` | The fraction of time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-time-ns-avg` | `client-id` | `kafka.consumer.io_time_ns_avg` | The average length of time for I/O per select call in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-wait-ratio` | `client-id` | `kafka.consumer.io_wait_ratio` | The fraction of time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-wait-time-ns-avg` | `client-id` | `kafka.consumer.io_wait_time_ns_avg` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-waittime-total` | `client-id` | `kafka.consumer.io_waittime_total` | The total time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `iotime-total` | `client-id` | `kafka.consumer.iotime_total` | The total time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `last-poll-seconds-ago` | `client-id` | `kafka.consumer.last_poll_seconds_ago` | The number of seconds since the last poll() invocation. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `network-io-rate` | `client-id` | `kafka.consumer.network_io_rate` | The number of network operations (reads or writes) on all connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `network-io-total` | `client-id` | `kafka.consumer.network_io_total` | The total number of network operations (reads or writes) on all connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `outgoing-byte-rate` | `client-id` | | | |
| `consumer-metrics` | `outgoing-byte-total` | `client-id` | | | |
| `consumer-metrics` | `poll-idle-ratio-avg` | `client-id` | `kafka.consumer.poll_idle_ratio_avg` | The average fraction of time the consumer's poll() is idle as opposed to waiting for the user code to process records. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `reauthentication-latency-avg` | `client-id` | `kafka.consumer.reauthentication_latency_avg` | The average latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `reauthentication-latency-max` | `client-id` | `kafka.consumer.reauthentication_latency_max` | The max latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `request-rate` | `client-id` | | | |
| `consumer-metrics` | `request-size-avg` | `client-id` | | | |
| `consumer-metrics` | `request-size-max` | `client-id` | | | |
| `consumer-metrics` | `request-total` | `client-id` | | | |
| `consumer-metrics` | `response-rate` | `client-id` | | | |
| `consumer-metrics` | `response-total` | `client-id` | | | |
| `consumer-metrics` | `select-rate` | `client-id` | `kafka.consumer.select_rate` | The number of times the I/O layer checked for new I/O to perform per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `select-total` | `client-id` | `kafka.consumer.select_total` | The total number of times the I/O layer checked for new I/O to perform. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `successful-authentication-no-reauth-total` | `client-id` | `kafka.consumer.successful_authentication_no_reauth_total` | The total number of connections with successful authentication where the client does not support re-authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `successful-authentication-rate` | `client-id` | `kafka.consumer.successful_authentication_rate` | The number of connections with successful authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `successful-authentication-total` | `client-id` | `kafka.consumer.successful_authentication_total` | The total number of connections with successful authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `successful-reauthentication-rate` | `client-id` | `kafka.consumer.successful_reauthentication_rate` | The number of successful re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `successful-reauthentication-total` | `client-id` | `kafka.consumer.successful_reauthentication_total` | The total number of successful re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `time-between-poll-avg` | `client-id` | `kafka.consumer.time_between_poll_avg` | The average delay between invocations of poll(). | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `time-between-poll-max` | `client-id` | `kafka.consumer.time_between_poll_max` | The max delay between invocations of poll(). | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `incoming-byte-rate` | `client-id`,`node-id` | `kafka.consumer.incoming_byte_rate` | The number of bytes read off all sockets per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `incoming-byte-total` | `client-id`,`node-id` | `kafka.consumer.incoming_byte_total` | The total number of bytes read off all sockets. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-node-metrics` | `outgoing-byte-rate` | `client-id`,`node-id` | `kafka.consumer.outgoing_byte_rate` | The number of outgoing bytes sent to all servers per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `outgoing-byte-total` | `client-id`,`node-id` | `kafka.consumer.outgoing_byte_total` | The total number of outgoing bytes sent to all servers. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-node-metrics` | `request-latency-avg` | `client-id`,`node-id` | `kafka.consumer.request_latency_avg` | | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-latency-max` | `client-id`,`node-id` | `kafka.consumer.request_latency_max` | | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-rate` | `client-id`,`node-id` | `kafka.consumer.request_rate` | The number of requests sent per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-size-avg` | `client-id`,`node-id` | `kafka.consumer.request_size_avg` | The average size of requests sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-size-max` | `client-id`,`node-id` | `kafka.consumer.request_size_max` | The maximum size of any request sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-total` | `client-id`,`node-id` | `kafka.consumer.request_total` | The total number of requests sent. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-node-metrics` | `response-rate` | `client-id`,`node-id` | `kafka.consumer.response_rate` | The number of responses received per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `response-total` | `client-id`,`node-id` | `kafka.consumer.response_total` | The total number of responses received. | `DOUBLE_OBSERVABLE_COUNTER` |
| `kafka-metrics-count` | `count` | `client-id` | | | |
| `producer-metrics` | `batch-size-avg` | `client-id` | `kafka.producer.batch_size_avg` | The average number of bytes sent per partition per-request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `batch-size-max` | `client-id` | `kafka.producer.batch_size_max` | The max number of bytes sent per partition per-request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `batch-split-rate` | `client-id` | `kafka.producer.batch_split_rate` | The average number of batch splits per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `batch-split-total` | `client-id` | `kafka.producer.batch_split_total` | The total number of batch splits. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `buffer-available-bytes` | `client-id` | `kafka.producer.buffer_available_bytes` | The total amount of buffer memory that is not being used (either unallocated or in the free list). | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `buffer-exhausted-rate` | `client-id` | `kafka.producer.buffer_exhausted_rate` | The average per-second number of record sends that are dropped due to buffer exhaustion. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `buffer-exhausted-total` | `client-id` | `kafka.producer.buffer_exhausted_total` | The total number of record sends that are dropped due to buffer exhaustion. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `buffer-total-bytes` | `client-id` | `kafka.producer.buffer_total_bytes` | The maximum amount of buffer memory the client can use (whether or not it is currently used). | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `bufferpool-wait-ratio` | `client-id` | `kafka.producer.bufferpool_wait_ratio` | The fraction of time an appender waits for space allocation. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `bufferpool-wait-time-total` | `client-id` | `kafka.producer.bufferpool_wait_time_total` | The total time an appender waits for space allocation. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `compression-rate-avg` | `client-id` | `kafka.producer.compression_rate_avg` | The average compression rate of record batches. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-close-rate` | `client-id` | `kafka.producer.connection_close_rate` | The number of connections closed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-close-total` | `client-id` | `kafka.producer.connection_close_total` | The total number of connections closed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `connection-count` | `client-id` | `kafka.producer.connection_count` | The current number of active connections. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-creation-rate` | `client-id` | `kafka.producer.connection_creation_rate` | The number of new connections established per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-creation-total` | `client-id` | `kafka.producer.connection_creation_total` | The total number of new connections established. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `failed-authentication-rate` | `client-id` | `kafka.producer.failed_authentication_rate` | The number of connections with failed authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `failed-authentication-total` | `client-id` | `kafka.producer.failed_authentication_total` | The total number of connections with failed authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `failed-reauthentication-rate` | `client-id` | `kafka.producer.failed_reauthentication_rate` | The number of failed re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `failed-reauthentication-total` | `client-id` | `kafka.producer.failed_reauthentication_total` | The total number of failed re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `incoming-byte-rate` | `client-id` | | | |
| `producer-metrics` | `incoming-byte-total` | `client-id` | | | |
| `producer-metrics` | `io-ratio` | `client-id` | `kafka.producer.io_ratio` | The fraction of time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-time-ns-avg` | `client-id` | `kafka.producer.io_time_ns_avg` | The average length of time for I/O per select call in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-wait-ratio` | `client-id` | `kafka.producer.io_wait_ratio` | The fraction of time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-wait-time-ns-avg` | `client-id` | `kafka.producer.io_wait_time_ns_avg` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-waittime-total` | `client-id` | `kafka.producer.io_waittime_total` | The total time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `iotime-total` | `client-id` | `kafka.producer.iotime_total` | The total time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `metadata-age` | `client-id` | `kafka.producer.metadata_age` | The age in seconds of the current producer metadata being used. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `network-io-rate` | `client-id` | `kafka.producer.network_io_rate` | The number of network operations (reads or writes) on all connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `network-io-total` | `client-id` | `kafka.producer.network_io_total` | The total number of network operations (reads or writes) on all connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `outgoing-byte-rate` | `client-id` | | | |
| `producer-metrics` | `outgoing-byte-total` | `client-id` | | | |
| `producer-metrics` | `produce-throttle-time-avg` | `client-id` | `kafka.producer.produce_throttle_time_avg` | The average time in ms a request was throttled by a broker. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `produce-throttle-time-max` | `client-id` | `kafka.producer.produce_throttle_time_max` | The maximum time in ms a request was throttled by a broker. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `reauthentication-latency-avg` | `client-id` | `kafka.producer.reauthentication_latency_avg` | The average latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `reauthentication-latency-max` | `client-id` | `kafka.producer.reauthentication_latency_max` | The max latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-error-rate` | `client-id` | | | |
| `producer-metrics` | `record-error-total` | `client-id` | | | |
| `producer-metrics` | `record-queue-time-avg` | `client-id` | `kafka.producer.record_queue_time_avg` | The average time in ms record batches spent in the send buffer. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-queue-time-max` | `client-id` | `kafka.producer.record_queue_time_max` | The maximum time in ms record batches spent in the send buffer. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-retry-rate` | `client-id` | | | |
| `producer-metrics` | `record-retry-total` | `client-id` | | | |
| `producer-metrics` | `record-send-rate` | `client-id` | | | |
| `producer-metrics` | `record-send-total` | `client-id` | | | |
| `producer-metrics` | `record-size-avg` | `client-id` | `kafka.producer.record_size_avg` | The average record size. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-size-max` | `client-id` | `kafka.producer.record_size_max` | The maximum record size. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `records-per-request-avg` | `client-id` | `kafka.producer.records_per_request_avg` | The average number of records per request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `request-latency-avg` | `client-id` | | | |
| `producer-metrics` | `request-latency-max` | `client-id` | | | |
| `producer-metrics` | `request-rate` | `client-id` | | | |
| `producer-metrics` | `request-size-avg` | `client-id` | | | |
| `producer-metrics` | `request-size-max` | `client-id` | | | |
| `producer-metrics` | `request-total` | `client-id` | | | |
| `producer-metrics` | `requests-in-flight` | `client-id` | `kafka.producer.requests_in_flight` | The current number of in-flight requests awaiting a response. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `response-rate` | `client-id` | | | |
| `producer-metrics` | `response-total` | `client-id` | | | |
| `producer-metrics` | `select-rate` | `client-id` | `kafka.producer.select_rate` | The number of times the I/O layer checked for new I/O to perform per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `select-total` | `client-id` | `kafka.producer.select_total` | The total number of times the I/O layer checked for new I/O to perform. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `successful-authentication-no-reauth-total` | `client-id` | `kafka.producer.successful_authentication_no_reauth_total` | The total number of connections with successful authentication where the client does not support re-authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `successful-authentication-rate` | `client-id` | `kafka.producer.successful_authentication_rate` | The number of connections with successful authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `successful-authentication-total` | `client-id` | `kafka.producer.successful_authentication_total` | The total number of connections with successful authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `successful-reauthentication-rate` | `client-id` | `kafka.producer.successful_reauthentication_rate` | The number of successful re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `successful-reauthentication-total` | `client-id` | `kafka.producer.successful_reauthentication_total` | The total number of successful re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `waiting-threads` | `client-id` | `kafka.producer.waiting_threads` | The number of user threads blocked waiting for buffer memory to enqueue their records. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `incoming-byte-rate` | `client-id`,`node-id` | `kafka.producer.incoming_byte_rate` | The number of bytes read off all sockets per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `incoming-byte-total` | `client-id`,`node-id` | `kafka.producer.incoming_byte_total` | The total number of bytes read off all sockets. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-node-metrics` | `outgoing-byte-rate` | `client-id`,`node-id` | `kafka.producer.outgoing_byte_rate` | The number of outgoing bytes sent to all servers per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `outgoing-byte-total` | `client-id`,`node-id` | `kafka.producer.outgoing_byte_total` | The total number of outgoing bytes sent to all servers. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-node-metrics` | `request-latency-avg` | `client-id`,`node-id` | `kafka.producer.request_latency_avg` | The average request latency in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-latency-max` | `client-id`,`node-id` | `kafka.producer.request_latency_max` | The maximum request latency in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-rate` | `client-id`,`node-id` | `kafka.producer.request_rate` | The number of requests sent per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-size-avg` | `client-id`,`node-id` | `kafka.producer.request_size_avg` | The average size of requests sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-size-max` | `client-id`,`node-id` | `kafka.producer.request_size_max` | The maximum size of any request sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-total` | `client-id`,`node-id` | `kafka.producer.request_total` | The total number of requests sent. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-node-metrics` | `response-rate` | `client-id`,`node-id` | `kafka.producer.response_rate` | The number of responses received per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `response-total` | `client-id`,`node-id` | `kafka.producer.response_total` | The total number of responses received. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `byte-rate` | `client-id`,`topic` | `kafka.producer.byte_rate` | The average number of bytes sent per second for a topic. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `byte-total` | `client-id`,`topic` | `kafka.producer.byte_total` | The total number of bytes sent for a topic. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `compression-rate` | `client-id`,`topic` | `kafka.producer.compression_rate` | The average compression rate of record batches for a topic. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-error-rate` | `client-id`,`topic` | `kafka.producer.record_error_rate` | The average per-second number of record sends that resulted in errors. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-error-total` | `client-id`,`topic` | `kafka.producer.record_error_total` | The total number of record sends that resulted in errors. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `record-retry-rate` | `client-id`,`topic` | `kafka.producer.record_retry_rate` | The average per-second number of retried record sends. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-retry-total` | `client-id`,`topic` | `kafka.producer.record_retry_total` | The total number of retried record sends. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `record-send-rate` | `client-id`,`topic` | `kafka.producer.record_send_rate` | The average number of records sent per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-send-total` | `client-id`,`topic` | `kafka.producer.record_send_total` | The total number of records sent. | `DOUBLE_OBSERVABLE_COUNTER` |
| Metric Group | Metric Name | Attribute Keys | Instrument Name | Instrument Description | Instrument Type |
|----------------------------------|---------------------------------------------|---------------------------------|------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| `consumer-coordinator-metrics` | `assigned-partitions` | `client-id` | `kafka.consumer.assigned_partitions` | The number of partitions currently assigned to this consumer. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-latency-avg` | `client-id` | `kafka.consumer.commit_latency_avg` | The average time taken for a commit request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-latency-max` | `client-id` | `kafka.consumer.commit_latency_max` | The max time taken for a commit request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-rate` | `client-id` | `kafka.consumer.commit_rate` | The number of commit calls per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `commit-total` | `client-id` | `kafka.consumer.commit_total` | The total number of commit calls. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `failed-rebalance-rate-per-hour` | `client-id` | `kafka.consumer.failed_rebalance_rate_per_hour` | The number of failed rebalance events per hour. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `failed-rebalance-total` | `client-id` | `kafka.consumer.failed_rebalance_total` | The total number of failed rebalance events. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `heartbeat-rate` | `client-id` | `kafka.consumer.heartbeat_rate` | The number of heartbeats per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `heartbeat-response-time-max` | `client-id` | `kafka.consumer.heartbeat_response_time_max` | The max time taken to receive a response to a heartbeat request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `heartbeat-total` | `client-id` | `kafka.consumer.heartbeat_total` | The total number of heartbeats. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `join-rate` | `client-id` | `kafka.consumer.join_rate` | The number of group joins per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `join-time-avg` | `client-id` | `kafka.consumer.join_time_avg` | The average time taken for a group rejoin. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `join-time-max` | `client-id` | `kafka.consumer.join_time_max` | The max time taken for a group rejoin. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `join-total` | `client-id` | `kafka.consumer.join_total` | The total number of group joins. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `last-heartbeat-seconds-ago` | `client-id` | `kafka.consumer.last_heartbeat_seconds_ago` | The number of seconds since the last coordinator heartbeat was sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `last-rebalance-seconds-ago` | `client-id` | `kafka.consumer.last_rebalance_seconds_ago` | The number of seconds since the last successful rebalance event. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-assigned-latency-avg` | `client-id` | `kafka.consumer.partition_assigned_latency_avg` | The average time taken for a partition-assigned rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-assigned-latency-max` | `client-id` | `kafka.consumer.partition_assigned_latency_max` | The max time taken for a partition-assigned rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-lost-latency-avg` | `client-id` | `kafka.consumer.partition_lost_latency_avg` | The average time taken for a partition-lost rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-lost-latency-max` | `client-id` | `kafka.consumer.partition_lost_latency_max` | The max time taken for a partition-lost rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-revoked-latency-avg` | `client-id` | `kafka.consumer.partition_revoked_latency_avg` | The average time taken for a partition-revoked rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `partition-revoked-latency-max` | `client-id` | `kafka.consumer.partition_revoked_latency_max` | The max time taken for a partition-revoked rebalance listener callback. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-latency-avg` | `client-id` | `kafka.consumer.rebalance_latency_avg` | The average time taken for a group to complete a successful rebalance, which may be composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-latency-max` | `client-id` | `kafka.consumer.rebalance_latency_max` | The max time taken for a group to complete a successful rebalance, which may be composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-latency-total` | `client-id` | `kafka.consumer.rebalance_latency_total` | The total number of milliseconds this consumer has spent in successful rebalances since creation. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `rebalance-rate-per-hour` | `client-id` | `kafka.consumer.rebalance_rate_per_hour` | The number of successful rebalance events per hour, each event is composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `rebalance-total` | `client-id` | `kafka.consumer.rebalance_total` | The total number of successful rebalance events, each event is composed of several failed re-trials until it succeeded. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-coordinator-metrics` | `sync-rate` | `client-id` | `kafka.consumer.sync_rate` | The number of group syncs per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `sync-time-avg` | `client-id` | `kafka.consumer.sync_time_avg` | The average time taken for a group sync. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `sync-time-max` | `client-id` | `kafka.consumer.sync_time_max` | The max time taken for a group sync. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-coordinator-metrics` | `sync-total` | `client-id` | `kafka.consumer.sync_total` | The total number of group syncs. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `bytes-consumed-rate` | `client-id`,`topic` | `kafka.consumer.bytes_consumed_rate` | The average number of bytes consumed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `bytes-consumed-total` | `client-id`,`topic` | `kafka.consumer.bytes_consumed_total` | The total number of bytes consumed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `fetch-latency-avg` | `client-id` | `kafka.consumer.fetch_latency_avg` | The average time taken for a fetch request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-latency-max` | `client-id` | `kafka.consumer.fetch_latency_max` | The max time taken for any fetch request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-rate` | `client-id` | `kafka.consumer.fetch_rate` | The number of fetch requests per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-size-avg` | `client-id`,`topic` | `kafka.consumer.fetch_size_avg` | The average number of bytes fetched per request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-size-max` | `client-id`,`topic` | `kafka.consumer.fetch_size_max` | The maximum number of bytes fetched per request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-throttle-time-avg` | `client-id` | `kafka.consumer.fetch_throttle_time_avg` | The average throttle time in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-throttle-time-max` | `client-id` | `kafka.consumer.fetch_throttle_time_max` | The maximum throttle time in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `fetch-total` | `client-id` | `kafka.consumer.fetch_total` | The total number of fetch requests. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `records-consumed-rate` | `client-id`,`topic` | `kafka.consumer.records_consumed_rate` | The average number of records consumed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-consumed-total` | `client-id`,`topic` | `kafka.consumer.records_consumed_total` | The total number of records consumed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-fetch-manager-metrics` | `records-lag` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lag` | The latest lag of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lag-avg` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lag_avg` | The average lag of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lag-max` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lag_max` | The maximum lag in terms of number of records for any partition in this window. NOTE: This is based on current offset and not committed offset. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lead` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lead` | The latest lead of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lead-avg` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lead_avg` | The average lead of the partition. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-lead-min` | `client-id`,`topic`,`partition` | `kafka.consumer.records_lead_min` | The minimum lead in terms of number of records for any partition in this window. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-fetch-manager-metrics` | `records-per-request-avg` | `client-id`,`topic` | `kafka.consumer.records_per_request_avg` | The average number of records in each request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `commit-sync-time-ns-total` | `client-id` | `kafka.consumer.commit_sync_time_ns_total` | The total time the consumer has spent in commitSync in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `committed-time-ns-total` | `client-id` | `kafka.consumer.committed_time_ns_total` | The total time the consumer has spent in committed in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `connection-close-rate` | `client-id` | `kafka.consumer.connection_close_rate` | The number of connections closed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-close-total` | `client-id` | `kafka.consumer.connection_close_total` | The total number of connections closed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `connection-count` | `client-id` | `kafka.consumer.connection_count` | The current number of active connections. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-creation-rate` | `client-id` | `kafka.consumer.connection_creation_rate` | The number of new connections established per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `connection-creation-total` | `client-id` | `kafka.consumer.connection_creation_total` | The total number of new connections established. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `failed-authentication-rate` | `client-id` | `kafka.consumer.failed_authentication_rate` | The number of connections with failed authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `failed-authentication-total` | `client-id` | `kafka.consumer.failed_authentication_total` | The total number of connections with failed authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `failed-reauthentication-rate` | `client-id` | `kafka.consumer.failed_reauthentication_rate` | The number of failed re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `failed-reauthentication-total` | `client-id` | `kafka.consumer.failed_reauthentication_total` | The total number of failed re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `io-ratio` | `client-id` | `kafka.consumer.io_ratio` | *Deprecated* The fraction of time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-time-ns-avg` | `client-id` | `kafka.consumer.io_time_ns_avg` | The average length of time for I/O per select call in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-time-ns-total` | `client-id` | `kafka.consumer.io_time_ns_total` | The total time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `io-wait-ratio` | `client-id` | `kafka.consumer.io_wait_ratio` | *Deprecated* The fraction of time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-wait-time-ns-avg` | `client-id` | `kafka.consumer.io_wait_time_ns_avg` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `io-wait-time-ns-total` | `client-id` | `kafka.consumer.io_wait_time_ns_total` | The total time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `io-waittime-total` | `client-id` | `kafka.consumer.io_waittime_total` | *Deprecated* The total time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `iotime-total` | `client-id` | `kafka.consumer.iotime_total` | *Deprecated* The total time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `last-poll-seconds-ago` | `client-id` | `kafka.consumer.last_poll_seconds_ago` | The number of seconds since the last poll() invocation. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `network-io-rate` | `client-id` | `kafka.consumer.network_io_rate` | The number of network operations (reads or writes) on all connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `network-io-total` | `client-id` | `kafka.consumer.network_io_total` | The total number of network operations (reads or writes) on all connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `poll-idle-ratio-avg` | `client-id` | `kafka.consumer.poll_idle_ratio_avg` | The average fraction of time the consumer's poll() is idle as opposed to waiting for the user code to process records. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `reauthentication-latency-avg` | `client-id` | `kafka.consumer.reauthentication_latency_avg` | The average latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `reauthentication-latency-max` | `client-id` | `kafka.consumer.reauthentication_latency_max` | The max latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `select-rate` | `client-id` | `kafka.consumer.select_rate` | The number of times the I/O layer checked for new I/O to perform per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `select-total` | `client-id` | `kafka.consumer.select_total` | The total number of times the I/O layer checked for new I/O to perform. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `successful-authentication-no-reauth-total` | `client-id` | `kafka.consumer.successful_authentication_no_reauth_total` | The total number of connections with successful authentication where the client does not support re-authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `successful-authentication-rate` | `client-id` | `kafka.consumer.successful_authentication_rate` | The number of connections with successful authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `successful-authentication-total` | `client-id` | `kafka.consumer.successful_authentication_total` | The total number of connections with successful authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `successful-reauthentication-rate` | `client-id` | `kafka.consumer.successful_reauthentication_rate` | The number of successful re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `successful-reauthentication-total` | `client-id` | `kafka.consumer.successful_reauthentication_total` | The total number of successful re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-metrics` | `time-between-poll-avg` | `client-id` | `kafka.consumer.time_between_poll_avg` | The average delay between invocations of poll() in milliseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-metrics` | `time-between-poll-max` | `client-id` | `kafka.consumer.time_between_poll_max` | The max delay between invocations of poll() in milliseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `incoming-byte-rate` | `client-id`,`node-id` | `kafka.consumer.incoming_byte_rate` | The number of bytes read off all sockets per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `incoming-byte-total` | `client-id`,`node-id` | `kafka.consumer.incoming_byte_total` | The total number of bytes read off all sockets. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-node-metrics` | `outgoing-byte-rate` | `client-id`,`node-id` | `kafka.consumer.outgoing_byte_rate` | The number of outgoing bytes sent to all servers per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `outgoing-byte-total` | `client-id`,`node-id` | `kafka.consumer.outgoing_byte_total` | The total number of outgoing bytes sent to all servers. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-node-metrics` | `request-latency-avg` | `client-id`,`node-id` | `kafka.consumer.request_latency_avg` | The average request latency in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-latency-max` | `client-id`,`node-id` | `kafka.consumer.request_latency_max` | The maximum request latency in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-rate` | `client-id`,`node-id` | `kafka.consumer.request_rate` | The number of requests sent per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-size-avg` | `client-id`,`node-id` | `kafka.consumer.request_size_avg` | The average size of requests sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-size-max` | `client-id`,`node-id` | `kafka.consumer.request_size_max` | The maximum size of any request sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `request-total` | `client-id`,`node-id` | `kafka.consumer.request_total` | The total number of requests sent. | `DOUBLE_OBSERVABLE_COUNTER` |
| `consumer-node-metrics` | `response-rate` | `client-id`,`node-id` | `kafka.consumer.response_rate` | The number of responses received per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `consumer-node-metrics` | `response-total` | `client-id`,`node-id` | `kafka.consumer.response_total` | The total number of responses received. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `batch-size-avg` | `client-id` | `kafka.producer.batch_size_avg` | The average number of bytes sent per partition per-request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `batch-size-max` | `client-id` | `kafka.producer.batch_size_max` | The max number of bytes sent per partition per-request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `batch-split-rate` | `client-id` | `kafka.producer.batch_split_rate` | The average number of batch splits per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `batch-split-total` | `client-id` | `kafka.producer.batch_split_total` | The total number of batch splits. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `buffer-available-bytes` | `client-id` | `kafka.producer.buffer_available_bytes` | The total amount of buffer memory that is not being used (either unallocated or in the free list). | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `buffer-exhausted-rate` | `client-id` | `kafka.producer.buffer_exhausted_rate` | The average per-second number of record sends that are dropped due to buffer exhaustion. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `buffer-exhausted-total` | `client-id` | `kafka.producer.buffer_exhausted_total` | The total number of record sends that are dropped due to buffer exhaustion. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `buffer-total-bytes` | `client-id` | `kafka.producer.buffer_total_bytes` | The maximum amount of buffer memory the client can use (whether or not it is currently used). | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `bufferpool-wait-ratio` | `client-id` | `kafka.producer.bufferpool_wait_ratio` | The fraction of time an appender waits for space allocation. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `bufferpool-wait-time-ns-total` | `client-id` | `kafka.producer.bufferpool_wait_time_ns_total` | The total time in nanoseconds an appender waits for space allocation. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `bufferpool-wait-time-total` | `client-id` | `kafka.producer.bufferpool_wait_time_total` | *Deprecated* The total time an appender waits for space allocation. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `compression-rate-avg` | `client-id` | `kafka.producer.compression_rate_avg` | The average compression rate of record batches, defined as the average ratio of the compressed batch size over the uncompressed size. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-close-rate` | `client-id` | `kafka.producer.connection_close_rate` | The number of connections closed per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-close-total` | `client-id` | `kafka.producer.connection_close_total` | The total number of connections closed. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `connection-count` | `client-id` | `kafka.producer.connection_count` | The current number of active connections. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-creation-rate` | `client-id` | `kafka.producer.connection_creation_rate` | The number of new connections established per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `connection-creation-total` | `client-id` | `kafka.producer.connection_creation_total` | The total number of new connections established. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `failed-authentication-rate` | `client-id` | `kafka.producer.failed_authentication_rate` | The number of connections with failed authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `failed-authentication-total` | `client-id` | `kafka.producer.failed_authentication_total` | The total number of connections with failed authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `failed-reauthentication-rate` | `client-id` | `kafka.producer.failed_reauthentication_rate` | The number of failed re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `failed-reauthentication-total` | `client-id` | `kafka.producer.failed_reauthentication_total` | The total number of failed re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `flush-time-ns-total` | `client-id` | `kafka.producer.flush_time_ns_total` | Total time producer has spent in flush in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `io-ratio` | `client-id` | `kafka.producer.io_ratio` | *Deprecated* The fraction of time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-time-ns-avg` | `client-id` | `kafka.producer.io_time_ns_avg` | The average length of time for I/O per select call in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-time-ns-total` | `client-id` | `kafka.producer.io_time_ns_total` | The total time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `io-wait-ratio` | `client-id` | `kafka.producer.io_wait_ratio` | *Deprecated* The fraction of time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-wait-time-ns-avg` | `client-id` | `kafka.producer.io_wait_time_ns_avg` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes in nanoseconds. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `io-wait-time-ns-total` | `client-id` | `kafka.producer.io_wait_time_ns_total` | The total time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `io-waittime-total` | `client-id` | `kafka.producer.io_waittime_total` | *Deprecated* The total time the I/O thread spent waiting. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `iotime-total` | `client-id` | `kafka.producer.iotime_total` | *Deprecated* The total time the I/O thread spent doing I/O. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `metadata-age` | `client-id` | `kafka.producer.metadata_age` | The age in seconds of the current producer metadata being used. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `metadata-wait-time-ns-total` | `client-id` | `kafka.producer.metadata_wait_time_ns_total` | Total time producer has spent waiting on topic metadata in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `network-io-rate` | `client-id` | `kafka.producer.network_io_rate` | The number of network operations (reads or writes) on all connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `network-io-total` | `client-id` | `kafka.producer.network_io_total` | The total number of network operations (reads or writes) on all connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `produce-throttle-time-avg` | `client-id` | `kafka.producer.produce_throttle_time_avg` | The average time in ms a request was throttled by a broker. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `produce-throttle-time-max` | `client-id` | `kafka.producer.produce_throttle_time_max` | The maximum time in ms a request was throttled by a broker. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `reauthentication-latency-avg` | `client-id` | `kafka.producer.reauthentication_latency_avg` | The average latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `reauthentication-latency-max` | `client-id` | `kafka.producer.reauthentication_latency_max` | The max latency observed due to re-authentication. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-queue-time-avg` | `client-id` | `kafka.producer.record_queue_time_avg` | The average time in ms record batches spent in the send buffer. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-queue-time-max` | `client-id` | `kafka.producer.record_queue_time_max` | The maximum time in ms record batches spent in the send buffer. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-size-avg` | `client-id` | `kafka.producer.record_size_avg` | The average record size. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `record-size-max` | `client-id` | `kafka.producer.record_size_max` | The maximum record size. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `records-per-request-avg` | `client-id` | `kafka.producer.records_per_request_avg` | The average number of records per request. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `requests-in-flight` | `client-id` | `kafka.producer.requests_in_flight` | The current number of in-flight requests awaiting a response. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `select-rate` | `client-id` | `kafka.producer.select_rate` | The number of times the I/O layer checked for new I/O to perform per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `select-total` | `client-id` | `kafka.producer.select_total` | The total number of times the I/O layer checked for new I/O to perform. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `successful-authentication-no-reauth-total` | `client-id` | `kafka.producer.successful_authentication_no_reauth_total` | The total number of connections with successful authentication where the client does not support re-authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `successful-authentication-rate` | `client-id` | `kafka.producer.successful_authentication_rate` | The number of connections with successful authentication per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `successful-authentication-total` | `client-id` | `kafka.producer.successful_authentication_total` | The total number of connections with successful authentication. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `successful-reauthentication-rate` | `client-id` | `kafka.producer.successful_reauthentication_rate` | The number of successful re-authentication of connections per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-metrics` | `successful-reauthentication-total` | `client-id` | `kafka.producer.successful_reauthentication_total` | The total number of successful re-authentication of connections. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `txn-abort-time-ns-total` | `client-id` | `kafka.producer.txn_abort_time_ns_total` | Total time producer has spent in abortTransaction in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `txn-begin-time-ns-total` | `client-id` | `kafka.producer.txn_begin_time_ns_total` | Total time producer has spent in beginTransaction in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `txn-commit-time-ns-total` | `client-id` | `kafka.producer.txn_commit_time_ns_total` | Total time producer has spent in commitTransaction in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `txn-init-time-ns-total` | `client-id` | `kafka.producer.txn_init_time_ns_total` | Total time producer has spent in initTransactions in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `txn-send-offsets-time-ns-total` | `client-id` | `kafka.producer.txn_send_offsets_time_ns_total` | Total time producer has spent in sendOffsetsToTransaction in nanoseconds. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-metrics` | `waiting-threads` | `client-id` | `kafka.producer.waiting_threads` | The number of user threads blocked waiting for buffer memory to enqueue their records. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `incoming-byte-rate` | `client-id`,`node-id` | `kafka.producer.incoming_byte_rate` | The number of bytes read off all sockets per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `incoming-byte-total` | `client-id`,`node-id` | `kafka.producer.incoming_byte_total` | The total number of bytes read off all sockets. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-node-metrics` | `outgoing-byte-rate` | `client-id`,`node-id` | `kafka.producer.outgoing_byte_rate` | The number of outgoing bytes sent to all servers per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `outgoing-byte-total` | `client-id`,`node-id` | `kafka.producer.outgoing_byte_total` | The total number of outgoing bytes sent to all servers. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-node-metrics` | `request-latency-avg` | `client-id`,`node-id` | `kafka.producer.request_latency_avg` | The average request latency in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-latency-max` | `client-id`,`node-id` | `kafka.producer.request_latency_max` | The maximum request latency in ms. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-rate` | `client-id`,`node-id` | `kafka.producer.request_rate` | The number of requests sent per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-size-avg` | `client-id`,`node-id` | `kafka.producer.request_size_avg` | The average size of requests sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-size-max` | `client-id`,`node-id` | `kafka.producer.request_size_max` | The maximum size of any request sent. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `request-total` | `client-id`,`node-id` | `kafka.producer.request_total` | The total number of requests sent. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-node-metrics` | `response-rate` | `client-id`,`node-id` | `kafka.producer.response_rate` | The number of responses received per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-node-metrics` | `response-total` | `client-id`,`node-id` | `kafka.producer.response_total` | The total number of responses received. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `byte-rate` | `client-id`,`topic` | `kafka.producer.byte_rate` | The average number of bytes sent per second for a topic. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `byte-total` | `client-id`,`topic` | `kafka.producer.byte_total` | The total number of bytes sent for a topic. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `compression-rate` | `client-id`,`topic` | `kafka.producer.compression_rate` | The average compression rate of record batches for a topic, defined as the average ratio of the compressed batch size over the uncompressed size. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-error-rate` | `client-id`,`topic` | `kafka.producer.record_error_rate` | The average per-second number of record sends that resulted in errors. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-error-total` | `client-id`,`topic` | `kafka.producer.record_error_total` | The total number of record sends that resulted in errors. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `record-retry-rate` | `client-id`,`topic` | `kafka.producer.record_retry_rate` | The average per-second number of retried record sends. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-retry-total` | `client-id`,`topic` | `kafka.producer.record_retry_total` | The total number of retried record sends. | `DOUBLE_OBSERVABLE_COUNTER` |
| `producer-topic-metrics` | `record-send-rate` | `client-id`,`topic` | `kafka.producer.record_send_rate` | The average number of records sent per second. | `DOUBLE_OBSERVABLE_GAUGE` |
| `producer-topic-metrics` | `record-send-total` | `client-id`,`topic` | `kafka.producer.record_send_total` | The total number of records sent. | `DOUBLE_OBSERVABLE_COUNTER` |