
    -`i2                         d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ ed	         Zee G d
 d                                  ZdS )    )cached_property)AnyLiteralcastparse)Fieldfield_validatormodel_validator)	dataclass)version)config)	safe_hash)modelworkerallc                   v   e Zd ZU dZdZedz  ed<   	 edefd            Z	dZ
edz  ed<   	 dZee         dz  ed<   	 dZeed	<   	  ed
dd          Zeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 edefd            Zedefd            ZdefdZ ed          ededz  dedz  fd                        Z ed          ededz  dedz  fd                        Z ed          edee         dz  dee         dz  fd                        Z ed          d             Z dS )ObservabilityConfigz6Configuration for observability - metrics and tracing.Nshow_hidden_metrics_for_versionreturnc                 F    | j         dS t          j        | j                   S )z,Check if the hidden metrics should be shown.NF)r   r   _prev_minor_version_wasselfs    m/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/config/observability.pyshow_hidden_metricsz'ObservabilityConfig.show_hidden_metrics   s&     /75.t/STTT    otlp_traces_endpointcollect_detailed_tracesFkv_cache_metricsg{Gz?r      )defaultgtlekv_cache_metrics_samplecudagraph_metricsenable_layerwise_nvtx_tracingenable_mfu_metricsenable_mm_processor_stats enable_logging_iteration_detailsc                 8    | j         duod| j         v pd| j         v S )z6Whether to collect model forward time for the request.Nr   r   r   r   s    r   collect_model_forward_timez.ObservabilityConfig.collect_model_forward_timeQ   s4     +47 
t33 544	
r   c                 8    | j         duod| j         v pd| j         v S )z6Whether to collect model execute time for the request.Nr   r   r,   r   s    r   collect_model_execute_timez.ObservabilityConfig.collect_model_execute_timeY   s4     +47 
44 544	
r   c                     g }t          t          |                                          d                                          }|S )a  
        WARNING: Whenever a new field is added to this config,
        ensure that it is included in the factors list if
        it affects the computation graph.

        Provide a hash that uniquely identifies all the configs
        that affect the structure of the computation
        graph from input ids/embeddings to the final hidden states,
        excluding anything before input ids/embeddings and after
        the final hidden states.
        F)usedforsecurity)r   strencode	hexdigest)r   factorshash_strs      r   compute_hashz ObservabilityConfig.compute_hasha   s>      S\\0022EJJJTTVVr   valuec                 (    |t          |           |S )Nr   clsr8   s     r   )_validate_show_hidden_metrics_for_versionz=ObservabilityConfig._validate_show_hidden_metrics_for_versions   s     %LLLr   c                 R    |$ddl m}m}  |            st          d|           |S )Nr   )is_otel_availableotel_import_error_tracebackzOpenTelemetry is not available. Unable to configure 'otlp_traces_endpoint'. Ensure OpenTelemetry packages are installed. Original error:
)vllm.tracingr>   r?   
ValueError)r;   r8   r>   r?   s       r   _validate_otlp_traces_endpointz2ObservabilityConfig._validate_otlp_traces_endpoint{   sa     SSSSSSSS$$&&  Q3NQ Q  
 r   c                     |Vt          |          dk    rCd|d         v r9t          t          t                   |d                             d                    }|S )zoHandle the legacy case where users might provide a comma-separated
        string instead of a list of strings.Nr!   ,r   )lenr   listDetailedTraceModulessplitr:   s     r   !_validate_collect_detailed_tracesz5ObservabilityConfig._validate_collect_detailed_traces   sN     UqSE!H__23U1X^^C5H5HIIEr   after)modec                 @    | j         r| j        st          d          | S )NzDcollect_detailed_traces requires `--otlp-traces-endpoint` to be set.)r   r   rA   r   s    r   _validate_tracing_configz,ObservabilityConfig._validate_tracing_config   s3    ' 	0I 	V   r   )!__name__
__module____qualname____doc__r   r2   __annotations__r   boolr   r   r   rF   rG   r    r	   r%   floatr&   r'   r(   r)   r*   r-   r/   r7   r
   classmethodr<   rB   rI   r   rM    r   r   r   r      s         A@26#S4Z666 UT U U U _U (,#*+++@AET"67$>EEE #d"""M &+U4A!%D%D%DUDDDU#t###R +0!4///R  %$$$7&+t+++ .3$d2223
 
D 
 
 
 _
 
D 
 
 
 _
c    $ _677cDj SSWZ    [ 87 _+,,
3: 
#* 
 
 
 [ -,
 _.//-.5	"	#d	*   [ 0/ _'"""  #"  r   r   N)	functoolsr   typingr   r   r   packaging.versionr   pydanticr	   r
   r   pydantic.dataclassesr   vllmr   vllm.config.utilsr   vllm.utils.hashingr   rG   r   rV   r   r   <module>r_      s   & % % % % % % % % % % % % % % % # # # # # # < < < < < < < < < < * * * * * *       $ $ $ $ $ $ ( ( ( ( ( (78  
F F F F F F F  F F Fr   