
    &`i!                         U d dl mZ d dlmZmZmZ d dlmZ dZdZ	d d dZ
eeeee         gef         f         ed	<   d
ai Zeeee         f         ed<    G d dee          Zd
S )    )Enum)CallableDictList)RAY_METRIC_CARDINALITY_LEVELWorkerIdNamec                      t          |           S Nsumvaluess    }/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/_private/telemetry/metric_cardinality.py<lambda>r      s    CKK     c                      t          |           S r   r   r   s    r   r   r      s    S[[ r   tasksactors'HIGH_CARDINALITY_METRICS_TO_AGGREGATIONN_HIGH_CARDINALITY_LABELSc                       e Zd ZdZdZdZdZedd            Zede	de
ee         gef         fd            Zedee	         fd	            Zede	dee	         fd
            ZdS )MetricCardinalitya  Cardinality level configuration for all Ray metrics (ray_tasks, ray_actors,
    etc.). This configurtion is used to determine whether to globally drop high
    cardinality labels. This is important for high scale clusters that might consist
    thousands of workers, millions of tasks.

    - LEGACY: Keep all labels. This is the default behavior.
    - RECOMMENDED: Drop high cardinality labels. The set of high cardinality labels
    are determined internally by Ray and not exposed to users. Currently, this includes
    the following labels: WorkerId
    - LOW: Same as RECOMMENDED, but also drop the Name label for tasks and actors.
    legacyrecommendedlowreturnc                      t           t           S 	 t          t          j                              a n# t          $ r t          j        a Y nw xY wt           S r   )_CARDINALITY_LEVELr   r   lower
ValueErrorLEGACY r   r   get_cardinality_levelz'MetricCardinality.get_cardinality_level$   s`     )%%	:!23O3U3W3W!X!X 	: 	: 	:!2!9	:!!s    1 A
	A
metric_namec                 4    | t           v rt           |          S d S )Nc                     | d         S )Nr   r$   r   s    r   r   z<MetricCardinality.get_aggregation_function.<locals>.<lambda>3   s
    fQi r   )r   )r&   s    r   get_aggregation_functionz*MetricCardinality.get_aggregation_function/   s"    AAA:;GG'''r   c                  N    t          t                                                    S r   )listr   keysr$   r   r   get_high_cardinality_metricsz.MetricCardinality.get_high_cardinality_metrics5   s    ;@@BBCCCr   c                 z   | t           v rt           |          S t                                          }|t          j        k    s| t                                          vrg t           | <   g S t
          gt           | <   |t          j        k    r)| dv r%t           |                              t                     t           |          S )z@
        Get the high cardinality labels of the metric.
        r   )	r   r   r%   r#   r-   WORKER_ID_TAG_KEYLOWappendTASK_OR_ACTOR_NAME_TAG_KEY)r&   cardinality_levels     r   #get_high_cardinality_labels_to_dropz5MetricCardinality.get_high_cardinality_labels_to_drop9   s    
 222+K88-CCEE!2!999"3"P"P"R"RRR46$[1I1B0C - 1 555+ J
 ;
 ;
 %[1889STTT'44r   N)r   r   )__name__
__module____qualname____doc__r#   RECOMMENDEDr0   staticmethodr%   strr   r   floatr)   r-   r4   r$   r   r   r   r      s        
 
 FK
C" " " \" (c (hU}e?S6T ( ( ( \(
 D$s) D D D \D 5 5c 5 5 5 \5 5 5r   r   )enumr   typingr   r   r   ray._private.ray_constantsr   r/   r2   r   r;   r<   __annotations__r    r   r   r$   r   r   <module>rA      s           ' ' ' ' ' ' ' ' ' ' C C C C C C  # ''((V V 'c8T%[M5<P3Q.Q)R   
  13 $sDI~. 3 3 3<5 <5 <5 <5 <5T <5 <5 <5 <5 <5r   