Class MetricID

java.lang.Object
org.eclipse.microprofile.metrics.MetricID
All Implemented Interfaces:
Comparable<MetricID>

public class MetricID extends Object implements 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
     
     
  • Field Details

  • Constructor Details

    • MetricID

      public MetricID(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(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 Details

    • getName

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

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

      public 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 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(Object o)
      Overrides:
      equals in class Object
    • hashCode

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

      public String toString()
      Overrides:
      toString in class 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 Comparable<MetricID>
      Parameters:
      other - the other MetricID