Class QualifiedCompatibleHierarchicalNameMapper

java.lang.Object
com.atlassian.util.profiling.micrometer.util.QualifiedCompatibleHierarchicalNameMapper
All Implemented Interfaces:
io.micrometer.core.instrument.util.HierarchicalNameMapper

public class QualifiedCompatibleHierarchicalNameMapper extends Object implements io.micrometer.core.instrument.util.HierarchicalNameMapper
Compatible with Java qualified names in metric tag keys and values. Will split a metric name into categories on '.'

e.g.


 try (Ticker ignored = Metrics.metric("db.ao.executeInTransaction").tag("pluginKey", "com.atlassian.audit").timer() {
          // measured code here
  }
  
would output this ObjectName to JMX:
 com.atlassian.refapp:type=metrics,category00=db,category01=ao,name=executeInTransaction,tag.pluginKey=com.atlassian.audit
 
and appear as follows in JConsole:

 + com.atlassian.refapp
   + metrics
     + db
       + ao
         + executeInTransaction
           + com.atlassian.audit
 

Note: should be used with UnescapedObjectNameFactory

Note: should only be used with JmxMeterRegistry

Since:
3.5.0
  • Constructor Details

    • QualifiedCompatibleHierarchicalNameMapper

      public QualifiedCompatibleHierarchicalNameMapper()
  • Method Details

    • toHierarchicalName

      @Nonnull public String toHierarchicalName(@Nonnull io.micrometer.core.instrument.Meter.Id meterId, @Nonnull io.micrometer.core.instrument.config.NamingConvention namingConvention)
      Specified by:
      toHierarchicalName in interface io.micrometer.core.instrument.util.HierarchicalNameMapper