Class MetricName


  • public final class MetricName
    extends java.lang.Object
    The MetricName class encapsulates a metric's name, logical group and its related attributes. It should be constructed using metrics.MetricName(...).

    This class captures the following parameters:

      name The name of the metric
      group logical group name of the metrics to which this metric belongs.
      description A human-readable description to include in the metric. This is optional.
      tags additional key/value attributes of the metric. This is optional.
     
    group, tags parameters can be used to create unique metric names while reporting in JMX or any custom reporting.

    Ex: standard JMX MBean can be constructed like domainName:type=group,key1=val1,key2=val2

    Usage looks something like this:

    
     // set up metrics:
    
     Map<String, String> metricTags = new LinkedHashMap<String, String>();
     metricTags.put("client-id", "producer-1");
     metricTags.put("topic", "topic");
    
     MetricConfig metricConfig = new MetricConfig().tags(metricTags);
     Metrics metrics = new Metrics(metricConfig); // this is the global repository of metrics and sensors
    
     Sensor sensor = metrics.sensor("message-sizes");
    
     MetricName metricName = metrics.metricName("message-size-avg", "producer-metrics", "average message size");
     sensor.add(metricName, new Avg());
    
     metricName = metrics.metricName("message-size-max", "producer-metrics");
     sensor.add(metricName, new Max());
    
     metricName = metrics.metricName("message-size-min", "producer-metrics", "message minimum size", "client-id", "my-client", "topic", "my-topic");
     sensor.add(metricName, new Min());
    
     // as messages are sent we record the sizes
     sensor.record(messageSize);
     
    • Constructor Summary

      Constructors 
      Constructor Description
      MetricName​(java.lang.String name, java.lang.String group, java.lang.String description, java.util.Map<java.lang.String,​java.lang.String> tags)
      Please create MetricName by method Metrics.metricName(String, String, String, Map)
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String description()  
      boolean equals​(java.lang.Object obj)  
      java.lang.String group()  
      int hashCode()  
      java.lang.String name()  
      java.util.Map<java.lang.String,​java.lang.String> tags()  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MetricName

        public MetricName​(java.lang.String name,
                          java.lang.String group,
                          java.lang.String description,
                          java.util.Map<java.lang.String,​java.lang.String> tags)
        Please create MetricName by method Metrics.metricName(String, String, String, Map)
        Parameters:
        name - The name of the metric
        group - logical group name of the metrics to which this metric belongs
        description - A human-readable description to include in the metric
        tags - additional key/value attributes of the metric
    • Method Detail

      • name

        public java.lang.String name()
      • group

        public java.lang.String group()
      • tags

        public java.util.Map<java.lang.String,​java.lang.String> tags()
      • description

        public java.lang.String description()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object