Class LegacyMetricRegistryAdapter

  • All Implemented Interfaces:
    org.eclipse.microprofile.metrics.MetricRegistry

    public class LegacyMetricRegistryAdapter
    extends Object
    implements org.eclipse.microprofile.metrics.MetricRegistry
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.eclipse.microprofile.metrics.MetricRegistry

        org.eclipse.microprofile.metrics.MetricRegistry.Type
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addNameToApplicationMap​(io.smallrye.metrics.legacyapi.MetricDescriptor metricDescriptor)
      Associates a metric's MetricID to a specific application if an application name can be resolved.
      void addNameToApplicationMap​(org.eclipse.microprofile.metrics.MetricID MetricID)
      Associates a metric's MetricID to a specific application if an application name can be resolved.
      void addNameToApplicationMap​(org.eclipse.microprofile.metrics.MetricID metricID, String appName)
      Adds the MetricID to an application map given the application name.
      org.eclipse.microprofile.metrics.Counter counter​(String name)  
      org.eclipse.microprofile.metrics.Counter counter​(String name, org.eclipse.microprofile.metrics.Tag... tags)  
      org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.Metadata metadata)  
      org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.Metadata metadata, org.eclipse.microprofile.metrics.Tag... tags)  
      <T> org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.Metadata metadata, T obj, ToDoubleFunction<T> func, org.eclipse.microprofile.metrics.Tag... tags)
      This is specifically used for runtimes which may need use of a functional counter.
      org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.MetricID metricID)  
      <T extends Number>
      org.eclipse.microprofile.metrics.Gauge<T>
      gauge​(String name, Supplier<T> f)  
      <T extends Number>
      org.eclipse.microprofile.metrics.Gauge<T>
      gauge​(String name, Supplier<T> f, org.eclipse.microprofile.metrics.Tag... tags)  
      <T,​R extends Number>
      org.eclipse.microprofile.metrics.Gauge<R>
      gauge​(String name, T o, Function<T,​R> f, org.eclipse.microprofile.metrics.Tag... tags)  
      <T> org.eclipse.microprofile.metrics.Gauge<Double> gauge​(String name, T o, ToDoubleFunction<T> f)  
      <T> org.eclipse.microprofile.metrics.Gauge<Double> gauge​(String name, T o, ToDoubleFunction<T> f, org.eclipse.microprofile.metrics.Tag... tags)  
      <T extends Number>
      org.eclipse.microprofile.metrics.Gauge<T>
      gauge​(org.eclipse.microprofile.metrics.Metadata metadata, Supplier<T> f, org.eclipse.microprofile.metrics.Tag... tags)  
      <T,​R extends Number>
      org.eclipse.microprofile.metrics.Gauge<R>
      gauge​(org.eclipse.microprofile.metrics.Metadata metadata, T o, Function<T,​R> f, org.eclipse.microprofile.metrics.Tag... tags)  
      <T extends Number>
      org.eclipse.microprofile.metrics.Gauge<T>
      gauge​(org.eclipse.microprofile.metrics.MetricID metricID, Supplier<T> f)  
      <T,​R extends Number>
      org.eclipse.microprofile.metrics.Gauge<R>
      gauge​(org.eclipse.microprofile.metrics.MetricID metricID, T o, Function<T,​R> f)  
      org.eclipse.microprofile.metrics.Counter getCounter​(org.eclipse.microprofile.metrics.MetricID metricID)  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Counter> getCounters()  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Counter> getCounters​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)  
      org.eclipse.microprofile.metrics.Gauge<?> getGauge​(org.eclipse.microprofile.metrics.MetricID metricID)  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Gauge> getGauges()  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Gauge> getGauges​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)  
      org.eclipse.microprofile.metrics.Histogram getHistogram​(org.eclipse.microprofile.metrics.MetricID metricID)  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Histogram> getHistograms()  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Histogram> getHistograms​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)  
      MemberToMetricMappings getMemberToMetricMappings()  
      Map<String,​org.eclipse.microprofile.metrics.Metadata> getMetadata()  
      org.eclipse.microprofile.metrics.Metadata getMetadata​(String name)  
      org.eclipse.microprofile.metrics.Metric getMetric​(org.eclipse.microprofile.metrics.MetricID metricID)  
      <T extends org.eclipse.microprofile.metrics.Metric>
      T
      getMetric​(org.eclipse.microprofile.metrics.MetricID metricID, Class<T> asType)  
      SortedSet<org.eclipse.microprofile.metrics.MetricID> getMetricIDs()  
      Map<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Metric> getMetrics()  
      <T extends org.eclipse.microprofile.metrics.Metric>
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​T>
      getMetrics​(Class<T> ofType, org.eclipse.microprofile.metrics.MetricFilter filter)  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Metric> getMetrics​(org.eclipse.microprofile.metrics.MetricFilter filter)  
      SortedSet<String> getNames()  
      io.micrometer.core.instrument.MeterRegistry getPrometheusMeterRegistry()  
      String getScope()  
      org.eclipse.microprofile.metrics.Timer getTimer​(org.eclipse.microprofile.metrics.MetricID metricID)  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Timer> getTimers()  
      SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Timer> getTimers​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)  
      org.eclipse.microprofile.metrics.Histogram histogram​(String name)  
      org.eclipse.microprofile.metrics.Histogram histogram​(String name, org.eclipse.microprofile.metrics.Tag... tags)  
      org.eclipse.microprofile.metrics.Histogram histogram​(org.eclipse.microprofile.metrics.Metadata metadata)  
      org.eclipse.microprofile.metrics.Histogram histogram​(org.eclipse.microprofile.metrics.Metadata metadata, org.eclipse.microprofile.metrics.Tag... tags)  
      org.eclipse.microprofile.metrics.Histogram histogram​(org.eclipse.microprofile.metrics.MetricID metricID)  
      boolean remove​(String name)  
      boolean remove​(org.eclipse.microprofile.metrics.MetricID metricID)  
      void removeMatching​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)  
      org.eclipse.microprofile.metrics.Tag[] scopeTagsLegacy()  
      org.eclipse.microprofile.metrics.Timer timer​(String name)  
      org.eclipse.microprofile.metrics.Timer timer​(String name, org.eclipse.microprofile.metrics.Tag... tags)  
      org.eclipse.microprofile.metrics.Timer timer​(org.eclipse.microprofile.metrics.Metadata metadata)  
      org.eclipse.microprofile.metrics.Timer timer​(org.eclipse.microprofile.metrics.Metadata metadata, org.eclipse.microprofile.metrics.Tag... tags)  
      org.eclipse.microprofile.metrics.Timer timer​(org.eclipse.microprofile.metrics.MetricID metricID)  
      void unRegisterApplicationMetrics()  
      void unRegisterApplicationMetrics​(String appName)  
      io.micrometer.core.instrument.Tags withAppTags​(org.eclipse.microprofile.metrics.Tag... tags)
      Must be called before any internalGetMetadata calls We may throw an IllegalArgumentException.
    • Field Detail

      • applicationMPConfigAppNameTagCache

        protected final ConcurrentHashMap<String,​io.micrometer.core.instrument.Tag> applicationMPConfigAppNameTagCache
      • isAppnameResolverPresent

        protected final boolean isAppnameResolverPresent
      • SERVER_LEVEL_MPCONFIG_APPLICATION_NAME_TAG

        protected static io.micrometer.core.instrument.Tag[] SERVER_LEVEL_MPCONFIG_APPLICATION_NAME_TAG
      • SERVER_LEVEL_MPCONFIG_GLOBAL_TAGS

        protected static io.micrometer.core.instrument.Tag[] SERVER_LEVEL_MPCONFIG_GLOBAL_TAGS
        This static Tag[] represents the server level global tags retrieved from MP Config for mp.metrics.tags. This value will be 'null' when not initialized. If during initialization and no global tag has been resolved this will be to an array of size 0. Using an array of size 0 is to represent that an attempt on start up was made to resolve the value, but none was found. This prevents later instantiations of MetricRegistry to avoid attempting to resolve the MP Config value for the slight performance boon. This server level value will not change at all throughout the life time of the server as it is defined by env vars or sys props.
    • Constructor Detail

      • LegacyMetricRegistryAdapter

        public LegacyMetricRegistryAdapter​(String scope,
                                           io.micrometer.core.instrument.MeterRegistry registry,
                                           ApplicationNameResolver appNameResolver)
      • LegacyMetricRegistryAdapter

        public LegacyMetricRegistryAdapter​(String scope,
                                           io.micrometer.core.instrument.MeterRegistry registry)
    • Method Detail

      • getPrometheusMeterRegistry

        public io.micrometer.core.instrument.MeterRegistry getPrometheusMeterRegistry()
      • addNameToApplicationMap

        public void addNameToApplicationMap​(io.smallrye.metrics.legacyapi.MetricDescriptor metricDescriptor)
        Associates a metric's MetricID to a specific application if an application name can be resolved.
      • addNameToApplicationMap

        public void addNameToApplicationMap​(org.eclipse.microprofile.metrics.MetricID MetricID)
        Associates a metric's MetricID to a specific application if an application name can be resolved.
      • addNameToApplicationMap

        public void addNameToApplicationMap​(org.eclipse.microprofile.metrics.MetricID metricID,
                                            String appName)
        Adds the MetricID to an application map given the application name. This map is not a complete list of metrics owned by an application, produced metrics are managed in the MetricsExtension
        Parameters:
        metricID - metric ID of metric that was added
        appName - applicationName
      • unRegisterApplicationMetrics

        public void unRegisterApplicationMetrics()
      • unRegisterApplicationMetrics

        public void unRegisterApplicationMetrics​(String appName)
      • counter

        public org.eclipse.microprofile.metrics.Counter counter​(String name)
        Specified by:
        counter in interface org.eclipse.microprofile.metrics.MetricRegistry
      • counter

        public org.eclipse.microprofile.metrics.Counter counter​(String name,
                                                                org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        counter in interface org.eclipse.microprofile.metrics.MetricRegistry
      • counter

        public org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        counter in interface org.eclipse.microprofile.metrics.MetricRegistry
      • counter

        public org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.Metadata metadata)
        Specified by:
        counter in interface org.eclipse.microprofile.metrics.MetricRegistry
      • counter

        public org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.Metadata metadata,
                                                                org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        counter in interface org.eclipse.microprofile.metrics.MetricRegistry
      • counter

        public <T> org.eclipse.microprofile.metrics.Counter counter​(org.eclipse.microprofile.metrics.Metadata metadata,
                                                                    T obj,
                                                                    ToDoubleFunction<T> func,
                                                                    org.eclipse.microprofile.metrics.Tag... tags)
        This is specifically used for runtimes which may need use of a functional counter. For example, the runtime may want to implement a vendor specific counter metric which relies on values obtained from a Mbeans or MXbeans.
        Type Parameters:
        T - object type
        Parameters:
        metadata - metadata of metric
        obj - object to apply ToDoubleFunction
        func - ToDoubleFunction
        tags - tags of metric
        Returns:
        The functional counter
      • gauge

        public <T> org.eclipse.microprofile.metrics.Gauge<Double> gauge​(String name,
                                                                        T o,
                                                                        ToDoubleFunction<T> f,
                                                                        org.eclipse.microprofile.metrics.Tag... tags)
      • gauge

        public <T,​R extends Number> org.eclipse.microprofile.metrics.Gauge<R> gauge​(String name,
                                                                                          T o,
                                                                                          Function<T,​R> f,
                                                                                          org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        gauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • gauge

        public <T,​R extends Number> org.eclipse.microprofile.metrics.Gauge<R> gauge​(org.eclipse.microprofile.metrics.MetricID metricID,
                                                                                          T o,
                                                                                          Function<T,​R> f)
        Specified by:
        gauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • gauge

        public <T,​R extends Number> org.eclipse.microprofile.metrics.Gauge<R> gauge​(org.eclipse.microprofile.metrics.Metadata metadata,
                                                                                          T o,
                                                                                          Function<T,​R> f,
                                                                                          org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        gauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • gauge

        public <T extends Number> org.eclipse.microprofile.metrics.Gauge<T> gauge​(String name,
                                                                                  Supplier<T> f)
      • gauge

        public <T extends Number> org.eclipse.microprofile.metrics.Gauge<T> gauge​(String name,
                                                                                  Supplier<T> f,
                                                                                  org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        gauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • gauge

        public <T extends Number> org.eclipse.microprofile.metrics.Gauge<T> gauge​(org.eclipse.microprofile.metrics.MetricID metricID,
                                                                                  Supplier<T> f)
        Specified by:
        gauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • gauge

        public <T extends Number> org.eclipse.microprofile.metrics.Gauge<T> gauge​(org.eclipse.microprofile.metrics.Metadata metadata,
                                                                                  Supplier<T> f,
                                                                                  org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        gauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • histogram

        public org.eclipse.microprofile.metrics.Histogram histogram​(String name)
        Specified by:
        histogram in interface org.eclipse.microprofile.metrics.MetricRegistry
      • histogram

        public org.eclipse.microprofile.metrics.Histogram histogram​(String name,
                                                                    org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        histogram in interface org.eclipse.microprofile.metrics.MetricRegistry
      • histogram

        public org.eclipse.microprofile.metrics.Histogram histogram​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        histogram in interface org.eclipse.microprofile.metrics.MetricRegistry
      • histogram

        public org.eclipse.microprofile.metrics.Histogram histogram​(org.eclipse.microprofile.metrics.Metadata metadata)
        Specified by:
        histogram in interface org.eclipse.microprofile.metrics.MetricRegistry
      • histogram

        public org.eclipse.microprofile.metrics.Histogram histogram​(org.eclipse.microprofile.metrics.Metadata metadata,
                                                                    org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        histogram in interface org.eclipse.microprofile.metrics.MetricRegistry
      • timer

        public org.eclipse.microprofile.metrics.Timer timer​(String name)
        Specified by:
        timer in interface org.eclipse.microprofile.metrics.MetricRegistry
      • timer

        public org.eclipse.microprofile.metrics.Timer timer​(String name,
                                                            org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        timer in interface org.eclipse.microprofile.metrics.MetricRegistry
      • timer

        public org.eclipse.microprofile.metrics.Timer timer​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        timer in interface org.eclipse.microprofile.metrics.MetricRegistry
      • timer

        public org.eclipse.microprofile.metrics.Timer timer​(org.eclipse.microprofile.metrics.Metadata metadata)
        Specified by:
        timer in interface org.eclipse.microprofile.metrics.MetricRegistry
      • timer

        public org.eclipse.microprofile.metrics.Timer timer​(org.eclipse.microprofile.metrics.Metadata metadata,
                                                            org.eclipse.microprofile.metrics.Tag... tags)
        Specified by:
        timer in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetric

        public org.eclipse.microprofile.metrics.Metric getMetric​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        getMetric in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetric

        public <T extends org.eclipse.microprofile.metrics.Metric> T getMetric​(org.eclipse.microprofile.metrics.MetricID metricID,
                                                                               Class<T> asType)
        Specified by:
        getMetric in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getCounter

        public org.eclipse.microprofile.metrics.Counter getCounter​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        getCounter in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getGauge

        public org.eclipse.microprofile.metrics.Gauge<?> getGauge​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        getGauge in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getHistogram

        public org.eclipse.microprofile.metrics.Histogram getHistogram​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        getHistogram in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getTimer

        public org.eclipse.microprofile.metrics.Timer getTimer​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        getTimer in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetadata

        public org.eclipse.microprofile.metrics.Metadata getMetadata​(String name)
        Specified by:
        getMetadata in interface org.eclipse.microprofile.metrics.MetricRegistry
      • remove

        public boolean remove​(String name)
        Specified by:
        remove in interface org.eclipse.microprofile.metrics.MetricRegistry
      • remove

        public boolean remove​(org.eclipse.microprofile.metrics.MetricID metricID)
        Specified by:
        remove in interface org.eclipse.microprofile.metrics.MetricRegistry
      • removeMatching

        public void removeMatching​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)
        Specified by:
        removeMatching in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getNames

        public SortedSet<String> getNames()
        Specified by:
        getNames in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetricIDs

        public SortedSet<org.eclipse.microprofile.metrics.MetricID> getMetricIDs()
        Specified by:
        getMetricIDs in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getGauges

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Gauge> getGauges()
        Specified by:
        getGauges in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getGauges

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Gauge> getGauges​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)
        Specified by:
        getGauges in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getCounters

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Counter> getCounters()
        Specified by:
        getCounters in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getCounters

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Counter> getCounters​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)
        Specified by:
        getCounters in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getHistograms

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Histogram> getHistograms()
        Specified by:
        getHistograms in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getHistograms

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Histogram> getHistograms​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)
        Specified by:
        getHistograms in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getTimers

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Timer> getTimers()
        Specified by:
        getTimers in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getTimers

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Timer> getTimers​(org.eclipse.microprofile.metrics.MetricFilter metricFilter)
        Specified by:
        getTimers in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetrics

        public SortedMap<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Metric> getMetrics​(org.eclipse.microprofile.metrics.MetricFilter filter)
        Specified by:
        getMetrics in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetrics

        public <T extends org.eclipse.microprofile.metrics.Metric> SortedMap<org.eclipse.microprofile.metrics.MetricID,​T> getMetrics​(Class<T> ofType,
                                                                                                                                           org.eclipse.microprofile.metrics.MetricFilter filter)
        Specified by:
        getMetrics in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetrics

        public Map<org.eclipse.microprofile.metrics.MetricID,​org.eclipse.microprofile.metrics.Metric> getMetrics()
        Specified by:
        getMetrics in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getMetadata

        public Map<String,​org.eclipse.microprofile.metrics.Metadata> getMetadata()
        Specified by:
        getMetadata in interface org.eclipse.microprofile.metrics.MetricRegistry
      • getScope

        public String getScope()
        Specified by:
        getScope in interface org.eclipse.microprofile.metrics.MetricRegistry
      • withAppTags

        public io.micrometer.core.instrument.Tags withAppTags​(org.eclipse.microprofile.metrics.Tag... tags)
        Must be called before any internalGetMetadata calls We may throw an IllegalArgumentException. So we don't want metadata to be registered if it was not necessary.
        Parameters:
        tags - Tags to be combined with
        Returns:
        tags combined with global tags and mp_app if available
      • scopeTagsLegacy

        public org.eclipse.microprofile.metrics.Tag[] scopeTagsLegacy()