
    h&                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ  e       Zej                  d      d        Zej                  j                  dd	      j!                         d
k(  r	 d dlZ ed        ej&                           ed        ej(                           ej*                         Z ed        ej(                  e        ej0                  d       ej                  dd      d        Zej                  dd      d        Zej                  dd      d        Zej                  dd      d        Zd Zy# e$ r	  ed      w xY w)    N)Counter)	APIRouter)get_secret_str)verbose_proxy_loggerz/debug/asyncio-tasksc                    K   d} t        j                         }|D cg c]  }|j                         r| }}t               }t	        |      D ]R  \  }}|| k\  r nH|j                         }t        |dd      xs t        |dd      xs t        |      }||xx   dz  cc<   T t        |      t        |      dS c c}w w)zY
    Returns:
      total_active_tasks: int
      by_name: { coroutine_name: count }
    i  __qualname__N__name__   )total_active_tasksby_name)
asyncio	all_tasksdoner   	enumerateget_corogetattrreprlendict)	MAX_TASKS_TO_CHECKr   tactive_taskscounteridxtaskcoronames	            b/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/common_utils/debug_utils.pyget_active_tasks_statsr      s      !!#I  )9!A9L9 iG|,	T $$}} D.$/ tZ.Dz 	
 	 - ",/= % :s   B?B:B:BB?LITELLM_PROFILEfalsetruezgrowth of objectsz

Most common typesz

Leaking objects)objectsz@objgraph not found. Please install objgraph to use this feature.
   z/memory-usageF)include_in_schemac                     K   t        j                         } | j                  d      }t        j                  d|       |d d }g }|D ]@  }|j                  |j                  j                  d       d|j                  dz   d       B d	|iS w)
NlinenozTOP STATS: %s2   r$   )limitz: i   z KiBtop_50_memory_usage)	tracemalloctake_snapshot
statisticsr   debugappend	tracebackformatsize)snapshot	top_statstop_50resultstats        r   memory_usager8   F   s      ,,.''1	""?I> 3BDMMT^^222<=R		D@P?QQUVW  &v..s   BBz/memory-usage-in-mem-cachec                  &  K   ddl m} m}m} | d}nSt	        | j
                  j                  j                        t	        | j
                  j                  j                        z   }t	        |j                  j                        t	        |j                  j                        z   }t	        |j                  j                  j                  j                        t	        |j                  j                  j                  j                        z   }|||dS w)j
    1. user_api_key_cache
    2. router_cache
    3. proxy_logging_cache
    4. internal_usage_cache
    r   
llm_routerproxy_logging_objuser_api_key_cache)num_items_in_user_api_key_cachenum_items_in_llm_router_cache$num_items_in_proxy_logging_obj_cache)litellm.proxy.proxy_serverr<   r=   r>   r   cachein_memory_cache
cache_dictttl_dictinternal_usage_cache
dual_cache)r<   r=   r>   r@   r?   rA   s         r   memory_usage_in_mem_cacherI   V   s       ()%(+,,77)

  0099:);% '***55'..778'9# ,/..99IITT,22==MMVVW,X(
 ,K)F0T s   DDz /memory-usage-in-mem-cache-itemsc                    K   ddl m} m}m} | i }i }n@| j                  j
                  j                  }| j                  j
                  j                  }|j
                  j                  |j
                  j                  |||j                  j                  j
                  j                  |j                  j                  j
                  j                  dS w)r:   r   r;   )r>   user_api_key_ttlllm_router_cachellm_router_ttlproxy_logging_obj_cacheproxy_logging_obj_ttl)
rB   r<   r=   r>   rC   rD   rE   rF   rG   rH   )r<   r=   r>   llm_router_in_memory_cache_dictllm_router_in_memory_ttl_dicts        r   memory_usage_in_mem_cache_itemsrR   {   s       *,'(*%*4*:*:*J*J*U*U'(2(8(8(H(H(Q(Q% 1@@KK.>>GG;7#4#I#I#T#T#d#d#o#o!2!G!G!R!R!b!b!k!k s   CCz/otel-spansc                    K   ddl m}  | g i d dS | j                  }t        |d      r|j	                         }ng }t        d|       d }d}i }|D ]j  }|j                  |j                  j                  }||vrg ||<   ||   j                  |j                         |j                  |kD  s]|}|j                  }l |D cg c]  }|j                   }}|||dS c c}w w)Nr   )open_telemetry_logger)
otel_spansspans_grouped_by_parentmost_recent_parentget_finished_spanszSpans: i@B )rB   rT   OTEL_EXPORTERhasattrrX   printparenttrace_idr/   r   
start_time)	rT   otel_exporterrecorded_spansrW   most_recent_start_timerV   spanparent_trace_id
span_namess	            r   get_otel_spansre      s    @$')"&
 	
 *77M}23&99;	)^$$ ;;""kk22O&==;='8#O4;;DIIF !77%4")-&  )77$))7J7 #:0  8s   AC! AC!-C!CC!c                     	 t        d      } | y t        j                  j                  |       ry t	        j
                  |       }t        |t              sy |j                  dd       }|j                  dd       }|du rcdd l	}ddl
m}m}m} |j                  |j                         |j                  |j                          |j                  |j                         |du rddd l	}ddl
m}m}m} |j                  |j                          |j                  |j                           |j                  |j                          y |du r|du rt        j"                  j                  d	d
      }||j%                         dk(  rFdd l	}ddl
m}m} |j                  |j                          |j                  |j                         y |j%                         dk(  rFdd l	}ddl
m}m} |j                  |j                           |j                  |j                          y y y y y # t&        $ r+}	dd l	}|j)                  dt+        |	              Y d }	~	y d }	~	ww xY w)NWORKER_CONFIGr.   detailed_debugTr   )verbose_loggerr   verbose_router_logger)levelFLITELLM_LOG INFO)r   rj   DEBUGz Failed to init verbose loggers: )r   ospathisfilejsonloads
isinstancer   getlogginglitellm._loggingri   r   rj   setLevelrn   ro   environupper	Exceptionwarningstr)
worker_config	_settingsr.   rh   rw   ri   r   rj   litellm_log_settinges
             r   init_verbose_loggersr      s6   QE&7 77>>-(JJ}-	)T*gt,"'7>D=  ##',,#7!**ll +  * ))=T!  ##'--#8!**mm +  * ))mm e^% 7"$**.."C".&,,.&8" *22%ll 3  2(11%ll )..0G;"
 *22%mm 3  2(11%mm <# / !8^D  E:3q6(CDDEs6   H) H) %H) C2H) 	BH) AH) )	I2!II)r   rs   rp   r+   collectionsr   fastapir   litellmr   rx   r   routerrv   r   rz   lowerobjgraphr[   show_growthshow_most_common_typesget_leaking_objectsrootsImportErrorstartr8   rI   rR   re   r        r   <module>r      s     	    " 1	 "#  $ F ::>>#W-335?
!"%&'''),,,.#$'''6 KbZZ5Z9/ :/ (EB! C!H .%H I> MU3' 4'VREQ  
N
 	

s   5A"E E