+
    ~jF                        ^ RI t ^ RIt^ RIt^RIHt ]P
                  ! RRR.. ROR7      t]P                  ! RRR.R	R
7      t]P                  ! RRR.RR
7      t	]P                  ! RRR.4      t
R R ltR R ltR R ltR R ltR R ltR# )    N)utils*lk_agents_proc_initialize_duration_secondsz"Time taken to initialize a processnodename)bucketslk_agents_active_job_countzActive jobslivesum)multiprocess_modelk_agents_child_process_countzTotal number of child processesmaxlk_agents_worker_loadzWorker load percentagec                    V ^8  d   QhRR/#    returnN )formats   "u/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/telemetry/metrics.py__annotate__r   (   s      $     c                      \        \        P                  ! \        P                  ! 4       4      P                  RR7      4      p \        P                  \        P                  ! 4       R7      P                  V 4       R#   \         d     R# i ; i)zSUpdate child process count metric. Must be called periodically in the main process.T)	recursiver   N)lenpsutilProcessosgetpidchildrenCHILD_PROC_GAUGElabelsr   r   set	Exception)counts    r   _update_child_proc_countr$   (   sc    FNN299;/8848HI)9:>>uE s   A:A> >BBc                (    V ^8  d   QhR\         RR/# )r   worker_loadr   Nfloat)r   s   "r   r   r   2   s     F FU Ft Fr   c                 v    \         P                  \        P                  ! 4       R 7      P	                  V 4       R# r   N)CPU_LOAD_GAUGEr    r   r   r!   )r&   s   &r   _update_worker_loadr,   2   s%    5>>#3488Er   c                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r   6   s     > >T >r   c                  t    \         P                  \        P                  ! 4       R 7      P	                  4        R# r*   )RUNNING_JOB_GAUGEr    r   r   incr   r   r   job_startedr1   6   #    enn&67;;=r   c                    V ^8  d   QhRR/# r   r   )r   s   "r   r   r   :   s     > >4 >r   c                  t    \         P                  \        P                  ! 4       R 7      P	                  4        R# r*   )r/   r    r   r   decr   r   r   	job_endedr6   :   r2   r   c                (    V ^8  d   QhR\         RR/# )r   time_elapsedr   Nr'   )r   s   "r   r   r   >   s     Q Qe Q Qr   c                 v    \         P                  \        P                  ! 4       R 7      P	                  V 4       R# r*   )PROC_INITIALIZE_TIMEr    r   r   observe)r8   s   $r   proc_initializedr<   >   s%    )9:BB<Pr   )g?g      ?   r      
   )r   prometheus_clientr    r   	Histogramr:   Gauger/   r   r+   r$   r,   r1   r6   r<   r   r   r   <module>rD      s    	   (220(L#	  &++ L	  %**#%L	  #((LF>>Qr   