o
    `۷i@@                     @   s(  d dl mZmZ d dlmZ d dlmZmZmZm	Z	 d dl
mZ eeG dd dZddd	d	d
ddZdddddddZddddddddZeG dd deZeeG dd dZddi g ddddddiddd dddd d!d"d#d$id%d&id'did(d)d*d+ddd,d-ddd.d/
d0g d1dd2d3d	dd4ddd5d6d7d4dd4d4dd5gd8
Zi d9i d:dd;d<d=dd>dd?dd@i g ddAdBdd d dCdDd<dEd dFddGdHdIddddddddddJddddKdLddMddNd4dOdPdii dQddRdSdTdUdVddWdXdYdZd[dd\d dd]d^d_dd`dZdaddbd dd]gdcd<ddddeddfg dgg dhd4dig djd4dkd1dldd dmdndodpd4dqd4dg drd2d3d	dd4ddd5d6d7d4dd4d4dd5gdd4dsdtZddudgig d dQdvd4dwdxdydwdzd{dwgd|d7d}g dd~ddd(d(dgd	ddi d(ddSg d4d4d1dd2dd	dd4ddd5d6d7d4dd4d4dd5gdZddudig dQdd4dwgd|d7dg dd<dgd	ddddddiddSg d1dd2dd	dd4ddd5d6d7d4dd4d4dd5gd	Zddi g ddHg ddddgdddgd	ddi ddSg d4d4d1dd2d3d	dd4ddd5d6d7d4dd4d4dd5gdZi d9i d;d<d=dd>dd?dd@i g ddAdBdd d dCdFddGdHdIddddddddddJddddKdLddMdd:ddNd4dOdddddddQddRdSi dTdUdVddWdXdcd<ddddeddfg dgg dhd4dig djd4dkd1dldd dmdndodpdd4dd4ddgdrdd2d3d	dd4ddd5d6d7d4dd4d4dd5gddd4dsZddd(d(dg dg ddBdd d dCdHdddgd	dddSg d1ddi dgdZeG dd deZeeG dd dZeeG dd dZeeG dd dZd4S )    )	dataclassfield)Enum)AnyDictListOptional)DeveloperAPIc                   @   s.   e Zd ZU eed< eed< eed< eed< dS )GridPosxywhN)__name__
__module____qualname__int__annotations__ r   r   e/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/dashboard/modules/metrics/dashboards/common.pyr
      s
   
 r
   T0 
randomWalkA)exemplarexprintervallegendFormat	queryTyperefIdheatmapF)formatfullMetaSearchincludeNullMetadatainstantrange
useBackend)r   r!   r"   r#   r$   r%   r&   c                   @   s   e Zd ZeZeZeZdS )TargetTemplateN)	r   r   r   GRAPH_TARGET_TEMPLATEGRAPHHEATMAP_TARGET_TEMPLATEHEATMAP#HISTOGRAM_BAR_CHART_TARGET_TEMPLATEHISTOGRAM_BAR_CHARTr   r   r   r   r'   .   s    r'   c                   @   s4   e Zd ZU dZeed< eed< ejZe	e ed< dS )Targeta  Defines a Grafana target (time-series query) within a panel.

    A panel will have one or more targets. By default, all targets are rendered as
    stacked area charts, with the exception of legend="MAX", which is rendered as
    a blue dotted line. Any legend="FINISHED|FAILED|DEAD|REMOVED" series will also be
    rendered hidden by default.

    Attributes:
        expr: The prometheus query to evaluate.
        legend: The legend string to format for each time-series.
    r   legendtemplateN)
r   r   r   __doc__strr   r'   r)   r0   r   r   r   r   r   r.   5   s
   
 r.   z${datasource}z<Description>)defaults	overrides      unitnoneg      ?zdark-orangeschemeexponentialSpectral@   )exponentfillminmodereversescaler9   stepscolorzrgba(255,0,255,0.7)leg&.>showautoValue)layoutvaluesingle)r@   showColorScale
yHistogramleft)axisPlacementrA   r7   )
	calculatecellGap
cellValuesrD   	exemplarsfilterValuesr/   	rowsFrametooltipyAxisz11.2.0z<Title>z
object:628unitsN)	$$hashKeyr!   labellogBasemaxr?   rF   z
object:629short)

