Class MetricRegistry

java.lang.Object
org.eclipse.microprofile.metrics.MetricRegistry

public abstract class MetricRegistry extends Object
The registry that stores metrics and their metadata. The MetricRegistry provides methods to register, create and retrieve metrics and their respective metadata.
See Also:
  • Constructor Details

    • MetricRegistry

      public MetricRegistry()
  • Method Details

    • name

      public static String name(String name, String... names)
      Concatenates elements to form a dotted name, eliding any null values or empty strings.
      Parameters:
      name - the first element of the name
      names - the remaining elements of the name
      Returns:
      name and names concatenated by periods
    • name

      public static String name(Class<?> klass, String... names)
      Concatenates a class name and elements to form a dotted name, eliding any null values or empty strings.
      Parameters:
      klass - the first element of the name
      names - the remaining elements of the name
      Returns:
      klass and names concatenated by periods
    • register

      public abstract <T extends Metric> T register(String name, T metric) throws IllegalArgumentException
      Given a Metric, registers it under a MetricID with the given name and with no tags. A Metadata object will be registered with the name and type. However, if a Metadata object is already registered with this metric name and is not equal to the created Metadata object then an exception will be thrown.
      Type Parameters:
      T - the type of the metric
      Parameters:
      name - the name of the metric
      metric - the metric
      Returns:
      metric
      Throws:
      IllegalArgumentException - if the name is already registered or if Metadata with different values has already been registered with the name
    • register

      public abstract <T extends Metric> T register(Metadata metadata, T metric) throws IllegalArgumentException
      Given a Metric and Metadata, registers the metric with a MetricID with the name provided by the Metadata and with no tags.

      Note: If a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Type Parameters:
      T - the type of the metric
      Parameters:
      metadata - the metadata
      metric - the metric
      Returns:
      metric
      Throws:
      IllegalArgumentException - if the name is already registered or if Metadata with different values has already been registered with the name
      Since:
      1.1
    • register

      public abstract <T extends Metric> T register(Metadata metadata, T metric, Tag... tags) throws IllegalArgumentException
      Given a Metric and Metadata, registers both under a MetricID with the name provided by the Metadata and with the provided Tags.

      Note: If a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Type Parameters:
      T - the type of the metric
      Parameters:
      metadata - the metadata
      metric - the metric
      tags - the tags of the metric
      Returns:
      metric
      Throws:
      IllegalArgumentException - if the name is already registered or if Metadata with different values has already been registered with the name
      Since:
      2.0
    • counter

      public abstract Counter counter(String name)
      Return the Counter registered under the MetricID with this name and with no tags; or create and register a new Counter if none is registered. If a Counter was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      Returns:
      a new or pre-existing Counter
    • counter

      public abstract Counter counter(String name, Tag... tags)
      Return the Counter registered under the MetricID with this name and with the provided Tags; or create and register a new Counter if none is registered. If a Counter was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Counter
      Since:
      2.0
    • counter

      public abstract Counter counter(Metadata metadata)
      Return the Counter registered under the MetricID with the Metadata's name and with no tags; or create and register a new Counter if none is registered. If a Counter was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      Returns:
      a new or pre-existing Counter
    • counter

      public abstract Counter counter(Metadata metadata, Tag... tags)
      Return the Counter registered under the MetricID with the Metadata's name and with the provided Tags; or create and register a new Counter if none is registered. If a Counter was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Counter
      Since:
      2.0
    • concurrentGauge

      public abstract ConcurrentGauge concurrentGauge(String name)
      Return the ConcurrentGauge registered under the MetricID with this name; or create and register a new ConcurrentGauge if none is registered. If a ConcurrentGauge was created, a Metadata object will be registered with the name and type.
      Parameters:
      name - the name of the metric
      Returns:
      a new or pre-existing ConcurrentGauge
    • concurrentGauge

      public abstract ConcurrentGauge concurrentGauge(String name, Tag... tags)
      Return the ConcurrentGauge registered under the MetricID with this name and with the provided Tags; or create and register a new ConcurrentGauge if none is registered. If a ConcurrentGauge was created, a Metadata object will be registered with the name and type.
      Parameters:
      name - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing ConcurrentGauge
    • concurrentGauge

      public abstract ConcurrentGauge concurrentGauge(Metadata metadata)
      Return the ConcurrentGauge registered under the MetricID with the Metadata's name; or create and register a new ConcurrentGauge if none is registered. If a ConcurrentGauge was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      Returns:
      a new or pre-existing ConcurrentGauge
    • concurrentGauge

      public abstract ConcurrentGauge concurrentGauge(Metadata metadata, Tag... tags)
      Return the ConcurrentGauge registered under the MetricID with the Metadata's name and with the provided Tags; or create and register a new ConcurrentGauge if none is registered. If a ConcurrentGauge was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing ConcurrentGauge
    • histogram

      public abstract Histogram histogram(String name)
      Return the Histogram registered under the MetricID with this name and with no tags; or create and register a new Histogram if none is registered. If a Histogram was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      Returns:
      a new or pre-existing Histogram
    • histogram

      public abstract Histogram histogram(String name, Tag... tags)
      Return the Histogram registered under the MetricID with this name and with the provided Tags; or create and register a new Histogram if none is registered. If a Histogram was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Histogram
      Since:
      2.0
    • histogram

      public abstract Histogram histogram(Metadata metadata)
      Return the Histogram registered under the MetricID with the Metadata's name and with no tags; or create and register a new Histogram if none is registered. If a Histogram was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      Returns:
      a new or pre-existing Histogram
    • histogram

      public abstract Histogram histogram(Metadata metadata, Tag... tags)
      Return the Histogram registered under the MetricID with the Metadata's name and with the provided Tags; or create and register a new Histogram if none is registered. If a Histogram was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Histogram
      Since:
      2.0
    • meter

      public abstract Meter meter(String name)
      Return the Meter registered under the MetricID with this name and with no tags; or create and register a new Meter if none is registered. If a Meter was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      Returns:
      a new or pre-existing Meter
    • meter

      public abstract Meter meter(String name, Tag... tags)
      Return the Meter registered under the MetricID with this name and with the provided Tags; or create and register a new Meter if none is registered. If a Meter was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Meter
      Since:
      2.0
    • meter

      public abstract Meter meter(Metadata metadata)
      Return the Meter registered under the MetricID with the Metadata's name and with no tags; or create and register a new Meter if none is registered. If a Meter was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      Returns:
      a new or pre-existing Meter
    • meter

      public abstract Meter meter(Metadata metadata, Tag... tags)
      Return the Meter registered under the MetricID with the Metadata's name and with the provided Tags; or create and register a new Meter if none is registered. If a Meter was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Meter
      Since:
      2.0
    • timer

      public abstract Timer timer(String name)
      Return the Timer registered under the MetricID with this name and with no tags; or create and register a new Timer if none is registered. If a Timer was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      Returns:
      a new or pre-existing Timer
    • timer

      public abstract Timer timer(String name, Tag... tags)
      Return the Timer registered under the MetricID with this name and with the provided Tags; or create and register a new Timer if none is registered. If a Timer was created, a Metadata object will be registered with the name and type. If a Metadata object is already registered with this metric name then that Metadata will be used.
      Parameters:
      name - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Timer
      Since:
      2.0
    • timer

      public abstract Timer timer(Metadata metadata)
      Return the Timer registered under the the MetricID with the Metadata's name and with no tags; or create and register a new Timer if none is registered. If a Timer was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      Returns:
      a new or pre-existing Timer
    • timer

      public abstract Timer timer(Metadata metadata, Tag... tags)
      Return the Timer registered under the the MetricID with the Metadata's name and with the provided Tags; or create and register a new Timer if none is registered. If a Timer was created, the provided Metadata object will be registered.

      Note: During retrieval or creation, if a Metadata object is already registered under this metric name and is not equal to the provided Metadata object then an exception will be thrown.

      Parameters:
      metadata - the name of the metric
      tags - the tags of the metric
      Returns:
      a new or pre-existing Timer
      Since:
      2.0
    • remove

      public abstract boolean remove(String name)
      Removes all metrics with the given name.
      Parameters:
      name - the name of the metric
      Returns:
      whether or not the metric was removed
    • remove

      public abstract boolean remove(MetricID metricID)
      Removes the metric with the given MetricID
      Parameters:
      metricID - the MetricID of the metric
      Returns:
      whether or not the metric was removed
      Since:
      2.0
    • removeMatching

      public abstract void removeMatching(MetricFilter filter)
      Removes all metrics which match the given filter.
      Parameters:
      filter - a filter
    • getNames

      public abstract SortedSet<String> getNames()
      Returns a set of the names of all the metrics in the registry.
      Returns:
      the names of all the metrics
    • getMetricIDs

      public abstract SortedSet<MetricID> getMetricIDs()
      Returns a set of the MetricIDs of all the metrics in the registry.
      Returns:
      the MetricIDs of all the metrics
    • getGauges

      public abstract SortedMap<MetricID,Gauge> getGauges()
      Returns a map of all the gauges in the registry and their MetricIDs.
      Returns:
      all the gauges in the registry
    • getGauges

      public abstract SortedMap<MetricID,Gauge> getGauges(MetricFilter filter)
      Returns a map of all the gauges in the registry and their MetricIDs which match the given filter.
      Parameters:
      filter - the metric filter to match
      Returns:
      all the gauges in the registry
    • getCounters

      public abstract SortedMap<MetricID,Counter> getCounters()
      Returns a map of all the counters in the registry and their MetricIDs.
      Returns:
      all the counters in the registry
    • getCounters

      public abstract SortedMap<MetricID,Counter> getCounters(MetricFilter filter)
      Returns a map of all the counters in the registry and their MetricIDs which match the given filter.
      Parameters:
      filter - the metric filter to match
      Returns:
      all the counters in the registry
    • getConcurrentGauges

      public abstract SortedMap<MetricID,ConcurrentGauge> getConcurrentGauges()
      Returns a map of all the concurrent gauges in the registry and their MetricIDs.
      Returns:
      all the concurrent gauges in the registry
    • getConcurrentGauges

      public abstract SortedMap<MetricID,ConcurrentGauge> getConcurrentGauges(MetricFilter filter)
      Returns a map of all the concurrent gauges in the registry and their MetricIDs which match the given filter.
      Parameters:
      filter - the metric filter to match
      Returns:
      all the concurrent gauges in the registry
    • getHistograms

      public abstract SortedMap<MetricID,Histogram> getHistograms()
      Returns a map of all the histograms in the registry and their MetricIDs.
      Returns:
      all the histograms in the registry
    • getHistograms

      public abstract SortedMap<MetricID,Histogram> getHistograms(MetricFilter filter)
      Returns a map of all the histograms in the registry and their MetricIDs which match the given filter.
      Parameters:
      filter - the metric filter to match
      Returns:
      all the histograms in the registry
    • getMeters

      public abstract SortedMap<MetricID,Meter> getMeters()
      Returns a map of all the meters in the registry and their MetricIDs.
      Returns:
      all the meters in the registry
    • getMeters

      public abstract SortedMap<MetricID,Meter> getMeters(MetricFilter filter)
      Returns a map of all the meters in the registry and their MetricIDs which match the given filter.
      Parameters:
      filter - the metric filter to match
      Returns:
      all the meters in the registry
    • getTimers

      public abstract SortedMap<MetricID,Timer> getTimers()
      Returns a map of all the timers in the registry and their MetricIDs.
      Returns:
      all the timers in the registry
    • getTimers

      public abstract SortedMap<MetricID,Timer> getTimers(MetricFilter filter)
      Returns a map of all the timers in the registry and their MetricIDs which match the given filter.
      Parameters:
      filter - the metric filter to match
      Returns:
      all the timers in the registry
    • getMetrics

      public abstract Map<MetricID,Metric> getMetrics()
      Returns a map of all the metrics in the registry and their MetricIDs.
      Returns:
      all the metrics in the registry
    • getMetadata

      public abstract Map<String,Metadata> getMetadata()
      Returns a map of all the metadata in the registry and their names.
      Returns:
      all the metadata in the registry