Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
2.2.10, 3.0.13, 3.11.0, 4.0-alpha1, 4.0
-
Low
Description
Some jvm metrics have a double dot in name like:
jvm.memory..total.max , jvm.memory..total.init (etc).
it seems that an extra dot is added at the end of the name in CassandraDaemon.java, around line 367 (in 3.0.10):
...
// enable metrics provided by metrics-jvm.jar
CassandraMetricsRegistry.Metrics.register("jvm.buffers.", new BufferPoolMetricSet(ManagementFactory.getPlatformMBeanServer()));
CassandraMetricsRegistry.Metrics.register("jvm.gc.", new GarbageCollectorMetricSet());
CassandraMetricsRegistry.Metrics.register("jvm.memory.", new MemoryUsageGaugeSet());
and also added in append method of MetricRegistry.
Call stack is:
MetricRegistry>>registerAll(String prefix, MetricSet metrics)
MetricRegistry>>static String name(String name, String... names)
MetricRegistry>>static void append(StringBuilder builder, String part)
and in append the dot is also added:
...
if(builder.length() > 0)
builder.append(part);
...
The codahale MetricRegistry class seems to have no recent modification of name or append methods, so it look like a small bug.
May be the fix could be to simply not to add the final dot in the metric name, ie "jvm.buffers" instead of "jvm.buffers."