
    yj                        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 d dlmZmZ ddlmZ  ej        e          Zdd
Zd Zd Zedk    r e             e                    d            e j         ej                               	 ej        j        r
 e             e                    d            e j         e                       nC# e$ r e                    d           Y n'e$ r Ze                     de           Y dZ[ndZ[ww xY we                    d           dS # e                    d           w xY wdS )    N)start_http_server)settings)engine)validate_embedding_schema)initialize_telemetry_asyncshutdown_telemetry   )mainreturnc                  X    t          d           t                              d           dS )z6Start the Prometheus metrics HTTP server on port 9090.i#  z.Prometheus metrics server started on port 9090N)r   loggerinfo     </DATA/AppData/hermes/projects/honcho/src/deriver/__main__.pystart_metrics_serverr      s)    d
KK@AAAAAr   c                     t          j        dt          j                                                  } t
          j        t
          j        t
          j        t
          j	        t
          j
        t
          j        d}|                    | t
          j	                  }t          j        |d           t          j        j        sdt          j        d          _        t          j        d                              t
          j                   t          j        d                              t
          j                   t          j        d	                              t
          j                   d
S )z4
    Configure logging for the deriver process.
    	LOG_LEVEL)CRITICALERRORWARNINGINFODEBUGNOTSETz4%(asctime)s - %(name)s - %(levelname)s - %(message)s)levelformatTzsqlalchemy.engine.Enginehttpcorehttpxzopenai._base_clientN)osgetenvr   r   upperloggingr   r   r   r   r   r   getbasicConfigDB	SQL_DEBUG	getLoggerdisabledsetLevel)log_level_str
log_levels	log_levels      r   setup_loggingr-      s   
 Ik8+=>>DDFFM $?. J }gl;;I E    ;  FAE455>j!!**7?;;;g''888+,,55goFFFFFr   c                     K   t                       d{V  	 t          t                     d{V  t                       d{V  t	                       d{V  dS # t	                       d{V  w xY w)z;Run the deriver with proper telemetry lifecycle management.N)r   r   r   r
   r   r   r   r   run_deriverr/   9   s       %
&
&&&&&&&&# (/////////ff !""""""""""" """"""""""s   .A A2__main__z Starting deriver queue processorzRunning main loopz(Shutdown initiated via KeyboardInterruptzError in main process: %szDeriver process exiting)r   N)!asyncior"   r   uvloopprometheus_clientr   
src.configr   src.dbr   src.startupr   src.telemetryr   r   queue_managerr
   r'   __name__r   r   r-   r/   r   set_event_loop_policyEventLoopPolicyMETRICSENABLEDrunKeyboardInterrupt	Exceptione	exceptionr   r   r   <module>rC      s0     				  / / / / / /             1 1 1 1 1 1 H H H H H H H H      		8	$	$B B B BG G GB# # #  zMOOO
KK2333!G!"8&"8":":;;;/# 	#  """'(((KKMM"""" @ @ @>????? 9 9 94a888888889 	-.....-....% s=   AC D2 D2D2 4D8DD2 DD2 2E	