
    -`i                     @   U d dl Z d dlmZ d dlmZ d dlmZ ddgZ ee          Z	dZ
dZedz  ed<   	 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mZ d dlmZ dZ
nR# e$ rJ d dlZ ej                    Z G d d          Z G d d          Z G d d          Z G d d          ZY nw xY wde fdZ!dedededz  fdZ"d Z#deeef         dz  dedz  fdZ$deeef         deeef         fd Z% G d! d"          Z&deeef         de fd#Z'ed%d$            Z(dS )&    N)Mapping)init_logger)run_oncetraceparent
tracestateFotel_import_error_traceback)Context)"OTEL_EXPORTER_OTLP_TRACES_PROTOCOL)TracerProvider)BatchSpanProcessor)SpanKindTracerset_tracer_provider)TraceContextTextMapPropagatorTc                       e Zd ZdS )r	   N__name__
__module____qualname__     `/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/tracing.pyr	   r	   &           r   r	   c                       e Zd ZdS )BaseSpanAttributesNr   r   r   r   r   r   )   r   r   r   c                       e Zd ZdS )r   Nr   r   r   r   r   r   ,   r   r   r   c                       e Zd ZdS )r   Nr   r   r   r   r   r   /   r   r   r   returnc                      t           S N)_is_otel_importedr   r   r   is_otel_availabler"   3   s    r   instrumenting_module_nameotlp_traces_endpointc                    t                      st          dt                     t                      }t	          |          }|                    t          |                     t          |           |                    |           }|S )Nz|OpenTelemetry is not available. Unable to initialize a tracer. Ensure OpenTelemetry packages are installed. Original error:
)	r"   
ValueErrorr   r   get_span_exporteradd_span_processorr   r   
get_tracer)r#   r$   trace_providerspan_exportertracers        r   init_tracerr-   7   s      
> ;> >
 
 	

 $%%N%&:;;M%%&8&G&GHHH'''&&'@AAFMr   c                     t           j                            t          d          }|dk    rddlm} n |dk    rddlm} nt          d| d           ||           S )Ngrpcr   )OTLPSpanExporterzhttp/protobufzUnsupported OTLP protocol 'z' is configured)endpoint)osenvirongetr
   5opentelemetry.exporter.otlp.proto.grpc.trace_exporterr0   5opentelemetry.exporter.otlp.proto.http.trace_exporterr&   )r1   protocolr0   s      r   r'   r'   J   s    z~~@&IIH6	
 	
 	
 	
 	
 	
 	
 
_	$	$	
 	
 	
 	
 	
 	
 	
 PxPPPQQQX....r   headersc                 l    t                      r%| pi } t                                          |           S d S r    )r"   r   extractr8   s    r   extract_trace_contextr<   Z   s8     -R,..66w???tr   c                 *      fdt           D             S )Nc                 *    i | ]}|v ||         S r   r   .0hr8   s     r   
<dictcomp>z)extract_trace_headers.<locals>.<dictcomp>c   s$    AAAaALLAwqzLLLr   )TRACE_HEADERSr;   s   `r   extract_trace_headersrD   b   s    AAAA=AAAAr   c                   V    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdS )SpanAttributeszgen_ai.usage.completion_tokenszgen_ai.usage.prompt_tokenszgen_ai.request.max_tokenszgen_ai.request.top_pzgen_ai.request.temperaturezgen_ai.response.modelzgen_ai.request.idzgen_ai.request.nzgen_ai.usage.num_sequenceszgen_ai.latency.time_in_queuez"gen_ai.latency.time_to_first_tokenzgen_ai.latency.e2ez gen_ai.latency.time_in_schedulerz$gen_ai.latency.time_in_model_forwardz$gen_ai.latency.time_in_model_executez$gen_ai.latency.time_in_model_prefillz#gen_ai.latency.time_in_model_decodez&gen_ai.latency.time_in_model_inferenceN)r   r   r   GEN_AI_USAGE_COMPLETION_TOKENSGEN_AI_USAGE_PROMPT_TOKENSGEN_AI_REQUEST_MAX_TOKENSGEN_AI_REQUEST_TOP_PGEN_AI_REQUEST_TEMPERATUREGEN_AI_RESPONSE_MODELGEN_AI_REQUEST_IDGEN_AI_REQUEST_NGEN_AI_USAGE_NUM_SEQUENCESGEN_AI_LATENCY_TIME_IN_QUEUE"GEN_AI_LATENCY_TIME_TO_FIRST_TOKENGEN_AI_LATENCY_E2E GEN_AI_LATENCY_TIME_IN_SCHEDULER$GEN_AI_LATENCY_TIME_IN_MODEL_FORWARD$GEN_AI_LATENCY_TIME_IN_MODEL_EXECUTE$GEN_AI_LATENCY_TIME_IN_MODEL_PREFILL#GEN_AI_LATENCY_TIME_IN_MODEL_DECODE&GEN_AI_LATENCY_TIME_IN_MODEL_INFERENCEr   r   r   rF   rF   f   s         &F"!= ;1!=3+)!=#A )M&-'I$+Q( ,R(+Q(*O'-U***r   rF   c                 D     t           fdt          D                       S )Nc              3       K   | ]}|v V  	d S r    r   r?   s     r   	<genexpr>z)contains_trace_headers.<locals>.<genexpr>   s'      33qG|333333r   )anyrC   r;   s   `r   contains_trace_headersr]      s&    3333]333333r   c                  :    t                               d           d S )Nz=Received a request with trace context but tracing is disabled)loggerwarningr   r   r   log_tracing_disabled_warningra      s    
NNRSSSSSr   )r   N))r2   collections.abcr   vllm.loggerr   vllm.utils.func_utilsr   rC   r   r_   r!   r   str__annotations__opentelemetry.context.contextr	   'opentelemetry.sdk.environment_variablesr
   opentelemetry.sdk.tracer   opentelemetry.sdk.trace.exportr   opentelemetry.tracer   r   r   ,opentelemetry.trace.propagation.tracecontextr   ImportError	traceback
format_excr   boolr"   r-   r'   r<   rD   rF   r]   ra   r   r   r   <module>rq      sU   
				 # # # # # # # # # # # # * * * * * *-	X		 *. S4Z . . . 555555      766666AAAAAAIIIIIIIIII         
 "6)"6"8"8                              %,4    ":=d]   &/ / / 738#4t#; $    B738#4 Bc9J B B B BV V V V V V V V64GCH$5 4$ 4 4 4 4 
T T T 
T T Ts   *A AB.-B.