Class MetricID

  • All Implemented Interfaces:
    java.lang.Comparable<MetricID>

    public class MetricID
    extends java.lang.Object
    implements java.lang.Comparable<MetricID>
    A unique identifier for Metric and Metadata that are registered in the MetricRegistry The MetricID contains:
    • Name: (Required) The name of the metric.
    • Tags: (Optional) The tags (represented by Tag objects) of the metric which is augmented by global tags (if available). The tag name must match the regex `[a-zA-Z_][a-zA-Z0-9_]*` (Ascii alphabet, numbers and underscore). The tag value may contain any UTF-8 encoded character. Global tags can be set by passing the list of tags in an environment variable MP_METRICS_TAGS or a system property mp.metrics.tags. Tag values set through `MP_METRICS_TAGS` or `mp.metrics.tags` MUST escape equal symbols `=` and commas `,` with a backslash `\` For example, the following can be used to set the global tags:
       
            export MP_METRICS_TAGS=app=shop,tier=integration,special=deli\=ver\,y
       
       
    • Constructor Summary

      Constructors 
      Constructor Description
      MetricID​(java.lang.String name)
      Constructs a MetricID with the given metric name and no tags.
      MetricID​(java.lang.String name, Tag... tags)
      Constructs a MetricID with the given metric name and Tags.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(MetricID other)
      Compares two MetricID objects through the following steps:
      Compares the names of the two MetricIDs lexicographically.
      boolean equals​(java.lang.Object o)
      java.lang.String getName()
      Returns the Metric name associated with this MetricID
      java.util.Map<java.lang.String,​java.lang.String> getTags()
      Returns the underlying map containing the tags.
      Tag[] getTagsAsArray()
      Gets the list of tags as an array of Tag objects.
      java.util.List<Tag> getTagsAsList()
      Gets the list of tags as a list of Tag objects
      java.lang.String getTagsAsString()
      Gets the list of tags as a single String in the format 'key="value",key2="value2",...'
      int hashCode()
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

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

      • GLOBAL_TAGS_VARIABLE

        public static final java.lang.String GLOBAL_TAGS_VARIABLE
        See Also:
        Constant Field Values
      • APPLICATION_NAME_VARIABLE

        public static final java.lang.String APPLICATION_NAME_VARIABLE
        See Also:
        Constant Field Values
      • APPLICATION_NAME_TAG

        public static final java.lang.String APPLICATION_NAME_TAG
        See Also:
        Constant Field Values
    • Constructor Detail

      • MetricID

        public MetricID​(java.lang.String name)
        Constructs a MetricID with the given metric name and no tags. If global tags are available then they will be appended to this MetricID.
        Parameters:
        name - the name of the metric
      • MetricID

        public MetricID​(java.lang.String name,
                        Tag... tags)
        Constructs a MetricID with the given metric name and Tags. If global tags are available then they will be appended to this MetricID
        Parameters:
        name - the name of the metric
        tags - the tags associated with this metric
    • Method Detail

      • getName

        public java.lang.String getName()
        Returns the Metric name associated with this MetricID
        Returns:
        the Metric name associated with this MetricID
      • getTags

        public java.util.Map<java.lang.String,​java.lang.String> getTags()
        Returns the underlying map containing the tags.
        Returns:
        a Map of tags
      • getTagsAsString

        public java.lang.String getTagsAsString()
        Gets the list of tags as a single String in the format 'key="value",key2="value2",...'
        Returns:
        a String containing the tags
      • getTagsAsList

        public java.util.List<Tag> getTagsAsList()
        Gets the list of tags as a list of Tag objects
        Returns:
        a a list of Tag objects
      • getTagsAsArray

        public Tag[] getTagsAsArray()
        Gets the list of tags as an array of Tag objects.
        Returns:
        An array of tags
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

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

        public int compareTo​(MetricID other)
        Compares two MetricID objects through the following steps:
        1. Compares the names of the two MetricIDs lexicographically.
        2. If the names are equal: Compare the number of tags.
        3. If the tag lengths are equal: Compare the Tags (sorted by the Tag's key value)
          • a) Compare the Tag names/keys lexicographically
          • b) If keys are equal, compare the Tag values lexicographically
        Specified by:
        compareTo in interface java.lang.Comparable<MetricID>
        Parameters:
        other - the other MetricID