
    Zj+                        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
 d dlmZmZmZ d dlmZmZ d dlmZ  G d	 d
e          Z G d d          Z G d d          ZddZd dZd!dZd"dZdS )#    )annotations)Callable)Protocol)metrics)Decision)OTEL_SPAN_PARENT_ORIGINOTEL_SPAN_SAMPLING_RESULTOtelSpanSamplingResultValues)create_otel_sdk_span_livecreate_otel_sdk_span_started)SpanContextc                      e Zd Zd	dZdS )
TracerMetricsTparent_span_contextSpanContext | Nonesampling_decisionr   returnCallable[[], None]c                    d S N selfr   r   s      d/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/opentelemetry/sdk/trace/_tracer_metrics.py
start_spanzTracerMetricsT.start_span   s	     !S    Nr   r   r   r   r   r   __name__
__module____qualname__r   r   r   r   r   r      s(        ! ! ! ! ! !r   r   c                      e Zd Zd	dZdS )
NoOpTracerMetricsr   r   r   r   r   r   c                    t           S r   )noopr   s      r   r   zNoOpTracerMetrics.start_span!   s	    
 r   Nr   r   r   r   r   r#   r#       s(             r   r#   c                      e Zd ZddZddZdS )TracerMetricsmeter_providermetrics_api.MeterProviderr   Nonec                    |                     d          }t          |          | _        t          |          | _        d S )Nzopentelemetry-sdk)	get_meterr   _started_spansr   _live_spans)r   r(   meters      r   __init__zTracerMetrics.__init__*   s<    (()<==:5AA4U;;r   r   r   r   r   r   c                     t          |          } j                            dt          t	          |          t
          |i           |                                st          S t
          |i j                            d           d fd}|S )N   r   r*   c                 >    j                             d            d S )N)r.   add)live_span_attrsr   s   r   end_spanz*TracerMetrics.start_span.<locals>.end_spanF   s"      _55555r   r   r*   )	sampling_resultr-   r5   r   parent_originr	   is_recordingr%   r.   )r   r   r   sampling_result_valuer7   r6   s   `    @r   r   zTracerMetrics.start_span0   s    
 !00A B B'7J)K)K)+@	
 	
 	
 !--// 	K &'<
 	Q000	6 	6 	6 	6 	6 	6 	6 r   N)r(   r)   r   r*   r   )r   r    r!   r0   r   r   r   r   r'   r'   )   s<        < < < <     r   r'   r(   r)   enabledboolr   c                @    |st                      S t          |           S r   )r#   r'   )r(   r=   s     r   create_tracer_metricsr@   L   s&      # """(((r   r*   c                     d S r   r   r   r   r   r%   r%   V   s    Dr   span_ctxr   strc                     | dS | j         rdS dS )Nnoneremotelocal)	is_remote)rB   s    r   r:   r:   Z   s"    v x7r   decisionr   c                    | 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)rI   s    r   r9   r9   b   sB    8---+=CC8'''+7==',22r   N)r(   r)   r=   r>   r   r   r8   )rB   r   r   rC   )rI   r   r   rC   )
__future__r   collections.abcr   typingr   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:   r9   r   r   r   <module>rX      s   # " " " " " $ $ $ $ $ $       0 0 0 0 0 0 5 5 5 5 5 5         
        1 0 0 0 0 0! ! ! ! !X ! ! !                      F) ) ) )	 	 	 	   3 3 3 3 3 3r   