Class MetricWithFixedMetadata
- All Implemented Interfaces:
Collector
- Direct Known Subclasses:
CounterWithCallback, GaugeWithCallback, Info, StatefulMetric, SummaryWithCallback
An exception would be a metric that is a bridge to a 3rd party metric library, where the metric name has to be retrieved from the 3rd party metric library at scrape time.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classMetricWithFixedMetadata.Builder<B extends MetricWithFixedMetadata.Builder<B,M>, M extends MetricWithFixedMetadata> -
Method Summary
Modifier and TypeMethodDescriptionReturns the complete set of label names for this metric.Returns the metric metadata (name, help, unit) for registration-time validation.This is called in two places: During registration to check if a metric with that name already exists.Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Collector
collect, collect, collect, getMetricType
-
Method Details
-
getMetadata
Description copied from interface:CollectorReturns the metric metadata (name, help, unit) for registration-time validation.When non-null, the registry uses this to validate that metrics with the same name have consistent help and unit. Returning
nullmeans help/unit validation is skipped for this collector.- Returns:
- the metric metadata, or
nullto skip help/unit validation
-
getPrometheusName
Description copied from interface:CollectorThis is called in two places:- During registration to check if a metric with that name already exists.
- During scrape to check if this collector can be skipped because a name filter is present and the metric name is excluded.
Returning
nullmeans checks are omitted (registration the metric always succeeds), and the collector is always scraped (the result is dropped after scraping if a name filter is present and the metric name is excluded).If your metric has a name that does not change at runtime it is a good idea to overwrite this and return the name.
All metrics in
prometheus-metrics-coreoverride this. -
getLabelNames
Description copied from interface:CollectorReturns the complete set of label names for this metric.This includes both dynamic label names (specified in
labelNames()) and constant label names (specified inconstLabels()). Label names are normalized using Prometheus naming conventions.This is used for registration-time validation to prevent duplicate label schemas for the same metric name. Two collectors with the same name and type can coexist if they have different label name sets.
Returning
nullis treated as an empty label set: the registry normalizes it toCollections.emptySet()and performs full label-schema validation and duplicate detection. Two collectors with the same name, type, andnull(or empty) label names are considered duplicate and registration of the second will fail.- Returns:
- the set of all label names, or
null(treated as empty) for a metric with no labels
-