-
Enhancement
-
Resolution: Done
-
Major
-
2.4.2.Final, 2.7.3.Final, 3.0.1.Final
-
None
-
False
-
None
-
False
Hi team. Thank you so much for this wonderful software.
We're running mysql and mongodb connectors in prod. We're using 'RowsScanned' metric in both cases and we realized that in case of mongodb connector, 'RowsScanned' metric type is 'java.util.Map', and for mysql connector (and postgres as well) it's 'javax.management.openmbean.TabularData'.
It's problematic, because of jmx-exporter (which is part of debezium-examples and looks like a go-to tool for exposing jmx metrics from debezium) that doesn't handle 'java.util.Map' metrics - such metrics are skipped (see this issue in jmx-exporter) and in result 'RowsScanned' is not scraped by prometheus as it's not exposed at all by jmx-exporter.
On the other hand 'javax.management.openmbean.TabularData' is handled by jmx-exporter without any issues, and mysql/postgres connectors expose 'RowsScanned' just fine.
It would be good to align connectors to expose 'RowsScanned' metric with the same type, preferably 'javax.management.openmbean.TabularData' as it's supported already by jmx-exporter
Screenshot from JConsole attached - it shows mongodb and mysql connectors and the type difference in 'RowsScanned' metric.
Issue is reproducible using debezium-tutorial with JMX enabled or with `ENABLE_JOLOKIA: true` set, and then all MBeans are accessible via http://localhost:8778/jolokia/list by default
Bug report
For bug reports, provide this information, please:
What Debezium connector do you use and what version?
2.4.2.Final, 2.7.3.Final, 3.0.1.Final
What is the connector configuration?
The same as in https://github.com/debezium/debezium-examples/tree/main/tutorial
What is the captured database version and mode of deployment?
The same as in https://github.com/debezium/debezium-examples/tree/main/tutorial
What behavior do you expect?
To both mongodb and mysql connector to expose 'RowsScanned' metric as the same type, preferably 'javax.management.openmbean.TabularData'
What behavior do you see?
Mongodb connector exposes 'RowsScanned' metric as 'java.util.Map', and mysql connector exposes 'RowsScanned' metric as 'javax.management.openmbean.TabularData'
Do you see the same behaviour using the latest released Debezium version?
(Ideally, also verify with latest Alpha/Beta/CR version)
yes, in 3.0.1.Final
Do you have the connector logs, ideally from start till finish?
(You might be asked later to provide DEBUG/TRACE level log)
<Your answer>
How to reproduce the issue using our tutorial deployment?
run connect image with
ENABLE_JOLOKIA: true
create mongodb and mysql connector, then compare 'RowsScanned' metric type in jolokia, using http://localhost:8778/jolokia/list endpoint