Class Collector
- java.lang.Object
-
- io.prometheus.client.Collector
-
- Direct Known Subclasses:
SimpleCollector
public abstract class Collector extends Object
A collector for a set of metrics.Normal users should use
Gauge,Counter,SummaryandHistogram.Subclasssing Collector is for advanced uses, such as proxying metrics from another monitoring system. It is it the responsibility of subclasses to ensure they produce valid metrics.
- See Also:
- Exposition formats.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceCollector.Describablestatic classCollector.MetricFamilySamplesA metric, and all of its samples.static classCollector.Type
-
Field Summary
Fields Modifier and Type Field Description static doubleMILLISECONDS_PER_SECONDNumber of milliseconds in a second.static doubleNANOSECONDS_PER_SECONDNumber of nanoseconds in a second.
-
Constructor Summary
Constructors Constructor Description Collector()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static voidcheckMetricLabelName(String name)Throw an exception if the metric label name is invalid.protected static voidcheckMetricName(String name)Throw an exception if the metric name is invalid.abstract List<Collector.MetricFamilySamples>collect()Return all metrics of this Collector.List<Collector.MetricFamilySamples>collect(Predicate<String> sampleNameFilter)Likecollect(), but the result should only containMetricFamilySampleswheresampleNameFilter.test(name)istruefor at least one Sample name.static StringdoubleToGoString(double d)Convert a double to its string representation in Go.<T extends Collector>
Tregister()Register the Collector with the default registry.<T extends Collector>
Tregister(CollectorRegistry registry)Register the Collector with the given registry.static StringsanitizeMetricName(String metricName)Sanitize metric name
-
-
-
Field Detail
-
NANOSECONDS_PER_SECOND
public static final double NANOSECONDS_PER_SECOND
Number of nanoseconds in a second.- See Also:
- Constant Field Values
-
MILLISECONDS_PER_SECOND
public static final double MILLISECONDS_PER_SECOND
Number of milliseconds in a second.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Collector
public Collector()
-
-
Method Detail
-
collect
public abstract List<Collector.MetricFamilySamples> collect()
Return all metrics of this Collector.
-
collect
public List<Collector.MetricFamilySamples> collect(Predicate<String> sampleNameFilter)
Likecollect(), but the result should only containMetricFamilySampleswheresampleNameFilter.test(name)istruefor at least one Sample name.The default implementation first collects all
MetricFamilySamplesand then discards the ones wheresampleNameFilter.test(name)returnsfalsefor all names inCollector.MetricFamilySamples.getNames(). To improve performance, collector implementations should override this method to preventMetricFamilySamplesfrom being collected if they will be discarded anyways. SeeThreadExportsfor an example.Note that the resulting List may contain
MetricFamilySampleswhere some Sample names returntrueforsampleNameFilter.test(name)but some Sample names returnfalse. This is ok, because before we produce the output format we will callCollector.MetricFamilySamples.filter(Predicate)to strip all Samples wheresampleNameFilter.test(name)returnsfalse.- Parameters:
sampleNameFilter- may benull, indicating that all metrics should be collected.
-
register
public <T extends Collector> T register()
Register the Collector with the default registry.
-
register
public <T extends Collector> T register(CollectorRegistry registry)
Register the Collector with the given registry.
-
checkMetricName
protected static void checkMetricName(String name)
Throw an exception if the metric name is invalid.
-
sanitizeMetricName
public static String sanitizeMetricName(String metricName)
Sanitize metric name
-
checkMetricLabelName
protected static void checkMetricLabelName(String name)
Throw an exception if the metric label name is invalid.
-
doubleToGoString
public static String doubleToGoString(double d)
Convert a double to its string representation in Go.
-
-