
    &`i                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dlm	Z	m
Z
 d dlmc mZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ  ej        e          Ze                    ej                   dZd	Z  G d
 de          Z!e!j"        fe!j"        fe!j#        e!j"        fe!j#        e!j"        fe!j#        e!j"        fdZ$ G d de          Z%dS )    N)Enum)quote)RequestResponse)DEFAULT_PROMETHEUS_HEADERSDEFAULT_PROMETHEUS_HOSTPROMETHEUS_HEADERS_ENV_VARPROMETHEUS_HOST_ENV_VARPrometheusQueryErrorparse_prom_headers)SubprocessModule)SubprocessRouteTable1h1sc                   0    e Zd ZdZdZdde de dz   fZdS )PrometheusQueryzJEnum to store types of Prometheus queries for a given metric and grouping.)valuez#sum({}{{SessionName='{}'}}) by ({})maxz2max_over_time(sum({}{{SessionName='{}'}}) by ({})[:z])N)__name__
__module____qualname____doc__VALUEMAX_TIME_WINDOWSAMPLE_RATEMAX     x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/dashboard/modules/data/data_head.pyr   r       s?        TT<E<
.
.{
.
.
.	/CCCr   r   )ray_data_output_rowsray_data_spilled_bytesray_data_current_bytesray_data_cpu_usage_coresray_data_gpu_usage_coresc                        e Zd Z fdZ ej        d           ej                    dede	fd                        Z
d Z xZS )DataHeadc                     t                      j        |i | t          j                            t
          t                    | _        t          t          j                            t          t                              | _        d S )N)super__init__osenvirongetr
   r   prometheus_hostr   r	   r   prometheus_headers)selfargskwargs	__class__s      r    r*   zDataHead.__init__5   sp    $)&)))!z~~#%< 
  
 #5JNN** #
 #
r   z/api/data/datasets/{job_id}reqreturnc           	      B  K   |j         d         }	 ddlm}  |            }|j                            |           d {V }|D ]h}t
                                          D ]L\  }}d |D             ||         |<   ||         d         D ]#}	d |D             ||         d         |	         |<   $Mi	 t
                                          D ]/\  }}|D ]%}
|
j        \  }}|                     |	                    || j
        d                     d {V }|d         d	         D ]3}|d
         d         |d         d         }}||v r|||         |         |<   4|                     |	                    || j
        d                     d {V }|d         d	         D ]]}|d
         d         |d
         d         |d         d         }}	}||v r-|	||         d         v r|||         d         |	         |         |<   ^'1n.# t          j        j        $ r t          j        d           Y nw xY w|D ]G}t!          t#          d ||         d                                                             ||         d<   Ht!          t#          d |                                                    }t%          |d d          }t'          t)          j        d|i          d          S # t,          $ r<}t          j        d           t'          dt/          |                    cY d }~S d }~ww xY w)Njob_idr   )get_or_create_stats_actorc                 *    i | ]}|j         d          d S r   r   .0querys     r    
<dictcomp>z)DataHead.get_datasets.<locals>.<dictcomp>N   s     0X0X0XuQ0X0X0Xr   	operatorsc                 *    i | ]}|j         d          d S r:   r;   r<   s     r    r?   z)DataHead.get_datasets.<locals>.<dictcomp>P   s3     L L L27EKNAL L Lr   datasetdataresultmetricr      zdataset, operatoroperatorzWException occurred while querying Prometheus. The Prometheus server may not be running.c                 &    d| d         i| d         S )NrG   r   rF   r   items    r    <lambda>z'DataHead.get_datasets.<locals>.<lambda>   s    j$q'%ET!W%E r   c                 &    d| d         i| d         S )NrB   r   rF   r   rI   s    r    rK   z'DataHead.get_datasets.<locals>.<lambda>   s    )T!W!@Q!@ r   c                     | d         S )N
start_timer   )xs    r    rK   z'DataHead.get_datasets.<locals>.<lambda>   s
    ao r   T)keyreversedatasetszapplication/json)textcontent_typez*Exception occurred while getting datasets.i  )statusrS   )
match_inforay.data._internal.statsr8   get_datasetsremoteDATASET_METRICSitemsr   _query_prometheusformatsession_nameaiohttpclient_exceptionsClientConnectorErrorlogging	exceptionlistmapsortedr   jsondumps	Exceptionstr)r0   r4   r7   r8   _stats_actorrR   rB   rE   queriesrG   r>   
query_name
prom_querydataset_resultresr   operator_resultes                     r    rX   zDataHead.get_datasetsA   sd      )O	JJJJJJ4466L)6==fEEEEEEEEH#  '6'<'<'>'>  OFG0X0XPW0X0X0XHW%f-$,W$5k$B  L L;BL L L)+6x@HH*'6'<'<'>'> !* !*OFG!(  *  *16.
J/3/E/E&--fd6GSS0 0 * * * * * * $2&#9(#C N NC-0]9-Es7|TUUG&(22HM 1& 9* E 150F0F&-- &(9;N 1 1 + + + + + +
 $36#:8#D * *C #Hi 8 #Hj 9 #GQ 05XG !(8 3 3$,0A+0N$N$N %* !) 1+ >x H P$.!"*# *!*D ,A    !@     $  15EE )+6<<>> 2 2!+.. @@(..BRBRSS H h,E,EtTTTHZX 677/     	 	 	JKKKVV        	sD   BK -E
G8 7K 8(H# K "H##B4K 
L"1LLLc                 |  K   | j                             | j         dt          |           | j                  4 d {V 	 }|j        dk    r.|                                 d {V }|cd d d           d {V  S |                                 d {V }t          |j        |          # 1 d {V swxY w Y   d S )Nz/api/v1/query?query=)headers   )	http_sessionr-   r.   r   r/   rU   rg   rS   r   )r0   r>   resp	prom_datamessages        r    r\   zDataHead._query_prometheus   si     $((#GGuGG+ ) 
 
 		= 		= 		= 		= 		= 		= 		= 		= {c!!"&))++------	 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= !IIKK''''''G&t{G<<<		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		= 		=s   'B+</B++
B58B5)r   r   r   r*   routesr-   optional_utilsinit_ray_and_catch_exceptionsr   r   rX   r\   __classcell__)r3   s   @r    r'   r'   4   s        

 

 

 

 

 VZ-..1^133Rg R( R R R 43 /.Rh
= 
= 
= 
= 
= 
= 
=r   r'   )&rg   rb   r+   enumr   urllib.parser   r_   aiohttp.webr   r   ray.dashboard.optional_utils	dashboardr{   *ray.dashboard.modules.metrics.metrics_headr   r   r	   r
   r   r   !ray.dashboard.subprocesses.moduler   !ray.dashboard.subprocesses.routesr   rz   	getLoggerr   loggersetLevelINFOr   r   r   r   r   rZ   r'   r   r   r    <module>r      s     				              ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 5                ? > > > > > L L L L L L		8	$	$    
     d    -02.24.4o6IJ!0!68K L!0!68K L m= m= m= m= m= m= m= m= m= m=r   