From 031445e74a22bae303b895ce09fa82a5ca31258a Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Mon, 11 Apr 2022 17:56:56 +0200 Subject: [PATCH 01/12] Initial addition of Kafka metrics. --- .../instrumentation/kafka.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 specification/metrics/semantic_conventions/instrumentation/kafka.md diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md new file mode 100644 index 00000000000..a5e76516667 --- /dev/null +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -0,0 +1,61 @@ +# Instrumenting Kafka + +**Status**: [Experimental](../../../document-status.md) + +This document defines how to apply semantic conventions when instrumenting Kafka. + + + + + + + +## Kafka Metrics + +**Description:** General Kafka metrics. + +| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | +| ------------------------------------ | -------------------- | ---------- | ---- | ----------------------------------------- | -------------- | ------------- | ---------------- | +| kafka.message.count | Asynchronous Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | +| kafka.request.count | Asynchronous Counter | Int64 | requests | `{requests}` | The number of requests received by the broker. | `type` | `produce`, `fetch` | +| kafka.request.failed | Asynchronous Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | +| kafka.request.time.total | Asynchronous Counter | Int64 | milliseconds | `ms` | The total time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | +| kafka.request.time.50p | Asynchronous Gauge | Double | milliseconds | `ms` | The 50th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | +| kafka.request.time.99p | Asynchronous Gauge | Double | milliseconds | `ms` | The 99th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | +| kafka.request.queue | Asynchronous Gauge | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | +| kafka.network.io | Asynchronous Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | +| kafka.purgatory.size | Asynchronous Gauge | Int64 | requests | `{requests}` | The number of requests waiting in the purgatory. | `type` | `produce`, `fetch` | +| kafka.partition.count | Asynchronous Gauge | Int64 | partitions | `{partitions}` | The number of partitions in the broker. | | | +| kafka.partition.offline | Asynchronous Gauge | Int64 | partitions | `{partitions}` | The number of offline partitions. | | | +| kafka.partition.under_replicated | Asynchronous Gauge | Int64 | partition | `{partitions}` | The number of under replicated partitions. | | | +| kafka.isr.operation.count | Asynchronous Counter | Int64 | operations | `{operations}` | The number of in-sync replica shrink and expand operations. | `operation` | `shrink`, `expand` | +| kafka.max.lag | Asynchronous Gauge | Int64 | messages | `{messages}` | Max lag in messages between follower and leader replicas. | | | +| kafka.controller.active.count | Asynchronous Gauge | Int64 | controllers | `{controllers}` | Number of active controllers in the broker. | | | +| kafka.leader.election.rate | Asynchronous Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | +| kafka.unclean.election.rate | Asynchronous Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | +| kafka.logs.flush.time.count | Asynchronous Counter | Int64 | milliseconds | `ms` | The time it has taken to flush logs. | | | +| kafka.logs.flush.time.50th | Asynchronous Gauge | Double | milliseconds | `ms` | The 50th percentile time it has taken to flush logs. | | | +| kafka.logs.flush.time.99th | Asynchronous Gauge | Double | milliseconds | `ms` | The 99th percentile time it has taken to flush logs. | | | + +## Kafka Producer Metrics + +**Description:** Kafka Producer level metrics. + +| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | +| ------------------------------------ | ------------------ | ---------- | ---- | ----------------------------------------- | -------------- | ------------- | ---------------- | +| kafka.producer.io-wait-time-ns-avg | Asynchronous Gauge | Double | nanoseconds | `ns` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes. | client-id | `client-id` value | +| kafka.producer.outgoing-byte-rate | Asynchronous Gauge | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | +| kafka.producer.request-latency-avg | Asynchronous Gauge | Double | milliseconds | `ms` | The average request latency. | `client-id` | `client-id` value | +| kafka.producer.request-rate | Asynchronous Gauge | Double | requests | `{requests}` | The average number of requests sent per second. | `client-id` | `client-id` value | +| kafka.producer.response-rate | Asynchronous Gauge | Double | responses | `{responses}` | Responses received per second. | `client-id` | `client-id` value | +| kafka.producer.byte-rate | Asynchronous Gauge | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.compression-rate | Asynchronous Gauge | Double | compression rate | `{compressionrate}` | The average compression rate of record batches for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.record-error-rate | Asynchronous Gauge | Double | error rate | `{errorrate}` | The average per-second number of record sends that resulted in errors for a specifific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.record-retry-rate | Asynchronous Gauge | Double | retry rate | `{retryrate}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.record-send-rate | Asynchronous Gauge | Double | records sent rate | `{recordssentrate}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | + From 51683b4427ca2aa618192e41383cdc0dffa338f7 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Tue, 12 Apr 2022 09:12:03 -0500 Subject: [PATCH 02/12] Update specification/metrics/semantic_conventions/instrumentation/kafka.md Co-authored-by: Reiley Yang --- .../metrics/semantic_conventions/instrumentation/kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index a5e76516667..054a5eb7145 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -52,7 +52,7 @@ This document defines how to apply semantic conventions when instrumenting Kafka | | | | | | | `topic` | topic name | | kafka.producer.compression-rate | Asynchronous Gauge | Double | compression rate | `{compressionrate}` | The average compression rate of record batches for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-error-rate | Asynchronous Gauge | Double | error rate | `{errorrate}` | The average per-second number of record sends that resulted in errors for a specifific topic. | `client-id` | `client-id` value | +| kafka.producer.record-error-rate | Asynchronous Gauge | Double | error rate | `{errorrate}` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | | kafka.producer.record-retry-rate | Asynchronous Gauge | Double | retry rate | `{retryrate}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | From 7ed346d3e82c6cff6adb86518539041978cdedc3 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Thu, 21 Apr 2022 00:04:36 +0200 Subject: [PATCH 03/12] First pass of feedback. --- .../instrumentation/kafka.md | 78 +++++++++---------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index 054a5eb7145..5be2ec23062 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -14,48 +14,48 @@ This document defines how to apply semantic conventions when instrumenting Kafka **Description:** General Kafka metrics. -| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | -| ------------------------------------ | -------------------- | ---------- | ---- | ----------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.message.count | Asynchronous Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | -| kafka.request.count | Asynchronous Counter | Int64 | requests | `{requests}` | The number of requests received by the broker. | `type` | `produce`, `fetch` | -| kafka.request.failed | Asynchronous Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | -| kafka.request.time.total | Asynchronous Counter | Int64 | milliseconds | `ms` | The total time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | -| kafka.request.time.50p | Asynchronous Gauge | Double | milliseconds | `ms` | The 50th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | -| kafka.request.time.99p | Asynchronous Gauge | Double | milliseconds | `ms` | The 99th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | -| kafka.request.queue | Asynchronous Gauge | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | -| kafka.network.io | Asynchronous Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | -| kafka.purgatory.size | Asynchronous Gauge | Int64 | requests | `{requests}` | The number of requests waiting in the purgatory. | `type` | `produce`, `fetch` | -| kafka.partition.count | Asynchronous Gauge | Int64 | partitions | `{partitions}` | The number of partitions in the broker. | | | -| kafka.partition.offline | Asynchronous Gauge | Int64 | partitions | `{partitions}` | The number of offline partitions. | | | -| kafka.partition.under_replicated | Asynchronous Gauge | Int64 | partition | `{partitions}` | The number of under replicated partitions. | | | -| kafka.isr.operation.count | Asynchronous Counter | Int64 | operations | `{operations}` | The number of in-sync replica shrink and expand operations. | `operation` | `shrink`, `expand` | -| kafka.max.lag | Asynchronous Gauge | Int64 | messages | `{messages}` | Max lag in messages between follower and leader replicas. | | | -| kafka.controller.active.count | Asynchronous Gauge | Int64 | controllers | `{controllers}` | Number of active controllers in the broker. | | | -| kafka.leader.election.rate | Asynchronous Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | -| kafka.unclean.election.rate | Asynchronous Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | -| kafka.logs.flush.time.count | Asynchronous Counter | Int64 | milliseconds | `ms` | The time it has taken to flush logs. | | | -| kafka.logs.flush.time.50th | Asynchronous Gauge | Double | milliseconds | `ms` | The 50th percentile time it has taken to flush logs. | | | -| kafka.logs.flush.time.99th | Asynchronous Gauge | Double | milliseconds | `ms` | The 99th percentile time it has taken to flush logs. | | | +| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | +| ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | +| kafka.message.count | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | +| kafka.request.count | Counter | Int64 | requests | `{requests}` | The number of requests received by the broker. | `type` | `produce`, `fetch` | +| kafka.request.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | +| kafka.request.time.total | Counter | Int64 | milliseconds | `ms` | The total time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | +| kafka.request.time.50p | Gauge | Double | milliseconds | `ms` | The 50th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | +| kafka.request.time.99p | Gauge | Double | milliseconds | `ms` | The 99th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | +| kafka.request.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | +| kafka.network.io | Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | +| kafka.purgatory.size | UpDownCounter | Int64 | requests | `{requests}` | The number of requests waiting in the purgatory. | `type` | `produce`, `fetch` | +| kafka.partition.count | UpDownCounter | Int64 | partitions | `{partitions}` | The number of partitions in the broker. | | | +| kafka.partition.offline | UpDownCounter | Int64 | partitions | `{partitions}` | The number of offline partitions. | | | +| kafka.partition.under_replicated | UpDownCounter | Int64 | partition | `{partitions}` | The number of under replicated partitions. | | | +| kafka.isr.operation.count | Counter | Int64 | operations | `{operations}` | The number of in-sync replica shrink and expand operations. | `operation` | `shrink`, `expand` | +| kafka.max.lag | UpDownCounter | Int64 | messages | `{messages}` | Max lag in messages between follower and leader replicas. | | | +| kafka.controller.active.count | UpDownCounter | Int64 | controllers | `{controllers}` | The number of active controllers in the broker. | | | +| kafka.leader.election.rate | Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | +| kafka.unclean.election.rate | Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | +| kafka.logs.flush.time.count | Counter | Int64 | milliseconds | `ms` | The time it has taken to flush logs. | | | +| kafka.logs.flush.time.50th | Gauge | Double | milliseconds | `ms` | The 50th percentile time it has taken to flush logs. | | | +| kafka.logs.flush.time.99th | Gauge | Double | milliseconds | `ms` | The 99th percentile time it has taken to flush logs. | | | ## Kafka Producer Metrics **Description:** Kafka Producer level metrics. -| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | -| ------------------------------------ | ------------------ | ---------- | ---- | ----------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.producer.io-wait-time-ns-avg | Asynchronous Gauge | Double | nanoseconds | `ns` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes. | client-id | `client-id` value | -| kafka.producer.outgoing-byte-rate | Asynchronous Gauge | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | -| kafka.producer.request-latency-avg | Asynchronous Gauge | Double | milliseconds | `ms` | The average request latency. | `client-id` | `client-id` value | -| kafka.producer.request-rate | Asynchronous Gauge | Double | requests | `{requests}` | The average number of requests sent per second. | `client-id` | `client-id` value | -| kafka.producer.response-rate | Asynchronous Gauge | Double | responses | `{responses}` | Responses received per second. | `client-id` | `client-id` value | -| kafka.producer.byte-rate | Asynchronous Gauge | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | -| kafka.producer.compression-rate | Asynchronous Gauge | Double | compression rate | `{compressionrate}` | The average compression rate of record batches for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | -| kafka.producer.record-error-rate | Asynchronous Gauge | Double | error rate | `{errorrate}` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | -| kafka.producer.record-retry-rate | Asynchronous Gauge | Double | retry rate | `{retryrate}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | -| kafka.producer.record-send-rate | Asynchronous Gauge | Double | records sent rate | `{recordssentrate}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | +| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | +| ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | +| kafka.producer.io-wait-time-ns-avg | UpDownCounter | Double | nanoseconds | `ns` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes. | client-id | `client-id` value | +| kafka.producer.outgoing-byte-rate | UpDownCounter | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | +| kafka.producer.request-latency-avg | UpDownCounter | Double | milliseconds | `ms` | The average request latency. | `client-id` | `client-id` value | +| kafka.producer.request-rate | UpDownCounter | Double | requests | `{requests}` | The average number of requests sent per second. | `client-id` | `client-id` value | +| kafka.producer.response-rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | +| kafka.producer.byte-rate | UpDownCounter | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.compression-rate | UpDownCounter | Double | compression rate | `{compressionrate}` | The average compression rate of record batches for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.record-error-rate | UpDownCounter | Double | error rate | `{errorrate}` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.record-retry-rate | UpDownCounter | Double | retry rate | `{retryrate}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | +| kafka.producer.record-send-rate | UpDownCounter | Double | records sent rate | `{recordssentrate}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | +| | | | | | | `topic` | topic name | From 792222b0ee1d01565c5023f4773347060a67a6ea Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Thu, 5 May 2022 00:20:19 +0200 Subject: [PATCH 04/12] Remove metrics that may need Summary/Histogram points. --- .../semantic_conventions/instrumentation/kafka.md | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index 5be2ec23062..212cd109fe4 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -17,11 +17,7 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | | kafka.message.count | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | -| kafka.request.count | Counter | Int64 | requests | `{requests}` | The number of requests received by the broker. | `type` | `produce`, `fetch` | | kafka.request.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | -| kafka.request.time.total | Counter | Int64 | milliseconds | `ms` | The total time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | -| kafka.request.time.50p | Gauge | Double | milliseconds | `ms` | The 50th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | -| kafka.request.time.99p | Gauge | Double | milliseconds | `ms` | The 99th percentile time the broker has taken to service requests. | `type` | `Produce`, `FetchConsumer`, `FetchFollower` | | kafka.request.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | | kafka.network.io | Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | | kafka.purgatory.size | UpDownCounter | Int64 | requests | `{requests}` | The number of requests waiting in the purgatory. | `type` | `produce`, `fetch` | @@ -33,9 +29,6 @@ This document defines how to apply semantic conventions when instrumenting Kafka | kafka.controller.active.count | UpDownCounter | Int64 | controllers | `{controllers}` | The number of active controllers in the broker. | | | | kafka.leader.election.rate | Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | | kafka.unclean.election.rate | Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | -| kafka.logs.flush.time.count | Counter | Int64 | milliseconds | `ms` | The time it has taken to flush logs. | | | -| kafka.logs.flush.time.50th | Gauge | Double | milliseconds | `ms` | The 50th percentile time it has taken to flush logs. | | | -| kafka.logs.flush.time.99th | Gauge | Double | milliseconds | `ms` | The 99th percentile time it has taken to flush logs. | | | ## Kafka Producer Metrics @@ -43,10 +36,7 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.producer.io-wait-time-ns-avg | UpDownCounter | Double | nanoseconds | `ns` | The average length of time the I/O thread spent waiting for a socket ready for reads or writes. | client-id | `client-id` value | | kafka.producer.outgoing-byte-rate | UpDownCounter | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | -| kafka.producer.request-latency-avg | UpDownCounter | Double | milliseconds | `ms` | The average request latency. | `client-id` | `client-id` value | -| kafka.producer.request-rate | UpDownCounter | Double | requests | `{requests}` | The average number of requests sent per second. | `client-id` | `client-id` value | | kafka.producer.response-rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | | kafka.producer.byte-rate | UpDownCounter | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | From 2b8ba1250e4634f6645048ce9e0d4fa10894efd3 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Fri, 6 May 2022 04:01:41 +0200 Subject: [PATCH 05/12] Apply jmacd's suggestions. --- .../semantic_conventions/instrumentation/kafka.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index 212cd109fe4..7b1005deec2 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -6,7 +6,7 @@ This document defines how to apply semantic conventions when instrumenting Kafka - + @@ -27,8 +27,8 @@ This document defines how to apply semantic conventions when instrumenting Kafka | kafka.isr.operation.count | Counter | Int64 | operations | `{operations}` | The number of in-sync replica shrink and expand operations. | `operation` | `shrink`, `expand` | | kafka.max.lag | UpDownCounter | Int64 | messages | `{messages}` | Max lag in messages between follower and leader replicas. | | | | kafka.controller.active.count | UpDownCounter | Int64 | controllers | `{controllers}` | The number of active controllers in the broker. | | | -| kafka.leader.election.rate | Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | -| kafka.unclean.election.rate | Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | +| kafka.leader.elections | Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | +| kafka.leader.unclean-elections | Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | ## Kafka Producer Metrics @@ -40,12 +40,12 @@ This document defines how to apply semantic conventions when instrumenting Kafka | kafka.producer.response-rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | | kafka.producer.byte-rate | UpDownCounter | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.compression-rate | UpDownCounter | Double | compression rate | `{compressionrate}` | The average compression rate of record batches for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.compression-ratio | Gauge | Double | compression ratio | `{compression}` | The average compression ratio of record batches for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-error-rate | UpDownCounter | Double | error rate | `{errorrate}` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-errors.rate | Gauge | Double | error rate | `{error}s` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-retry-rate | UpDownCounter | Double | retry rate | `{retryrate}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-retry.rate | Gauge | Double | retry rate | `{retries}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-send-rate | UpDownCounter | Double | records sent rate | `{recordssentrate}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-sent.rate | Gauge | Double | records sent rate | `{records_sent}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | From e8128b2ce4dd26f42abc965cc65e51d1fae516ea Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Fri, 6 May 2022 04:29:28 +0200 Subject: [PATCH 06/12] A little naming tuning. --- .../metrics/semantic_conventions/instrumentation/kafka.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index 7b1005deec2..e5c9efb7856 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -36,13 +36,13 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.producer.outgoing-byte-rate | UpDownCounter | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | -| kafka.producer.response-rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | +| kafka.producer.outgoing-byte.rate | UpDownCounter | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | +| kafka.producer.response.rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | | kafka.producer.byte-rate | UpDownCounter | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | | kafka.producer.compression-ratio | Gauge | Double | compression ratio | `{compression}` | The average compression ratio of record batches for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-errors.rate | Gauge | Double | error rate | `{error}s` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-error.rate | Gauge | Double | error rate | `{error}s` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | | kafka.producer.record-retry.rate | Gauge | Double | retry rate | `{retries}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | From f6751c9eac0d36530cc266b9e4ead4f8cf951d22 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Fri, 6 May 2022 15:23:10 +0200 Subject: [PATCH 07/12] Lint. --- .../semantic_conventions/instrumentation/kafka.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index e5c9efb7856..d6e5346a989 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -6,7 +6,8 @@ This document defines how to apply semantic conventions when instrumenting Kafka - +- [Kafka Metrics](#kafka-metrics) +- [Kafka Producer Metrics](#kafka-producer-metrics) @@ -14,8 +15,8 @@ This document defines how to apply semantic conventions when instrumenting Kafka **Description:** General Kafka metrics. -| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | -| ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | +| Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | +| ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | | kafka.message.count | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | | kafka.request.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | | kafka.request.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | @@ -34,8 +35,8 @@ This document defines how to apply semantic conventions when instrumenting Kafka **Description:** Kafka Producer level metrics. -| Name | Instrument | Value type | Unit | Unit ([UCUM](README.md#instrument-units)) | Description | Attribute Key | Attribute Values | -| ------------------------------------ | ------------- | ---------- | ------ | ----------------------------------------- | -------------- | ------------- | ---------------- | +| Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | +| ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | | kafka.producer.outgoing-byte.rate | UpDownCounter | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | | kafka.producer.response.rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | | kafka.producer.byte-rate | UpDownCounter | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | @@ -48,4 +49,3 @@ This document defines how to apply semantic conventions when instrumenting Kafka | | | | | | | `topic` | topic name | | kafka.producer.record-sent.rate | Gauge | Double | records sent rate | `{records_sent}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | - From 6277132bc3040ee621af34b7b198c092dafcc785 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Fri, 6 May 2022 11:28:48 -0500 Subject: [PATCH 08/12] Update specification/metrics/semantic_conventions/instrumentation/kafka.md Co-authored-by: Joshua MacDonald --- .../metrics/semantic_conventions/instrumentation/kafka.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index d6e5346a989..19fa577eb4d 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -17,7 +17,7 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.message.count | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | +| kafka.messages | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | | kafka.request.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | | kafka.request.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | | kafka.network.io | Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | From ad547a283c537224f955ede9402514333a73d072 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Fri, 6 May 2022 20:46:52 +0200 Subject: [PATCH 09/12] More tuning. --- .../semantic_conventions/instrumentation/kafka.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index 19fa577eb4d..b2090a0809f 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -17,17 +17,17 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.messages | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | +| kafka.messages | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | | kafka.request.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | | kafka.request.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | | kafka.network.io | Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | | kafka.purgatory.size | UpDownCounter | Int64 | requests | `{requests}` | The number of requests waiting in the purgatory. | `type` | `produce`, `fetch` | -| kafka.partition.count | UpDownCounter | Int64 | partitions | `{partitions}` | The number of partitions in the broker. | | | -| kafka.partition.offline | UpDownCounter | Int64 | partitions | `{partitions}` | The number of offline partitions. | | | -| kafka.partition.under_replicated | UpDownCounter | Int64 | partition | `{partitions}` | The number of under replicated partitions. | | | -| kafka.isr.operation.count | Counter | Int64 | operations | `{operations}` | The number of in-sync replica shrink and expand operations. | `operation` | `shrink`, `expand` | +| kafka.partitions.all | UpDownCounter | Int64 | partitions | `{partitions}` | The number of partitions in the broker. | | | +| kafka.partitions.offline | UpDownCounter | Int64 | partitions | `{partitions}` | The number of offline partitions. | | | +| kafka.partitions.under-replicated | UpDownCounter | Int64 | partition | `{partitions}` | The number of under replicated partitions. | | | +| kafka.isr.operations | Counter | Int64 | operations | `{operations}` | The number of in-sync replica shrink and expand operations. | `operation` | `shrink`, `expand` | | kafka.max.lag | UpDownCounter | Int64 | messages | `{messages}` | Max lag in messages between follower and leader replicas. | | | -| kafka.controller.active.count | UpDownCounter | Int64 | controllers | `{controllers}` | The number of active controllers in the broker. | | | +| kafka.controllers.active | UpDownCounter | Int64 | controllers | `{controllers}` | The number of active controllers in the broker. | | | | kafka.leader.elections | Counter | Int64 | elections | `{elections}` | Leader election rate (increasing values indicates broker failures). | | | | kafka.leader.unclean-elections | Counter | Int64 | elections | `{elections}` | Unclean leader election rate (increasing values indicates broker failures). | | | From ed2a0978bc504f27cd9941c921e7625ccd485105 Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Sat, 7 May 2022 00:28:32 +0200 Subject: [PATCH 10/12] Improve names a little bit more. --- .../semantic_conventions/instrumentation/kafka.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index b2090a0809f..c267b4bcd5c 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -18,8 +18,8 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | | kafka.messages | Counter | Int64 | messages | `{messages}` | The number of messages received by the broker. | | | -| kafka.request.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | -| kafka.request.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | +| kafka.requests.failed | Counter | Int64 | requests | `{requests}` | The number of requests to the broker resulting in a failure. | `type` | `produce`, `fetch` | +| kafka.requests.queue | UpDownCounter | Int64 | requests | `{requests}` | The number of requests in the request queue. | | | | kafka.network.io | Counter | Int64 | bytes | `by` | The bytes received or sent by the broker. | `state` | `in`, `out` | | kafka.purgatory.size | UpDownCounter | Int64 | requests | `{requests}` | The number of requests waiting in the purgatory. | `type` | `produce`, `fetch` | | kafka.partitions.all | UpDownCounter | Int64 | partitions | `{partitions}` | The number of partitions in the broker. | | | @@ -37,9 +37,9 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.producer.outgoing-byte.rate | UpDownCounter | Double | bytes | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | -| kafka.producer.response.rate | UpDownCounter | Double | responses | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | -| kafka.producer.byte-rate | UpDownCounter | Double | bytes | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.outgoing-bytes.rate | Gauge | Double | bytes per second | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | +| kafka.producer.responses.rate | Gauge | Double | responses per second | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | +| kafka.producer.bytes.rate | Gauge | Double | bytes per second | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | | kafka.producer.compression-ratio | Gauge | Double | compression ratio | `{compression}` | The average compression ratio of record batches for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | From 5c81afe37644f04a060c5316092d873898ee1bee Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Fri, 6 May 2022 17:35:09 -0500 Subject: [PATCH 11/12] Update specification/metrics/semantic_conventions/instrumentation/kafka.md Co-authored-by: Joshua MacDonald --- .../semantic_conventions/instrumentation/kafka.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index c267b4bcd5c..6eae9737d2e 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -37,15 +37,15 @@ This document defines how to apply semantic conventions when instrumenting Kafka | Name | Instrument | Value type | Unit | Unit ([UCUM](../README.md#instrument-units)) | Description | Attribute Key | Attribute Values | | ------------------------------------ | ------------- | ---------- | ------ | -------------------------------------------- | -------------- | ------------- | ---------------- | -| kafka.producer.outgoing-bytes.rate | Gauge | Double | bytes per second | `by`| The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | -| kafka.producer.responses.rate | Gauge | Double | responses per second | `{responses}` | The average number of responses received per second. | `client-id` | `client-id` value | -| kafka.producer.bytes.rate | Gauge | Double | bytes per second | `by` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.outgoing-bytes.rate | Gauge | Double | bytes per second | `by`/s | The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | +| kafka.producer.responses.rate | Gauge | Double | responses per second | `{responses}/s` | The average number of responses received per second. | `client-id` | `client-id` value | +| kafka.producer.bytes.rate | Gauge | Double | bytes per second | `by/s` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | | kafka.producer.compression-ratio | Gauge | Double | compression ratio | `{compression}` | The average compression ratio of record batches for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-error.rate | Gauge | Double | error rate | `{error}s` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-error.rate | Gauge | Double | error rate | `{errors}/s` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-retry.rate | Gauge | Double | retry rate | `{retries}` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-retry.rate | Gauge | Double | retry rate | `{retries}/s` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | -| kafka.producer.record-sent.rate | Gauge | Double | records sent rate | `{records_sent}` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | +| kafka.producer.record-sent.rate | Gauge | Double | records sent rate | `{records_sent}/s` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | From b4c817cb2a59b0d39db0bd648fa0f3c219dc683c Mon Sep 17 00:00:00 2001 From: Carlos Alberto Cortez Date: Sat, 7 May 2022 00:46:32 +0200 Subject: [PATCH 12/12] Align table. --- .../metrics/semantic_conventions/instrumentation/kafka.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/metrics/semantic_conventions/instrumentation/kafka.md b/specification/metrics/semantic_conventions/instrumentation/kafka.md index 6eae9737d2e..faa24c3dcaf 100644 --- a/specification/metrics/semantic_conventions/instrumentation/kafka.md +++ b/specification/metrics/semantic_conventions/instrumentation/kafka.md @@ -40,12 +40,12 @@ This document defines how to apply semantic conventions when instrumenting Kafka | kafka.producer.outgoing-bytes.rate | Gauge | Double | bytes per second | `by`/s | The average number of outgoing bytes sent per second to all servers. | `client-id` | `client-id` value | | kafka.producer.responses.rate | Gauge | Double | responses per second | `{responses}/s` | The average number of responses received per second. | `client-id` | `client-id` value | | kafka.producer.bytes.rate | Gauge | Double | bytes per second | `by/s` | The average number of bytes sent per second for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | +| | | | | | | `topic` | topic name | | kafka.producer.compression-ratio | Gauge | Double | compression ratio | `{compression}` | The average compression ratio of record batches for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | +| | | | | | | `topic` | topic name | | kafka.producer.record-error.rate | Gauge | Double | error rate | `{errors}/s` | The average per-second number of record sends that resulted in errors for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | +| | | | | | | `topic` | topic name | | kafka.producer.record-retry.rate | Gauge | Double | retry rate | `{retries}/s` | The average per-second number of retried record sends for a specific topic. | `client-id` | `client-id` value | | | | | | | | `topic` | topic name | | kafka.producer.record-sent.rate | Gauge | Double | records sent rate | `{records_sent}/s` | The average number of records sent per second for a specific topic. | `client-id` | `client-id` value | -| | | | | | | `topic` | topic name | +| | | | | | | `topic` | topic name |