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

El camino habitual para la observabilidad de Kafka es un sidecar de exportador
JMX: un proceso extra por broker, con su propia ventana de scrape, sus propios
modos de fallo y un modelo de métricas que no encaja del todo con lo que habla
el resto del stack.

`monedula-metrics-reporter` elimina el sidecar. Se conecta a la propia interfaz
`MetricsReporter` de Kafka y empuja las métricas directamente a un collector de
OpenTelemetry por OTLP —gRPC o HTTP, tú decides—. El contexto del broker (id del
clúster, id del nodo) se adjunta como atributos de recurso, de modo que el mismo
flujo de métricas funciona en todos los brokers sin cableado por host.

Toda la E/S de exportación ocurre en un hilo daemon. Si el collector está lento
o caído, nada llega a los hilos que Kafka usa para servir tráfico.

Para el contexto completo —los dos sistemas de métricas escondidos dentro de
Kafka, por qué los dashboards de Grafana importados tan a menudo muestran *No
Data* y cómo el OTLP nativo lo desenreda— lee [¿Las métricas de Kafka tienen que
ser tan difíciles?](/blog/kafka-metrics-opentelemetry-otlp-monedula-metrics-reporter/).

## Configurar

Coloca el shadow jar en `$KAFKA_HOME/libs/`, luego en `server.properties`:

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

El mismo plugin funciona en los clientes de Kafka: regístralo a través de
`metric.reporters` en la configuración del producer o del consumer y obtendrás
el flujo equivalente del lado del cliente hacia el mismo collector.

Un stack de demo completo (broker + collector + Prometheus + Grafana) está
disponible en `quickstart/` dentro del repositorio.

## Compatibilidad

Kafka 3.x y 4.x. Java 17+. Tanto la moderna SPI `MetricsReporter` como el
registro heredado de Yammer están conectados, así que obtienes cobertura de las
métricas que Kafka emite hoy sin dejar las de Yammer fuera de la mesa.