o
    )i                     @   s  U 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gZ	ee
ZdZdZee ed	< 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mZ d dlmZ dZW n- ey   d dlZe  ZG dd dZG dd dZ!G dd dZG dd dZY nw de"fddZ#dededee fddZ$d d! Z%d"eeeef  dee fd#d$Z&d"eeef deeef fd%d&Z'G d'd( d(Z(d"eeef de"fd)d*Z)ed-d+d,Z*dS ).    N)Mapping)Optional)init_logger)run_onceZtraceparentZ
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__ r   r   X/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/vllm/tracing.pyr   #       r   c                   @   r   )BaseSpanAttributesNr   r   r   r   r   r   &   r   r   c                   @   r   )r   Nr   r   r   r   r   r   )   r   r   c                   @   r   )r   Nr   r   r   r   r   r   ,   r   r   returnc                   C   s   t S N)_is_otel_importedr   r   r   r   is_otel_available0   s   r   instrumenting_module_nameotlp_traces_endpointc                 C   sF   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_exporterZadd_span_processorr
   r   Z
get_tracer)r   r   Ztrace_providerZspan_exporterZtracerr   r   r   init_tracer4   s   
r    c                 C   sT   t jtd}|dkrddlm} n|dkrddlm} ntd| d|| dS )NZgrpcr   )OTLPSpanExporterzhttp/protobufzUnsupported OTLP protocol 'z' is configured)endpoint)osenvirongetr   Z5opentelemetry.exporter.otlp.proto.grpc.trace_exporterr!   Z5opentelemetry.exporter.otlp.proto.http.trace_exporterr   )r"   protocolr!   r   r   r   r   E   s   

r   headersc                 C   s   t  r| pi } t | S d S r   )r   r   extractr'   r   r   r   extract_trace_contextT   s   r*   c                    s    fddt D S )Nc                    s   i | ]}| v r| | qS r   r   .0hr)   r   r   
<dictcomp>_   s    z)extract_trace_headers.<locals>.<dictcomp>)TRACE_HEADERSr)   r   r)   r   extract_trace_headers]   s   r0   c                   @   sH   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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_executeN)r   r   r   Z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_EXECUTEr   r   r   r   r1   b   s$    r1   c                    s   t  fddtD S )Nc                 3   s    | ]}| v V  qd S r   r   r+   r)   r   r   	<genexpr>}   s    z)contains_trace_headers.<locals>.<genexpr>)anyr/   r)   r   r)   r   contains_trace_headers|   s   r4   c                   C   s   t d d S )Nz=Received a request with trace context but tracing is disabled)loggerwarningr   r   r   r   log_tracing_disabled_warning   s   r7   )r   N)+r#   collections.abcr   typingr   Zvllm.loggerr   Z
vllm.utilsr   r/   r   r5   r   r   str__annotations__Zopentelemetry.context.contextr   Z'opentelemetry.sdk.environment_variablesr   Zopentelemetry.sdk.tracer	   Zopentelemetry.sdk.trace.exportr
   Zopentelemetry.tracer   r   r   Z,opentelemetry.trace.propagation.tracecontextr   ImportError	traceback
format_excr   boolr   r    r   r*   r0   r1   r4   r7   r   r   r   r   <module>   sT   


"	