o
    i
                     @   s   d dl mZ d dlmZ d dlmZ eeZddgZG dd dZ	G dd	 d	Z
d
eeef defddZd
eeef deeef fddZedddZdS )    )Mapping)init_logger)run_oncetraceparent
tracestatec                   @   sX   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ZdS )SpanAttributesz
    Standard attributes for spans.

    These are largely based on OpenTelemetry Semantic Conventions but are defined
    here as constants so they can be used by any backend or logger.
    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_executez$gen_ai.latency.time_in_model_prefillz#gen_ai.latency.time_in_model_decodez&gen_ai.latency.time_in_model_inferenceN)__name__
__module____qualname____doc__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_INFERENCE r   r   H/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/tracing/utils.pyr      s(    r   c                   @   s    e Zd ZdZdZdZdZdZdS )LoadingSpanAttributesz=Custom attributes for code-level tracing (file, line number).zcode.namespacezcode.functionzcode.filepathzcode.linenoN)r   r	   r
   r   CODE_NAMESPACECODE_FUNCTIONCODE_FILEPATHCODE_LINENOr   r   r   r   r    0   s    r    headersreturnc                    s   t  fddtD S )z@Check if the provided headers dictionary contains trace context.c                 3   s    | ]}| v V  qd S )Nr   .0hr%   r   r   	<genexpr>;   s    z)contains_trace_headers.<locals>.<genexpr>)anyTRACE_HEADERSr*   r   r*   r   contains_trace_headers9   s   r.   c                    s    fddt D S )z
    Extract only trace-related headers from a larger header dictionary.
    Useful for logging or passing context to a non-OTel client.
    c                    s   i | ]}| v r| | qS r   r   r'   r*   r   r   
<dictcomp>C   s    z)extract_trace_headers.<locals>.<dictcomp>)r-   r*   r   r*   r   extract_trace_headers>   s   r0   Nc                   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_warningF   s   r3   )r&   N)collections.abcr   vllm.loggerr   vllm.utils.func_utilsr   r   r1   r-   r   r    strboolr.   r0   r3   r   r   r   r   <module>   s   !	"