package Ġru . y oom oney . tech . grafana . dsl . panels Ċ Ċ import Ġorg . am sh ove . k lu ent . shouldBe Ċ import Ġorg . testng . annotations . Test Ċ import Ġru . y oom oney . tech . grafana . dsl . dashboard Ċ import Ġru . y oom oney . tech . grafana . dsl . datasource . Prom Ql Ċ import Ġru . y oom oney . tech . grafana . dsl . datasource . Z abb ix Ċ import Ġru . y oom oney . tech . grafana . dsl . json File Ċ import Ġru . y oom oney . tech . grafana . dsl . metrics . prometheus . as Instant Vector Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . repeat . Horizontal Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . stat . Color Mode Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . stat . Graph Mode Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . stat . Just ify Mode Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . stat . Stat Panel Display Options Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . stat . Text Mode Ċ import Ġru . y oom oney . tech . grafana . dsl . panels . stat . stat Panel Ċ import Ġru . y oom oney . tech . grafana . dsl . should EqualTo Json Ċ import Ġru . y oom oney . tech . grafana . dsl . variables . Refresh Mode Ċ Ċ /** Ċ Ġ* Ġ@ author ĠA lek sey ĠMat ve ev Ċ Ġ* Ġ@ since Ġ 0 3 . 1 1 . 2 0 2 0 Ċ Ġ*/ Ċ Ċ class ĠStat Panel Builder Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` create Ġstat Ġwith Ġrepeat `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġminimal Dashboard Ġ= Ġdashboard (" Test Aut ogenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhosts Ġby Ġvariables . query ( datasource Ġ= ĠZ abb ix , Ġquery Ġ= Ġ" Sk rat ĠBack .* ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregex Ġ= Ġ" .* ac quirer .* " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Mode Ġ= ĠRefresh Mode . ON _ TIME _ RANGE _ CHANGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude All Value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanels Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstat Panel ( hosts . as Variable ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Ġ= Ġ 3 Ġto Ġ 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( hosts ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= ĠHorizontal ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics < Z abb ix > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġhosts . as Variable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Ġ= Ġ" Application Ġdata " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= Ġ" Application Ġdynamic Ġconfig Ġversion " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ"/ .*/ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Filter Ġ= Ġ". { 1 1 }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer ange Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Time Override Info Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Mode Ġ= ĠColor Mode . BACKGROUND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreduce Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfields Ġ= Ġ" Application Ġdata " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthresholds ( Threshold Mode . AB SOL UTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 " Ġto ĠColor . RED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmappings Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ToText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" null " Ġto Ġ" N / A " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġminimal Dashboard Ġshould EqualTo Json Ġjson File (" Stat Panel With Repeat . json ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` create Ġstat Ġwithout Ġrepeat `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġminimal Dashboard Ġ= Ġdashboard (" Test Aut ogenerated ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhosts Ġby Ġvariables . query ( datasource Ġ= ĠZ abb ix , Ġquery Ġ= Ġ" Sk rat ĠBack .* ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregex Ġ= Ġ" .* ac quirer .* " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Mode Ġ= ĠRefresh Mode . ON _ TIME _ RANGE _ CHANGE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude All Value Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpanels Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstat Panel ( hosts . as Variable ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Ġ= Ġ 3 Ġto Ġ 3 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics < Z abb ix > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Query Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġhosts . as Variable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Ġ= Ġ" Application Ġdata " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= Ġ" Application Ġdynamic Ġconfig Ġversion " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ"/ .*/ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Filter Ġ= Ġ". { 1 1 }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimer ange Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Time Override Info Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Mode Ġ= ĠColor Mode . BACKGROUND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthresholds ( Threshold Mode . AB SOL UTE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsteps Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 " Ġto ĠColor . RED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmappings Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ToText Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" null " Ġto Ġ" N / A " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġminimal Dashboard Ġshould EqualTo Json Ġjson File (" Stat Panel Without Repeat . json ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġcreate Ġpanel Ġwith Ġprom Ql Ġmetric `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠ Ġval Ġtest Container Ġ= ĠTest Container Builder () ĊĊĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠ Ġtest Container . stat Panel ( title Ġ= Ġ" Prom Ql ĠPanel ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics ( Prom Ql ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprometheus Metric ( legend Format Ġ= Ġ"{{ version }} ", Ġinstant Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" app _ info { app _ name =" my _ app ", instance =" host "} """. as Instant Vector () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ= ĠStat Panel Display Options ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjustify Mode Ġ= ĠJust ify Mode . CENTER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorientation Ġ= ĠOrientation . AUTO , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Mode Ġ= ĠText Mode . NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgraph Mode Ġ= ĠGraph Mode . NONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠ Ġval Ġpanels Ġ= Ġtest Container . panels ĊĠĠĠĠĠĠĠ Ġpanels . size ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠ Ġpanels [ 0 ]. toJson (). toString () Ġshould EqualTo Json Ġjson File (" Stat Panel With Prom Ql Metric . json ") ĊĠĠĠ Ġ} Ċ Ċ }