o
    iF                     @   s   d dl Z d dlZd dlZddlmZ ejdddgg ddZejd	d
dgddZejdddgddZ	edddgZ
dddZdeddfddZdddZdddZdeddfddZdS )     N   )utils*lk_agents_proc_initialize_duration_secondsz"Time taken to initialize a processnodename)g?g      ?   r      
   )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 percentagereturnc                  C   sL   zt tt jdd} tjt	 d
|  W dS  ty%   Y dS w )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)count r   b/var/www/html/livekit_bhavya/venv/lib/python3.10/site-packages/livekit/agents/telemetry/metrics.py_update_child_proc_count(   s   r    worker_loadc                 C      t jt d|  d S Nr   )CPU_LOAD_GAUGEr   r   r   r   )r!   r   r   r   _update_worker_load2      r%   c                   C      t jt d  d S r#   )RUNNING_JOB_GAUGEr   r   r   incr   r   r   r   job_started6      r*   c                   C   r'   r#   )r(   r   r   r   decr   r   r   r   	job_ended:   r+   r-   time_elapsedc                 C   r"   r#   )PROC_INITIALIZE_TIMEr   r   r   observe)r.   r   r   r   proc_initialized>   r&   r1   )r   N)r   prometheus_clientr    r   	Histogramr/   Gauger(   r   r$   r    floatr%   r*   r-   r1   r   r   r   r   <module>   s@    	



