diff --git a/prometheus_client/__init__.py b/prometheus_client/__init__.py index 1224ad85..e81b2c80 100644 --- a/prometheus_client/__init__.py +++ b/prometheus_client/__init__.py @@ -11,7 +11,7 @@ write_to_textfile, ) from .gc_collector import GC_COLLECTOR, GCCollector -from .metrics import Counter, Enum, Gauge, Histogram, Info, Summary +from .metrics import Counter, Enum, Gauge, Histogram, Info, Summary, enable_created_metrics, disable_created_metrics from .metrics_core import Metric from .platform_collector import PLATFORM_COLLECTOR, PlatformCollector from .process_collector import PROCESS_COLLECTOR, ProcessCollector @@ -27,6 +27,8 @@ 'Histogram', 'Info', 'Enum', + 'enable_created_metrics', + 'disable_created_metrics', 'CONTENT_TYPE_LATEST', 'generate_latest', 'MetricsHandler', diff --git a/prometheus_client/metrics.py b/prometheus_client/metrics.py index 66f51fa6..38df5a4e 100644 --- a/prometheus_client/metrics.py +++ b/prometheus_client/metrics.py @@ -70,6 +70,18 @@ def _get_use_created() -> bool: _use_created = _get_use_created() +def disable_created_metrics(): + """Disable exporting _created metrics on counters, histograms, and summaries.""" + global _use_created + _use_created = False + + +def enable_created_metrics(): + """Enable exporting _created metrics on counters, histograms, and summaries.""" + global _use_created + _use_created = True + + class MetricWrapperBase(Collector): _type: Optional[str] = None _reserved_labelnames: Sequence[str] = () diff --git a/prometheus_client/registry.py b/prometheus_client/registry.py index 694e4bd8..ce656b58 100644 --- a/prometheus_client/registry.py +++ b/prometheus_client/registry.py @@ -94,7 +94,7 @@ def collect(self) -> Iterable[Metric]: if ti: yield ti for collector in collectors: - yield from collector.collect() + yield from collector.collect(created=True) def restricted_registry(self, names: Iterable[str]) -> "RestrictedRegistry": """Returns object that only collects some metrics.