---
title: "monedula-metrics-reporter"
repo: https://github.com/monedula-dev/monedula-metrics-reporter
language: Java
license: AGPL-3.0
status: active
maintainers: ["grzegorz", "michal"]
---## Perché

Il percorso abituale per l'osservabilità di Kafka è un sidecar JMX exporter — un
processo aggiuntivo per ogni broker, con la propria finestra di scrape, i propri modi di fallire e un
modello di metriche che non corrisponde del tutto a ciò che parla il resto dello stack.

`monedula-metrics-reporter` elimina il sidecar. Si collega alla stessa interfaccia
`MetricsReporter` di Kafka e invia le metriche direttamente a un collector OpenTelemetry
tramite OTLP — gRPC o HTTP, a tua scelta. Il contesto del broker (cluster id,
node id) viene allegato come resource attribute, così lo stesso stream di metriche funziona
su tutti i broker senza cablaggio per ogni host.

Tutto l'I/O di export avviene su un thread daemon. Se il collector è lento o non disponibile,
nulla raggiunge i thread che Kafka usa per servire il traffico.

Per tutto il contesto — i due sistemi di metriche nascosti dentro Kafka, perché
le dashboard Grafana importate così spesso mostrano *No Data* e come l'OTLP nativo
districa il tutto — leggi [Le metriche di Kafka devono per forza essere così difficili?](/blog/kafka-metrics-opentelemetry-otlp-monedula-metrics-reporter/).

## Configurazione

Inserisci lo shadow jar in `$KAFKA_HOME/libs/`, poi in `server.properties`:

```properties
metric.reporters=dev.monedula.metricsreporter.OtlpMetricReporter
otlp.metric.reporter.endpoint=http://otel-collector:4317
otlp.metric.reporter.transport=grpc
```

Lo stesso plugin funziona sui client Kafka — registralo tramite
`metric.reporters` nella configurazione del producer o del consumer e ottieni lo
stream lato client corrispondente nello stesso collector.

Uno stack demo completo (broker + collector + Prometheus + Grafana) si trova
sotto `quickstart/` nel repo.

## Compatibilità

Kafka 3.x e 4.x. Java 17+. Sono cablati sia la moderna SPI `MetricsReporter` sia il
registry legacy Yammer, così ottieni la copertura delle metriche che Kafka
emette oggi senza lasciare indietro quelle di Yammer.