o
    ^۷i
                     @  s   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mZ d dlmZ G dd	 d	ZdddZdddZdddZdS )    )annotations)Callable)metrics)Decision)OTEL_SPAN_PARENT_ORIGINOTEL_SPAN_SAMPLING_RESULTOtelSpanSamplingResultValues)create_otel_sdk_span_livecreate_otel_sdk_span_started)SpanContextc                   @  s    e Zd ZdddZdddZdS )TracerMetricsmeter_providermetrics_api.MeterProviderreturnNonec                 C  s"   | d}t|| _t|| _d S )Nzopentelemetry-sdk)	get_meterr
   _started_spansr	   _live_spans)selfr   meter r   ]/home/ubuntu/vllm_env/lib/python3.10/site-packages/opentelemetry/sdk/trace/_tracer_metrics.py__init__"   s   

zTracerMetrics.__init__parent_span_contextSpanContext | Nonesampling_decisionr   Callable[[], None]c                   sX   t |}jdtt|t|i | stS t|i jd  d fdd}|S )N   r   r   c                     s   j d  d S )N)r   addr   live_span_attrsr   r   r   end_span>   s   z*TracerMetrics.start_span.<locals>.end_spanr   r   )	sampling_resultr   r   r   parent_originr   is_recordingnoopr   )r   r   r   sampling_result_valuer"   r   r    r   
start_span(   s   zTracerMetrics.start_spanN)r   r   r   r   )r   r   r   r   r   r   )__name__
__module____qualname__r   r)   r   r   r   r   r   !   s    
r   r   r   c                   C  s   d S Nr   r   r   r   r   r'   D   s   r'   span_ctxr   strc                 C  s   | d u rdS | j rdS dS )Nnoneremotelocal)	is_remote)r.   r   r   r   r%   H   s
   r%   decisionr   c                 C  s,   | t jkr	tjjS | t jkrtjjS tjjS r-   )r   RECORD_AND_SAMPLEr   valueRECORD_ONLYDROP)r4   r   r   r   r$   P   s
   

r$   Nr#   )r.   r   r   r/   )r4   r   r   r/   )
__future__r   collections.abcr   opentelemetryr   metrics_api opentelemetry.sdk.trace.samplingr   <opentelemetry.semconv._incubating.attributes.otel_attributesr   r   r   6opentelemetry.semconv._incubating.metrics.otel_metricsr	   r
   opentelemetry.trace.spanr   r   r'   r%   r$   r   r   r   r   <module>   s   
#
