+
+## Installation steps [#installation-steps]
+
+| Parameter | +Description | +Default Value | +
|---|---|---|
| `NEW_RELIC_OTLP_ENDPOINT` | +New Relic OTLP endpoint for your region. For more information, refer to New Relic OTLP endpoints documentation. | +None (Required) | +
| `NEW_RELIC_LICENSE_KEY` | +Your New Relic license key for authentication | +None (Required) | +
| `kafkametrics.brokers` | +Kafka bootstrap service DNS. Format: ` |
+ `kafka.kafka.svc.cluster.local:9092` | +
| `resource.attributes.kafka.cluster.name` | +Name to identify your Kafka cluster in New Relic | +`my-kafka-cluster` | +
| `extraObjects.namespace` | +Kubernetes namespace where your Kafka cluster is deployed | +`kafka` | +
| `kafkametrics.collection_interval` | +Interval for collecting Kafka metrics | +`30s` | +
| `kafkametrics.protocol_version` | +Kafka protocol version for compatibility | +`2.0.0` | +
| `replicaCount` | +Number of collector replicas to deploy | +`1` | +
| `resources.requests.memory` | +Minimum memory allocation for the collector | +`512Mi` | +
| `resources.requests.cpu` | +Minimum CPU allocation for the collector | +`250m` | +
| `resources.limits.memory` | +Maximum memory limit for the collector | +`1Gi` | +
| `resources.limits.cpu` | +Maximum CPU limit for the collector | +`500m` | +
| `image.repository` | +Container image repository for the collector | +`newrelic/nrdot-collector` | +
| `image.tag` | +Container image tag to use | +`latest` | +
| `batch/aggregation.send_batch_size` | +Number of metrics to batch before sending | +`1024` | +
| `batch/aggregation.timeout` | +Maximum time to wait before sending a batch | +`30s` | +
| `otlp/newrelic.timeout` | +Timeout for sending data to New Relic | +`30s` | +
| `sending_queue.num_consumers` | +Number of consumers processing the sending queue | +`12` | +
| `sending_queue.queue_size` | +Size of the sending queue buffer | +`5000` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `-javaagent` | +Attaches the OpenTelemetry Java agent to the Kafka broker JVM | +None (Required) | +
| `-Dotel.jmx.enabled` | +Enables JMX metrics collection from the Kafka broker | +`false` | +
| `-Dotel.jmx.config` | +Points to your custom JMX metrics configuration file (mounted from ConfigMap) | +None (Required) | +
| `-Dotel.resource.attributes` | +Adds `kafka.cluster.name` metadata to all metrics for identification in New Relic | +None (Optional) | +
| `-Dotel.exporter.otlp.endpoint` | +Points to the OpenTelemetry Collector service in your cluster | +`http://localhost:4317` | +
| `-Dotel.exporter.otlp.protocol` | +Protocol used for OTLP communication with the collector | +`grpc` | +
| `-Dotel.metrics.exporter` | +Specifies the exporter to use for sending metrics | +`otlp` | +
| `-Dotel.metric.export.interval` | +Interval in milliseconds for exporting metrics to the collector | +`60000` | +
| `-Dotel.instrumentation.runtime-telemetry.enabled` | +Enables or disables JVM runtime telemetry collection | +`true` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `-javaagent` | +Attaches the OpenTelemetry Java agent to the application JVM | +None (Required) | +
| `-Dotel.service.name` | +Unique name to identify your producer or consumer application in traces | +`unknown_service:java` | +
| `-Dotel.resource.attributes` | +Adds `kafka.cluster.name` metadata to correlate with broker metrics | +None (Optional) | +
| `-Dotel.exporter.otlp.endpoint` | +Points to the OpenTelemetry Collector service in your cluster | +`http://localhost:4317` | +
| `-Dotel.exporter.otlp.protocol` | +Protocol used for OTLP communication with the collector | +`grpc` | +
| `-Dotel.metrics.exporter` | +Exporter for application metrics | +`otlp` | +
| `-Dotel.traces.exporter` | +Exporter for distributed traces | +`otlp` | +
| `-Dotel.logs.exporter` | +Exporter for application logs | +`otlp` | +
| `-Dotel.instrumentation.kafka.experimental-span-attributes` | +Enables experimental Kafka span attributes for enhanced tracing | +`false` | +
| `-Dotel.instrumentation.messaging.experimental.receive-telemetry.enabled` | +Enables experimental receive telemetry for messaging systems | +`false` | +
| `-Dotel.instrumentation.kafka.producer-propagation.enabled` | +Enables trace context propagation for Kafka producers | +`true` | +
| `-Dotel.instrumentation.kafka.enabled` | +Enables Kafka client instrumentation | +`true` | +
| `-Dotel.instrumentation.runtime-telemetry.enabled` | +Enables or disables JVM runtime telemetry collection | +`true` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `startDelaySeconds` | +Delay before starting metrics collection (in seconds) | +`0` | +
| `lowercaseOutputName` | +Convert metric names to lowercase | +`false` | +
| `lowercaseOutputLabelNames` | +Convert label names to lowercase | +`false` | +
| `rules.pattern` | +Regular expression to match JMX bean names | +None (Required) | +
| `rules.name` | +Prometheus metric name for the matched pattern | +None (Required) | +
| `rules.type` | +Prometheus metric type (GAUGE, COUNTER, HISTOGRAM, SUMMARY) | +`GAUGE` | +
| `rules.labels` | +Additional labels to add to the metric | +None (Optional) | +
| `ConfigMap.name` | +Name of the ConfigMap containing JMX configuration | +`kafka-jmx-metrics` | +
| `ConfigMap.namespace` | +Kubernetes namespace where Kafka cluster is deployed | +`kafka` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `JMX_EXPORTER_VERSION` | +Version of the Prometheus JMX Exporter JAR to download | +`1.5.0` | +
| `jmx_prometheus_javaagent.jar` | +JMX Exporter JAR file path within the container | +`/prometheus-jmx/jmx_prometheus_javaagent.jar` | +
| `KAFKA_OPTS` | +JVM options to attach JMX Exporter as Java agent with port and config | +None (Required) | +
| `containerPort` | +Port where JMX Exporter exposes Prometheus metrics | +`9404` | +
| `jmx-config path` | +Path to JMX metrics configuration file (mounted from ConfigMap) | +`/jmx-config/kafka-metrics-config.yml` | +
| `prometheus-jmx volume` | +EmptyDir volume for storing downloaded JMX Exporter JAR | +`emptyDir: {}` | +
| `jmx-config volume` | +ConfigMap volume containing JMX metrics configuration | +`kafka-jmx-metrics` | +
| `download command` | +Download URL pattern for JMX Exporter releases | +`https://github.com/prometheus/jmx_exporter/releases/download/` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `NEW_RELIC_OTLP_ENDPOINT` | +New Relic OTLP endpoint for your region | +None (Required) | +
| `NEW_RELIC_LICENSE_KEY` | +Your New Relic license key for authentication | +None (Required) | +
| `kafkametrics.brokers` | +Kafka bootstrap service DNS for consumer lag metrics | +`kafka.kafka.svc.cluster.local:9092` | +
| `prometheus.job_name` | +Job name for Prometheus scraping configuration | +`kafka-jmx-metrics` | +
| `prometheus.targets` | +List of broker pod DNS names with JMX Exporter port | +` |
+
| `kafka.cluster.name` | +Label value to identify your Kafka cluster in New Relic | +`my-kafka-cluster` | +
| `resource.kafka.cluster.name` | +Resource processor cluster name for metric identification | +`my-kafka-cluster` | +
| `replicaCount` | +Number of collector replicas to deploy | +`1` | +
| `resources.requests.memory` | +Minimum memory allocation for the collector | +`512Mi` | +
| `resources.requests.cpu` | +Minimum CPU allocation for the collector | +`250m` | +
| `resources.limits.memory` | +Maximum memory limit for the collector | +`1Gi` | +
| `resources.limits.cpu` | +Maximum CPU limit for the collector | +`500m` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `-javaagent` | +Attaches the OpenTelemetry Java agent to the application JVM | +None (Required) | +
| `-Dotel.service.name` | +Unique name to identify your producer or consumer application in traces | +`unknown_service:java` | +
| `-Dotel.resource.attributes` | +Adds `kafka.cluster.name` metadata to correlate with broker metrics | +None (Optional) | +
| `-Dotel.exporter.otlp.endpoint` | +Points to the OpenTelemetry Collector service in your cluster | +`http://localhost:4317` | +
| `-Dotel.exporter.otlp.protocol` | +Protocol used for OTLP communication with the collector | +`grpc` | +
| `-Dotel.metrics.exporter` | +Exporter for application metrics | +`otlp` | +
| `-Dotel.traces.exporter` | +Exporter for distributed traces | +`otlp` | +
| `-Dotel.logs.exporter` | +Exporter for application logs | +`otlp` | +
| `-Dotel.instrumentation.kafka.experimental-span-attributes` | +Enables experimental Kafka span attributes for enhanced tracing | +`false` | +
| `-Dotel.instrumentation.messaging.experimental.receive-telemetry.enabled` | +Enables experimental receive telemetry for messaging systems | +`false` | +
| `-Dotel.instrumentation.kafka.producer-propagation.enabled` | +Enables trace context propagation for Kafka producers | +`true` | +
| `-Dotel.instrumentation.kafka.enabled` | +Enables Kafka client instrumentation | +`true` | +
| `-Dotel.instrumentation.runtime-telemetry.enabled` | +Enables or disables JVM runtime telemetry collection | +`true` | +
| Parameter | +Description | +Default Value | +
|---|---|---|
| `include` | +File path(s) to Kafka broker log files within the container | +`/var/log/kafka/server.log` | +
| `start_at` | +Where to start reading when first encountering a file | +`end` | +
| `multiline.line_start_pattern` | +Regex pattern to identify the start of a new log entry | +`^\[` | +
| `resource.broker.id` | +Broker ID to correlate logs with specific broker metrics | +`"0"` | +
| `resource.kafka.cluster.name` | +Cluster name to group logs with broker metrics in New Relic | +`${env:KAFKA_CLUSTER_NAME}` | +
| `receivers` | +List of filelog receivers in the logs pipeline | +`[filelog/kafka_broker_0]` | +
| `processors` | +Processing steps for log entries before export | +`[memory_limiter, batch/export]` | +
| `exporters` | +Where to send the collected log data | +`[otlp/backend]` | +