
    d                         d dl Z d dlmZmZmZ ddlmZmZmZ ddl	m
Z
mZmZ 	 d dlZ ej                    Zn# e$ r dZY nw xY w G d de
          Z e            ZdS )	    N)CallableIterableUnion   )CounterMetricFamilyGaugeMetricFamilyMetric)	CollectorCollectorRegistryREGISTRYi   c            	       t    e Zd ZdZdd defdedeg eeef         f         dede	fd	Z
d
 Zdee         fdZdS )ProcessCollectorz6Collector for Standard Exports such as cpu and memory. c                      dS )Nself r       Clib/python3.11/site-packages/prometheus_client/process_collector.py<lambda>zProcessCollector.<lambda>   s    f r   z/proc	namespacepidprocregistryc                    || _         || _        || _        |r|dz   | _        nd| _        d| _        	 t          j        d          | _        n## t          t          t          t          f$ r Y nw xY wt          | _        d| _        	 |                                 | _        n# t          $ r Y nw xY w|r|                    |            d S d S )N	_process_process_g      Y@
SC_CLK_TCKr   )
_namespace_pid_proc_prefix_ticksossysconf
ValueError	TypeErrorAttributeErrorOSError	_PAGESIZE	_pagesize_btime
_boot_timeregister)r   r   r   r   r   s        r   __init__zProcessCollector.__init__   s    
 $	
 	&${2DLL%DL	*\22DKKI~w? 	 	 	D	 # 	//++DKK 	 	 	D	 	$d#####	$ 	$s#   A A,+A,B 
B*)B*c                 >   t          t          j                            | j        d          d          5 }|D ]L}|                    d          r5t          |                                d                   c cd d d            S M	 d d d            d S # 1 swxY w Y   d S )Nstatrbs   btime r   )openr#   pathjoinr    
startswithfloatsplit)r   r0   lines      r   r,   zProcessCollector._boot_time0   s    "',,tz622D99 	2T 2 2??9-- 2 a1111	2 	2 	2 	2 	2 	2 	2 	222	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   ABBBBreturnc                 X   | j         sg S t          j                            | j        t          |                                                                                     }g }	 t          t          j                            |d          d          5 }|	                                
                    d          d         
                                }d d d            n# 1 swxY w Y   t          | j        dz   dt          |d                             }t          | j        d	z   d
t          |d                   | j        z            }t          |d                   | j        z  }t          | j        dz   d|| j         z             }t          |d                   | j        z  }	t          |d                   | j        z  }
t!          | j        dz   d|	|
z             }|                    ||||g           n# t$          $ r Y nw xY w	 t          t          j                            |d          d          5 }|D ]X}|                    d          rAt          | j        dz   dt          |
                                d                             } nYd d d            n# 1 swxY w Y   t          | j        dz   dt)          t          j        t          j                            |d                                        }|                    ||g           n# t$          $ r Y nw xY w|S )Nr0   r1      )virtual_memory_byteszVirtual memory size in bytes.   )valueresident_memory_byteszResident memory size in bytes.      start_time_secondsz6Start time of the process since unix epoch in seconds.      cpu_seconds_totalz0Total user and system CPU time spent in seconds.limitss   Max open filemax_fdsz(Maximum number of open file descriptors.   open_fdsz Number of open file descriptors.fd)r+   r#   r3   r4   r    strr   stripr2   readr7   r   r!   r6   r*   r"   r   extendr(   r5   lenlistdir)r   r   resultr0   partsvmemrssstart_time_secs
start_timeutimestimecpurG   r8   rH   rJ   s                   r   collectzProcessCollector.collect6   s   { 	Igll4:s499;;'7'7'='='?'?@@	bgll3//66 >$**4004::<<> > > > > > > > > > > > > > > %T\4J%J%DERWXZR[L\L\^ ^ ^D#DL3J$JLl*/b	*:*:T^*KM M MC#E"I..<O*4<:N+N+c1@4;1NP P PJ %)$$t{2E%)$$t{2E%dl5H&H&X,1EM; ; ;C MM4j#67777 	 	 	D		bgll311488 F"  D'788 "3DL94L4^:?

Q:P:P#R #R #R 	               )
)B)K),RZS$8O8O-P-P)Q)QS SH MM8W-.... 	 	 	D	 sp   #.G: A CG: C!!G: $C!%DG: :
HH.L 9AJ!L !J%%L (J%)A0L 
L'&L'N)__name__
__module____qualname____doc__r   rL   r   r   intr   r.   r,   r   r	   r[   r   r   r   r   r      s        @@ #%6Dn$/7	$ $$r5c?23$ $ -	$ $ $ $:2 2 2+&) + + + + + +r   r   )r#   typingr   r   r   metrics_corer   r   r	   r   r
   r   r   resourcegetpagesizer)   ImportErrorr   PROCESS_COLLECTORr   r   r   <module>rg      s    				 , , , , , , , , , , H H H H H H H H H H < < < < < < < < < <OOO$$&&II   III
Q Q Q Q Qy Q Q Qh %$&&  < <s   8 AA