o
    );c                     @   sZ   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 deZe ZdS )    N)Iterable   )CounterMetricFamilyMetric)	CollectorCollectorRegistryREGISTRYc                   @   s4   e Zd ZdZefdefddZdee fddZ	dS )	GCCollectorz,Collector for Garbage collection statistics.registryc                 C   s(   t tdrt dkrd S ||  d S )N	get_statsCPython)hasattrgcplatformpython_implementationregister)selfr
    r   i/Users/cmarchbanks/go/src/github.com/prometheus/client_python/build/lib/prometheus_client/gc_collector.py__init__   s   zGCCollector.__init__returnc                 C   s   t dddgd}t dddgd}t dddgd}tt D ]&\}}t|}|j|g|d	 d
 |j|g|d d
 |j|g|d d
 q|||gS )NZpython_gc_objects_collectedzObjects collected during gc
generation)labelsZpython_gc_objects_uncollectablez$Uncollectable object found during GCZ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   r   r   r   collect   s*   
zGCCollector.collectN)
__name__
__module____qualname____doc__r   r   r   r   r   r"   r   r   r   r   r	   	   s    r	   )r   r   typingr   metrics_corer   r   r
   r   r   r   r	   GC_COLLECTORr   r   r   r   <module>   s    #