
    ]Ci                         S SK r S SKJrJrJrJr  SSKJrJrJ	r	  SSK
JrJrJr   S SKr\R                  " 5       r " S S\5      r\" 5       rg! \ a    Sr Nf = f)	    N)CallableIterableOptionalUnion   )CounterMetricFamilyGaugeMetricFamilyMetric)	CollectorCollectorRegistryREGISTRYi   c            
       t    \ rS rSrSrSS S\4S\S\/ \\	\4   4   S\S	\
\   4S
 jjrS rS\\   4S jrSrg)ProcessCollector   z6Collector for Standard Exports such as cpu and memory. c                      g)Nself r       ]/home/james-whalen/.local/lib/python3.13/site-packages/prometheus_client/process_collector.py<lambda>ProcessCollector.<lambda>   s    fr   z/proc	namespacepidprocregistryc                    Xl         X l        X0l        U(       a  US-   U l        OSU l        SU l         [
        R                  " S5      U l        [        U l        SU l         U R                  5       U l        U(       a  UR                  U 5        g g ! [        [        [        [        4 a     N^f = f! [         a     NFf = f)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__ProcessCollector.__init__   s    
 $	
${2DL%DL	**\2DK # 	//+DK d#  I~w? 		  		s#   B "B1 B.-B.1
B>=B>c                 ,   [        [        R                  R                  U R                  S5      S5       nU H@  nUR                  S5      (       d  M  [        UR                  5       S   5      s  sS S S 5        $    S S S 5        g ! , (       d  f       g = f)Nstatrbs   btime r   )openr&   pathjoinr#   
startswithfloatsplit)r   r4   lines      r   r/   ProcessCollector._boot_time0   sa    "'',,tzz62D9T??9-- a11 :9 :99s   BB:B
Breturnc                    U R                   (       d  / $ [        R                  R                  U R                  [        U R                  5       5      R                  5       5      n/ n [        [        R                  R                  US5      S5       nUR                  5       R                  S5      S   R                  5       nS S S 5        [        U R                  S-   S[        WS   5      S9n[        U R                  S	-   S
[        US   5      U R                  -  S9n[        US   5      U R                  -  n[        U R                  S-   SXpR                   -   S9n[        US   5      U R                  -  n	[        US   5      U R                  -  n
[!        U R                  S-   SX-   S9nUR#                  XVX/5         [        [        R                  R                  US5      S5       nU HM  nUR'                  S5      (       d  M  [        U R                  S-   S[        UR                  5       S   5      S9n  O   S S S 5        [        U R                  S-   S[)        [        R*                  " [        R                  R                  US5      5      5      5      nUR#                  UW/5        U$ ! , (       d  f       GN= f! [$         a     GNf = f! , (       d  f       N= f! [$         a     U$ f = f)Nr4   r5      )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&   r7   r8   r#   strr"   stripr6   readr;   r	   r$   r:   r-   r%   r   extendr+   r9   lenlistdir)r   r   resultr4   partsvmemrssstart_time_secs
start_timeutimestimecpurL   r<   rM   rO   s                   r   collectProcessCollector.collect6   s   {{Iggll4::s499;'7'='='?@	bggll3/6$**404::< 7 %T\\4J%J%DERWXZR[L\^D#DLL3J$JLl*/b	*:T^^*KMC#E"I.<O*4<<:N+N+c1@;;1NPJ %)$t{{2E%)$t{{2E%dll5H&H&X,1M;C MM4j67	bggll3148F"D'788"3DLL94L4^:?

Q:P#R  # 9 )
)B)K),RZZS$8O-P)QSH MM8W-. G 76"  		 98  		s\   &*K 1J1C?K *K% +K	6K?A0K% 1
K ;K 
KK
K"K% %
K32K3)r.   r!   r-   r"   r$   r#   r%   N)__name__
__module____qualname____firstlineno____doc__r   rQ   r   r   intr   r   r1   r/   r   r
   r`   __static_attributes__r   r   r   r   r      sj    @ #%6D$9A	$$r5c?23$ $ $$56	$:2+&) +r   r   )r&   typingr   r   r   r   metrics_corer   r	   r
   r   r   r   r   resourcegetpagesizer,   ImportErrorr   PROCESS_COLLECTORr   r   r   <module>ro      sd    	 6 6 H H < <$$&IQy Qh %&  <u  Is   A AA