(self)
| 15 | registry.register(self) |
| 16 | |
| 17 | def collect(self) -> Iterable[Metric]: |
| 18 | collected = CounterMetricFamily( |
| 19 | 'python_gc_objects_collected', |
| 20 | 'Objects collected during gc', |
| 21 | labels=['generation'], |
| 22 | ) |
| 23 | uncollectable = CounterMetricFamily( |
| 24 | 'python_gc_objects_uncollectable', |
| 25 | 'Uncollectable objects found during GC', |
| 26 | labels=['generation'], |
| 27 | ) |
| 28 | |
| 29 | collections = CounterMetricFamily( |
| 30 | 'python_gc_collections', |
| 31 | 'Number of times this generation was collected', |
| 32 | labels=['generation'], |
| 33 | ) |
| 34 | |
| 35 | for gen, stat in enumerate(gc.get_stats()): |
| 36 | generation = str(gen) |
| 37 | collected.add_metric([generation], value=stat['collected']) |
| 38 | uncollectable.add_metric([generation], value=stat['uncollectable']) |
| 39 | collections.add_metric([generation], value=stat['collections']) |
| 40 | |
| 41 | return [collected, uncollectable, collections] |
| 42 | |
| 43 | |
| 44 | GC_COLLECTOR = GCCollector() |
nothing calls this directly
no test coverage detected