
    Xh                     h    d dl Z d dlZd dlmZ ddlmZmZ ddlmZm	Z	m
Z
  G d de      Z e       Zy)    N)Iterable   )CounterMetricFamilyMetric)	CollectorCollectorRegistryREGISTRYc                   2    e Zd ZdZefdefdZdee   fdZ	y)GCCollectorz,Collector for Garbage collection statistics.registryc                 v    t        t        d      rt        j                         dk7  ry |j	                  |        y )N	get_statsCPython)hasattrgcplatformpython_implementationregister)selfr   s     R/var/www/html/myenv/lib/python3.12/site-packages/prometheus_client/gc_collector.py__init__zGCCollector.__init__   s-    r;'8+I+I+Ky+X$    returnc                 P   t        dddg      }t        dddg      }t        dddg      }t        t        j                               D ]U  \  }}t	        |      }|j                  |g|d	   
       |j                  |g|d   
       |j                  |g|d   
       W |||gS )Npython_gc_objects_collectedzObjects collected during gc
generation)labelspython_gc_objects_uncollectablez%Uncollectable objects found during GCpython_gc_collectionsz-Number of times this generation was collected	collected)valueuncollectablecollections)r   	enumerater   r   str
add_metric)r   r    r"   r#   genstatr   s          r   collectzGCCollector.collect   s    ')) >
	
 ,-3 >
 *#; >
 #2<<>2 	LICSJ  *T+5F G$$j\o9N$O""J<tM7J"K		L =+66r   N)
__name__
__module____qualname____doc__r	   r   r   r   r   r)    r   r   r   r   	   s&    65=  !2  
7&) 7r   r   )r   r   typingr   metrics_corer   r   r   r   r   r	   r   GC_COLLECTORr.   r   r   <module>r2      s0    	   5 < < 7)  7F } 7r   