---
title: "How it compares"
description: "monedula-metrics-reporter compared with jmx_exporter, the OpenTelemetry JMX Scraper, kafka_exporter, the Confluent Telemetry Reporter and Strimzi."
url: https://monedula.dev/flock/docs/metrics-reporter/concepts/comparisons/
---
monedula-metrics-reporter suits sending broker, Java client and KIP-714 client metrics to an OpenTelemetry Collector over OTLP; other tools fit the setups that [When to choose something else](#when-to-choose-something-else) lists. The tables compare what each project documents, as of the date at the end of this page.

## How to read the tables

A cell says **Yes** when the project's documentation describes the feature, **Partial** when it covers part of it, with a numbered note that says which part, **No** when the documentation says it does not or its complete list of settings, flags or metrics has no such entry, and **Not documented** when the documentation does not settle it. The monedula-metrics-reporter row follows [How it works](/flock/docs/metrics-reporter/concepts/how-it-works/) and [Compatibility](/flock/docs/metrics-reporter/concepts/compatibility/), for release 0.10.0.

## Where it runs and how it exports

<div class="compare">

| Tool | In the Kafka JVM | OTLP push | Prometheus endpoint |
| --- | --- | --- | --- |
| monedula-metrics-reporter | Yes | Yes | No |
| jmx_exporter | Yes<sup>1</sup> | Yes | Yes |
| OpenTelemetry JMX Scraper | No<sup>2</sup> | Yes | Not documented |
| kafka_exporter | No | No | Yes |
| Confluent Telemetry Reporter | Yes | Partial<sup>3</sup> | Not documented |
| Strimzi Metrics Reporter | Yes | No | Yes |

</div>

Notes:

1. As a Java agent, the mode its documentation recommends. Its standalone mode runs as a separate process and reads the JVM over remote JMX.
2. A separate Java process that reads Kafka over remote JMX, which Kafka disables by default. The OpenTelemetry Collector's `jmxreceiver` used to run it, or the older JMX Metric Gatherer, as a subprocess. The receiver was deprecated in Collector v0.145.0, and its code was removed in v0.157.0.
3. The documented OTLP destination is the Prometheus that ships with Control Center. The reporter also sends telemetry to Confluent Cloud for Health+.

## What it collects

<div class="compare">

| Tool | Broker metrics | Java clients | KIP-714 | Group lag |
| --- | --- | --- | --- | --- |
| monedula-metrics-reporter | Yes | Yes | Yes | No |
| jmx_exporter | Yes<sup>4</sup> | Yes<sup>4</sup> | Not documented | Not documented |
| OpenTelemetry JMX Scraper | Yes<sup>4</sup> | Yes<sup>4</sup> | Not documented | Not documented |
| kafka_exporter | No<sup>5</sup> | No | No | Yes |
| Confluent Telemetry Reporter | Yes | Not documented | Not documented | Not documented |
| Strimzi Metrics Reporter | Yes | Yes | Not documented | Not documented |

</div>

Notes:

4. Through JMX: Kafka brokers and Java clients expose their metrics as JMX MBeans. Both tools map MBeans to metrics with YAML definitions; jmx_exporter also has a default name format when you set no rules.
5. Cluster state only: broker count, topic and partition offsets, replicas, in-sync replicas and under-replicated partitions, and consumer group offsets and lag. Its README points to jmx_exporter for other Kafka metrics.

On 2026-10-01 none of these repositories was archived. jmx_exporter released 1.6.0 on 2026-06-05, kafka_exporter v1.10.0 on 2026-09-08 and the Strimzi Metrics Reporter 0.4.0 on 2026-08-11. The Strimzi Metrics Reporter's README calls it early access.

## When to choose something else

- If you collect metrics from many kinds of JVM, or run Java older than 17: jmx_exporter works with any JVM on Java 8 or later, and one agent can serve Prometheus, push OTLP or both. The reporter needs Java 17 or newer.
- If you cannot add a JAR to the brokers: a separate process that reads remote JMX, such as the OpenTelemetry JMX Scraper or jmx_exporter's standalone mode, leaves the broker's classpath alone, once remote JMX is enabled and secured.
- If you need consumer group lag: kafka_exporter computes lag and offsets from the cluster, and supports Apache Kafka 0.10.1.0 and later. It complements the reporter.
- If you run Strimzi and scrape with Prometheus: the Strimzi Metrics Reporter also reads both of Kafka's registries in process, Strimzi turns it on through `metricsConfig`, and its allow-list on brokers changes at runtime without a restart. In 0.10.0, the reporter's allow-list changes only with a restart.
- If you run Confluent Platform with Control Center: the Confluent Telemetry Reporter is installed with Confluent Platform and feeds Control Center, and Self-Balancing Clusters require it. Health+, its Confluent Cloud destination, is deprecated and retires on 2026-12-31.
- If your license policy rules out AGPL: monedula-metrics-reporter is AGPL-3.0. jmx_exporter, kafka_exporter, the Strimzi Metrics Reporter and the OpenTelemetry JMX Scraper are Apache-2.0.

## Sources

Checked on 2026-10-01 against:

- jmx_exporter 1.6.0: [documentation](https://prometheus.github.io/jmx_exporter/), [deployment modes](https://prometheus.github.io/jmx_exporter/deployment/modes), [configuration](https://prometheus.github.io/jmx_exporter/configuration/), [rules](https://prometheus.github.io/jmx_exporter/configuration/rules), [OpenTelemetry](https://prometheus.github.io/jmx_exporter/configuration/opentelemetry), [repository](https://github.com/prometheus/jmx_exporter) and [releases](https://github.com/prometheus/jmx_exporter/releases)
- OpenTelemetry: [JMX Scraper README](https://github.com/open-telemetry/opentelemetry-java-contrib/tree/main/jmx-scraper), [Collector contrib changelog](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CHANGELOG.md) and the [jmxreceiver deprecation issue](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45740)
- kafka_exporter: [README](https://github.com/danielqsj/kafka_exporter) and [releases](https://github.com/danielqsj/kafka_exporter/releases)
- Confluent: [Telemetry Reporter](https://docs.confluent.io/platform/current/health-plus/telemetry.html) and [Control Center single-node installation](https://docs.confluent.io/control-center/current/installation/single-node.html)
- Strimzi: [Deploying and Managing Strimzi](https://strimzi.io/docs/operators/latest/deploying), section 25 (metrics), and the [Strimzi Metrics Reporter README](https://github.com/strimzi/metrics-reporter) and [releases](https://github.com/strimzi/metrics-reporter/releases)
- Apache Kafka: [Monitoring](https://kafka.apache.org/43/operations/monitoring/), on Yammer and Kafka Metrics exposed through JMX and on remote JMX being disabled by default