
    AHj                    @    d Z ddlmZ ddlZddlZddlmZ ddZddZy)	z{
Prometheus multiprocess directory cleanup utilities.

Wipes all .db files on startup so workers start with a clean slate.
    )annotationsN)verbose_proxy_loggerc                P   t        j                   t        j                  j                  | d            }d}|D ]  }	 t        j                  |       |dz  } |rt        j                  d| d|         yy# t
        $ r%}t        j                  d| d|        Y d}~hd}~ww xY w)	zGDelete all .db files in the directory. Called once before workers fork.z*.dbr      z'Failed to delete stale prometheus file z: NzPrometheus cleanup: wiped z stale .db files from )	globospathjoinremoveOSErrorr   warninginfo)	directoryfilesdeletedfilepathes        X/root/tools/cai/cai_env/lib/python3.12/site-packages/litellm/proxy/prometheus_cleanup.pywipe_directoryr      s    IIbggll9f56EG 	IIhqLG !!(	1G	{S	
 	  	 ((9(2aSI 	s   A77	B% B  B%c                   t         j                  j                  d      sy	 ddlm} |j                  |        t        j                  d|  d       y# t        $ r%}t        j                  d|  d|        Y d}~yd}~ww xY w)	zRRemove prometheus .db files for a dead worker. Called by gunicorn child_exit hook.PROMETHEUS_MULTIPROC_DIRNr   )multiprocessz"Prometheus cleanup: marked worker z as deadz!Failed to mark prometheus worker z
 as dead: )
r   environgetprometheus_clientr   mark_process_deadr   r   	Exceptionr   )
worker_pidr   r   s      r   mark_worker_exitr   !   s{    ::>>45

2&&z2!!0HE	
  
$$/
|:aSI	
 	

s   0A 	BA<<B)r   strreturnNone)r   intr!   r"   )	__doc__
__future__r   r   r   litellm._loggingr   r   r        r   <module>r)      s"    #  	 1
$
r(   