Class PrometheusMetricProviderImpl
- java.lang.Object
-
- org.opendaylight.infrautils.metrics.prometheus.impl.PrometheusMetricProviderImpl
-
- All Implemented Interfaces:
MetricProvider
@Singleton public class PrometheusMetricProviderImpl extends Object implements MetricProvider
Implementation ofMetricProvider
based on Prometheus.IO.- Author:
- Michael Vorburger.ch
-
-
Constructor Summary
Constructors Constructor Description PrometheusMetricProviderImpl(io.prometheus.client.CollectorRegistry prometheusRegistry)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Counter
newCounter(Object anchor, String id)
Create new Counter metric.Counter
newCounter(MetricDescriptor descriptor)
Create new Counter metric without labels.Labeled<Counter>
newCounter(MetricDescriptor descriptor, String labelName)
Create new Counter metric with 1 label.Labeled<Labeled<Counter>>
newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName)
Create new Counter metric with 2 labels.Labeled<Labeled<Labeled<Counter>>>
newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName)
Create new Counter metric with 3 labels.Labeled<Labeled<Labeled<Labeled<Counter>>>>
newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName)
Create new Counter metric with 4 labels.Labeled<Labeled<Labeled<Labeled<Labeled<Counter>>>>>
newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName, String fifthLabelName)
Create new Counter metric with 5 labels.Meter
newMeter(Object anchor, String id)
Create new Meter metric.Meter
newMeter(MetricDescriptor descriptor)
Create new Meter metric without labels.Labeled<Meter>
newMeter(MetricDescriptor descriptor, String labelName)
Create new Meter metric with 1 label.Labeled<Labeled<Meter>>
newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName)
Create new Meter metric with 2 labels.Labeled<Labeled<Labeled<Meter>>>
newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName)
Create new Meter metric with 3 labels.Labeled<Labeled<Labeled<Labeled<Meter>>>>
newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName)
Create new Meter metric with 4 labels.Labeled<Labeled<Labeled<Labeled<Labeled<Meter>>>>>
newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName, String fifthLabelName)
Create new Meter metric with 5 labels.Timer
newTimer(Object anchor, String id)
Timer
newTimer(MetricDescriptor descriptor)
Create new Timer metric without labels.Labeled<Timer>
newTimer(MetricDescriptor descriptor, String labelName)
Create new Timer metric with 1 label.Labeled<Labeled<Timer>>
newTimer(MetricDescriptor descriptor, String firstLabelName, String secondLabelName)
Create new Timer metric with 2 labels.
-
-
-
Constructor Detail
-
PrometheusMetricProviderImpl
@Inject public PrometheusMetricProviderImpl(io.prometheus.client.CollectorRegistry prometheusRegistry)
Constructor. We force passing an existing CollectorRegistry instead of CollectorRegistry.defaultRegistry because defaultRegistry is static, which is a problem for use e.g. in tests.
-
-
Method Detail
-
close
@PreDestroy public void close()
-
newMeter
public Meter newMeter(Object anchor, String id)
Description copied from interface:MetricProvider
Create new Meter metric.- Specified by:
newMeter
in interfaceMetricProvider
-
newMeter
public Meter newMeter(MetricDescriptor descriptor)
Description copied from interface:MetricProvider
Create new Meter metric without labels.- Specified by:
newMeter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
- Returns:
- the Meter
-
newMeter
public Labeled<Meter> newMeter(MetricDescriptor descriptor, String labelName)
Description copied from interface:MetricProvider
Create new Meter metric with 1 label.- Specified by:
newMeter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
labelName
- name of the (only) label of this metric- Returns:
- an object from which a Meter can be obtained, given 1 label value
-
newMeter
public Labeled<Labeled<Meter>> newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName)
Description copied from interface:MetricProvider
Create new Meter metric with 2 labels.- Specified by:
newMeter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metric- Returns:
- an object from which a Meter can be obtained, given 2 label values
-
newMeter
public Labeled<Labeled<Labeled<Meter>>> newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName)
Description copied from interface:MetricProvider
Create new Meter metric with 3 labels.- Specified by:
newMeter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metricthirdLabelName
- name of the 3rd label of this metric- Returns:
- an object from which a Meter can be obtained, given 3 label values
-
newMeter
public Labeled<Labeled<Labeled<Labeled<Meter>>>> newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName)
Description copied from interface:MetricProvider
Create new Meter metric with 4 labels.- Specified by:
newMeter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metricthirdLabelName
- name of the 3rd label of this metricfourthLabelName
- name of the 4th label of this metric- Returns:
- an object from which a Meter can be obtained, given 3 label values
-
newMeter
public Labeled<Labeled<Labeled<Labeled<Labeled<Meter>>>>> newMeter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName, String fifthLabelName)
Description copied from interface:MetricProvider
Create new Meter metric with 5 labels.- Specified by:
newMeter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metricthirdLabelName
- name of the 3rd label of this metricfourthLabelName
- name of the 4th label of this metricfifthLabelName
- name of the 5th label of this metric- Returns:
- an object from which a Meter can be obtained, given 3 label values
-
newCounter
public Counter newCounter(Object anchor, String id)
Description copied from interface:MetricProvider
Create new Counter metric.- Specified by:
newCounter
in interfaceMetricProvider
-
newCounter
public Counter newCounter(MetricDescriptor descriptor)
Description copied from interface:MetricProvider
Create new Counter metric without labels.- Specified by:
newCounter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
- Returns:
- the Counter
-
newCounter
public Labeled<Counter> newCounter(MetricDescriptor descriptor, String labelName)
Description copied from interface:MetricProvider
Create new Counter metric with 1 label.- Specified by:
newCounter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
labelName
- name of the (only) label of this metric- Returns:
- an object from which a Counter can be obtained, given 1 label value
-
newCounter
public Labeled<Labeled<Counter>> newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName)
Description copied from interface:MetricProvider
Create new Counter metric with 2 labels.- Specified by:
newCounter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metric- Returns:
- an object from which a Counter can be obtained, given 2 label values
-
newCounter
public Labeled<Labeled<Labeled<Counter>>> newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName)
Description copied from interface:MetricProvider
Create new Counter metric with 3 labels.- Specified by:
newCounter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metricthirdLabelName
- name of the 3rd label of this metric- Returns:
- an object from which a Counter can be obtained, given 3 label values
-
newCounter
public Labeled<Labeled<Labeled<Labeled<Counter>>>> newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName)
Description copied from interface:MetricProvider
Create new Counter metric with 4 labels.- Specified by:
newCounter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metricthirdLabelName
- name of the 3rd label of this metricfourthLabelName
- name of the 4th label of this metric- Returns:
- an object from which a Counter can be obtained, given 4 label values
-
newCounter
public Labeled<Labeled<Labeled<Labeled<Labeled<Counter>>>>> newCounter(MetricDescriptor descriptor, String firstLabelName, String secondLabelName, String thirdLabelName, String fourthLabelName, String fifthLabelName)
Description copied from interface:MetricProvider
Create new Counter metric with 5 labels.- Specified by:
newCounter
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metricthirdLabelName
- name of the 3rd label of this metricfourthLabelName
- name of the 4th label of this metricfifthLabelName
- name of the 5th label of this metric- Returns:
- an object from which a Counter can be obtained, given 5 label values
-
newTimer
public Timer newTimer(Object anchor, String id)
- Specified by:
newTimer
in interfaceMetricProvider
-
newTimer
public Timer newTimer(MetricDescriptor descriptor)
Description copied from interface:MetricProvider
Create new Timer metric without labels.- Specified by:
newTimer
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
- Returns:
- the Timer
-
newTimer
public Labeled<Timer> newTimer(MetricDescriptor descriptor, String labelName)
Description copied from interface:MetricProvider
Create new Timer metric with 1 label.- Specified by:
newTimer
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
labelName
- name of the (only) label of this metric- Returns:
- an object from which a Timer can be obtained, given 1 label value
-
newTimer
public Labeled<Labeled<Timer>> newTimer(MetricDescriptor descriptor, String firstLabelName, String secondLabelName)
Description copied from interface:MetricProvider
Create new Timer metric with 2 labels.- Specified by:
newTimer
in interfaceMetricProvider
- Parameters:
descriptor
- a MetricDescriptor, typically created viaMetricDescriptor.builder().anchor(this) .project("<projectName>").module("<moduleName>").id("<metricName>").build()
firstLabelName
- name of the 1st label of this metricsecondLabelName
- name of the 2nd label of this metric- Returns:
- an object from which a Timer can be obtained, given 2 label values
-
-