Uploaded image for project: 'Apache Cassandra'
  1. Apache Cassandra
  2. CASSANDRA-13103

incorrect jvm metric names

    XMLWordPrintableJSON

Details

    • 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('.'); }

      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."

      Attachments

        Activity

          People

            arastoul Alain Rastoul
            arastoul Alain Rastoul
            Alain Rastoul
            Stefan Podkowinski
            Votes:
            2 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: