package Ġcom . digital dim ens ia . grafana Ċ Ċ import Ġcom . digital dim ens ia . grafana . model . Graf ana Command Params Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġcom . github . aj alt . cli kt . core . Cli kt Command Ċ import Ġcom . github . aj alt . cli kt . core . find Object Ċ import Ġcom . github . aj alt . cli kt . core . require Object Ċ import Ġcom . github . aj alt . cli kt . core . sub commands Ċ import Ġcom . github . aj alt . cli kt . parameters . options .* Ċ import Ġcom . github . aj alt . cli kt . parameters . types . choice Ċ import Ġcom . github . aj alt . cli kt . parameters . types . file Ċ import Ġcom . github . aj alt . cli kt . parameters . types . int Ċ import Ġjava . io . File Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ ĠGraf ana Tools (). sub commands ( Find Dashboard s (), ĠFind Unused In flux Tables ()). main ( args ) Ċ } Ċ Ċ class ĠGraf ana Tools Ġ: ĠCli kt Command () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhostname : ĠString Ġby Ġoption ( ĊĠĠĠĠĠĠĠ Ġ"-- host ", ĊĠĠĠĠĠĠĠ Ġhelp Ġ= Ġ" Graf ana Ġhostname Ġ( default : Ġlocalhost )", ĊĠĠĠĠĠĠĠ Ġmetavar Ġ= Ġ"< hostname >" ĊĠĠĠ Ġ). default (" localhost ") ĊĠĠĠ Ġprivate Ġval Ġport : ĠInt Ġby Ġoption ( help Ġ= Ġ" Graf ana Ġport Ġ( default : Ġ 8 0 8 0 )", Ġmetavar Ġ= Ġ"< port > "). int (). default ( 8 0 8 0 ) ĊĠĠĠ Ġprivate Ġval Ġdry Run : ĠBoolean Ġby Ġoption ( help Ġ= Ġ" Don 't Ġactually Ġdo Ġanything "). flag () ĊĠĠĠ Ġprivate Ġval Ġconfig Ġby Ġfind Object Ġ{ ĠGraf ana Command Params () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġconfig . url Ġ= Ġ" http :// $ hostname :$ port " ĊĠĠĠĠĠĠĠ Ġconfig . dry Run Ġ= Ġdry Run ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFind Dashboard s Ġ: ĠCli kt Command ( name Ġ= Ġ" find Dashboard s ", Ġhelp Ġ= Ġ" Find Ġdashboard s Ġusing Ġa Ġspecified Ġdatasource ") Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdatasource Name : ĠString Ġby Ġoption ("- d ", Ġ"-- datasource ", Ġhelp Ġ= Ġ" Datasource Ġname "). required () ĊĠĠĠ Ġprivate Ġval Ġdatasource Type : ĠDat as ource Type ? Ġby Ġoption ( ĊĠĠĠĠĠĠĠ Ġ"- t ", ĊĠĠĠĠĠĠĠ Ġ"-- type ", ĊĠĠĠĠĠĠĠ Ġhelp Ġ= Ġ" Datasource Ġtype Ġ( e . g . Ġin flux )" ĊĠĠĠ Ġ). choice ( ĊĠĠĠĠĠĠĠ Ġ" influx " Ġto ĠDat as ource Type . IN FL UX , ĊĠĠĠĠĠĠĠ Ġ" k ai ros " Ġto ĠDat as ource Type . K AI ROS ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġmetrics : ĠList < String >? Ġby Ġoption ("- m ", Ġ"-- metric ", Ġhelp Ġ= Ġ" Metric Ġname Ġregex "). multiple () ĊĠĠĠ Ġprivate Ġval Ġconfig Ġby Ġrequire Object < Graf ana Command Params >() ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠDashboard Finder ( config , Ġdatasource Name , Ġdatasource Type , Ġmetrics ). run () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠFind Unused In flux Tables Ġ: ĠCli kt Command ( name Ġ= Ġ" unused Tables ", Ġhelp Ġ= Ġ" Find Ġunused Ġtables Ġfor Ġan Ġin flux Ġdatasource ") Ġ{ ĊĠĠĠ Ġprivate Ġval Ġdatasource Name : ĠString Ġby Ġoption ("- d ", Ġ"-- datasource ", Ġhelp Ġ= Ġ" Datasource Ġname "). required () ĊĠĠĠ Ġprivate Ġval Ġtable File : ĠFile Ġby Ġoption ( ĊĠĠĠĠĠĠĠ Ġ"- t ", ĊĠĠĠĠĠĠĠ Ġ"-- table file ", ĊĠĠĠĠĠĠĠ Ġhelp Ġ= Ġ" Json Ġfile Ġcontaining Ġtable Ġto Ġfilenames " ĊĠĠĠ Ġ). file (). required () ĊĠĠĠ Ġprivate Ġval Ġconfig Ġby Ġrequire Object < Graf ana Command Params >() ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠIn flux Table Finder ( config , Ġdatasource Name , Ġtable File ). run () ĊĠĠĠ Ġ} Ċ } Ċ