datasourcedescriptionfieldConfigidoptionspluginVersiontargetstitletypeyaxesaliasColorsbars
dashLength
   dashesr^   r_   r`   gridPos   )r   r   r   r   r>   fillGradienthiddenSeriesra      r/   current)alignAsTableavgrr   	hideEmptyhideZeror\   r?   	rightSiderF   sortsortDesctotalvalueslines	linewidthnullPointModerb   alertThreshold
percentagerc   z7.5.17pointradius   pointsrendererflotseriesOverrideszobject:2987MAXz#1F60C4)rY   aliasrl   rD   r>   stackz	object:78z,/FINISHED|FAILED|DEAD|REMOVED|Failed Nodes:/)rY   r   rp   zMAX + PENDINGz#777777spaceLengthr   steppedLinerd   
thresholdstimeFromtimeRegions	timeShiftre   rV   
individual)sharedrx   
value_typerf   graphtime)bucketsr@   namerF   r{   )align
alignLevel)xaxisrg   yaxisr@   zsuper-light-yellow)rD   rJ   zsuper-light-green2   greend   )r@   rC   )rD   mappingsr?   r   r7   N   rJ   arealastNotNull)calcsfieldsr{   )	colorMode	graphModejustifyModeorientationreduceOptionstexttextModestatTokens)r^   r`   ra   rb   rc   rd   r   r   re   rf   rg   zcontinuous-YlBlzrgb(230, 230, 230))rD   r   r   r7   	titleSize)r   showThresholdLabelsshowThresholdMarkersr   gauge)	r^   r`   ra   rb   rc   rd   re   rf   rg   tablerightpercent)displayMode	placementr{   pie)displayLabelsr/   pieTyper   r   piechart)r^   r_   r`   ra   rb   rc   rd   r   r   re   rf   rg   bottom)
showLegendr   r   )r   r/   r   seriesrz   rg   r   )r   r   )customr   sum)rF   reducerr   )
showHeaderfooterorganize)ra   rb   )r^   r_   r`   rm   ra   rb   rc   rd   re   rf   transformationsc                   @   s(   e Zd ZeZeZeZe	Z
eZeZeZdS )PanelTemplateN)r   r   r   GRAPH_PANEL_TEMPLATEr)   HEATMAP_TEMPLATEr+   PIE_CHART_TEMPLATE	PIE_CHARTSTAT_PANEL_TEMPLATESTATGAUGE_PANEL_TEMPLATEGAUGEBAR_CHART_PANEL_TEMPLATE	BAR_CHARTTABLE_PANEL_TEMPLATETABLEr   r   r   r   r     s    r   c                   @   sH  e Zd ZU dZeed< eed< eed< eed< ee ed< dZ	eed< d	Z
eed
< dZeed< dZee ed< ejZee ed< dZeed< dZeeeeef   ed< dZeeeeef   ed< dZee ed< dZee ed< dZee ed< dZee ed< dZee ed< dZee ed< dZee ed< dZ ee ed< dS )Panela  Defines a Grafana panel (graph) for the Ray dashboard page.

    A panel contains one or more targets (time-series queries).

    Attributes:
        title: Short name of the graph. Note: please keep this in sync with the title
            definitions in Metrics.tsx.
        description: Long form description of the graph.
        id: Integer id used to reference the graph from Metrics.tsx.
        unit: The unit to display on the y-axis of the graph.
        targets: List of query targets.
        fill: Whether or not the graph will be filled by a color.
        stack: Whether or not the lines in the graph will be stacked.
        linewidth: Width of the lines in the graph.
        grid_pos: Grid position of the panel.
        template: The panel template to use.
        hideXAxis: Whether to hide the x-axis.
        thresholds: Custom threshold configuration for stat/gauge panels.
            Example: [
                {"color": "green", "value": None},
                {"color": "yellow", "value": 70},
                {"color": "red", "value": 90}
            ]
        value_mappings: Value mappings for displaying text instead of numbers.
            Used for status panels.
        color_mode: Color mode for stat panels ("value", "background", "none").
        legend_mode: Legend display mode ("list", "table", "hidden").
        min_val: Minimum value for gauge/graph y-axis.
        max_val: Maximum value for gauge/graph y-axis.
        reduce_calc: Reduce calculation method for stat panels (default: "lastNotNull").
        heatmap_color_scheme: Color scheme for heatmap panels (e.g., "Spectral", "RdYlGn").
        heatmap_color_reverse: Whether to reverse the heatmap color scheme.
        heatmap_yaxis_label: Y-axis label for heatmap panels.
    re   r_   ra   r7   rd   rk   r>   Tr   r6   r}   Ngrid_posr0   F	hideXAxisr   value_mappings
color_modelegend_modemin_valmax_valreduce_calcheatmap_color_schemeheatmap_color_reverseheatmap_yaxis_label)!r   r   r   r1   r2   r   r   r   r.   r>   r   boolr}   r   r   r
   r   r)   r0   r   r   r   r   r   r   r   r   floatr   r   r   r   r   r   r   r   r   r     s.   
 #r   c                   @   s:   e Zd ZU dZeed< eed< ee ed< dZ	e
ed< dS )RowzDefines a Grafana row that can contain multiple panels.

    Attributes:
        title: The title of the row
        panels: List of panels contained in this row
        collapsed: Whether the row should be collapsed by default
    re   ra   panelsF	collapsedN)r   r   r   r1   r2   r   r   r   r   r   r   r   r   r   r   r   7  s   
 r   c                   @   sf   e Zd ZU eed< eed< ee ed< eed< eedZee	 ed< eedZ
ee ed< dd	 Zd
S )DashboardConfigr   default_uidstandard_global_filtersbase_json_file_name)default_factoryr   rowsc                 C   s   | j s
| jstdd S d S )Nz0At least one of panels or rows must be specified)r   r   
ValueError)selfr   r   r   __post_init__Y  s   zDashboardConfig.__post_init__N)r   r   r   r2   r   r   r   listr   r   r   r   r   r   r   r   r   r   H  s   
 r   )dataclassesr   r   enumr   typingr   r   r   r   ray.util.annotationsr	   r
   r(   r*   r,   r'   r.   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   





4
	
 !"#$%(	?@ABCDEFGHIK	
i	
;
	
0
,
	
&'()*+,-./0123456?

SW


;