Hey, I saw significant improvement with jmx connection cached. Here is a chart for sample cassandra cluster without any traffic, orange line is for an instance with patched exporter:
Cassandra Clusters with traffic have GC time and throughput decreased, and we saw latencies improved up to 50%. But this depends on the traffic patters and vary from cluster to cluster.
Implementation details:
scraper is cached in collector's config instance, so it's replaced every time config is reloaded.
jmx connection is cached in scraper, and it uses Cleaner API to close it when scraper is discarded.
MBeans names and attributes are cached in scraper. JMX client subscribes to MBean register/unregister events to invalidate this cache.
JMX is reconnected when any exception occurs. I tested only in javaagent mode, so didn't have a chance to test reconnection.
Hey, I saw significant improvement with jmx connection cached. Here is a chart for sample cassandra cluster without any traffic, orange line is for an instance with patched exporter:
Cassandra Clusters with traffic have GC time and throughput decreased, and we saw latencies improved up to 50%. But this depends on the traffic patters and vary from cluster to cluster.
Implementation details: