From 4a52a71956a8d46fcb7294ac71734504bb09bcc2 Mon Sep 17 00:00:00 2001 From: S. Solomon Darnell Date: Fri, 28 Mar 2025 21:52:21 -0500 Subject: two version of R2R are here --- .../prometheus_client/gc_collector.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .venv/lib/python3.12/site-packages/prometheus_client/gc_collector.py (limited to '.venv/lib/python3.12/site-packages/prometheus_client/gc_collector.py') diff --git a/.venv/lib/python3.12/site-packages/prometheus_client/gc_collector.py b/.venv/lib/python3.12/site-packages/prometheus_client/gc_collector.py new file mode 100644 index 00000000..06e52dfc --- /dev/null +++ b/.venv/lib/python3.12/site-packages/prometheus_client/gc_collector.py @@ -0,0 +1,45 @@ +import gc +import platform +from typing import Iterable + +from .metrics_core import CounterMetricFamily, Metric +from .registry import Collector, CollectorRegistry, REGISTRY + + +class GCCollector(Collector): + """Collector for Garbage collection statistics.""" + + def __init__(self, registry: CollectorRegistry = REGISTRY): + if not hasattr(gc, 'get_stats') or platform.python_implementation() != 'CPython': + return + registry.register(self) + + def collect(self) -> Iterable[Metric]: + collected = CounterMetricFamily( + 'python_gc_objects_collected', + 'Objects collected during gc', + labels=['generation'], + ) + uncollectable = CounterMetricFamily( + 'python_gc_objects_uncollectable', + 'Uncollectable objects found during GC', + labels=['generation'], + ) + + collections = CounterMetricFamily( + 'python_gc_collections', + 'Number of times this generation was collected', + labels=['generation'], + ) + + for gen, stat in enumerate(gc.get_stats()): + generation = str(gen) + collected.add_metric([generation], value=stat['collected']) + uncollectable.add_metric([generation], value=stat['uncollectable']) + collections.add_metric([generation], value=stat['collections']) + + return [collected, uncollectable, collections] + + +GC_COLLECTOR = GCCollector() +"""Default GCCollector in default Registry REGISTRY.""" -- cgit v1.2.3