package Ġno . nav . hj el pe mid ler Ċ Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . http . ContentType Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . response . respond Text Ċ import Ġio . ktor . response . respond Text Writer Ċ import Ġio . ktor . routing . Route Ċ import Ġio . ktor . routing . get Ċ import Ġio . prometheus . client . Collector Registry Ċ import Ġio . prometheus . client . exporter . common . Text Format Ċ import Ġno . nav . hj el pe mid ler . configuration . Configuration Ċ import Ġno . nav . hj el pe mid ler . metrics . Pro metheus Ċ Ċ fun ĠRoute . internal () Ġ{ ĊĠĠĠ Ġget ("/ is alive ") Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠLet 's Ġcheck Ġif Ġthe Ġdatasource Ġhas Ġbeen Ġclosed ĊĠĠĠĠĠĠĠ Ġif Ġ( Configuration . dataSource . is Closed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ get Ġcall . respond Text (" NOT ĠA LI VE ", ĠContentType . Text . Plain , ĠHttpStatusCode . Service Unavailable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcall . respond Text (" AL IVE ", ĠContentType . Text . Plain ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġget ("/ is ready ") Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠLet 's Ġcheck Ġif Ġthe Ġdatasource Ġis Ġstill Ġvalid Ġand Ġworking ĊĠĠĠĠĠĠĠ Ġvar Ġdb Connection Valid Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠConfiguration . dataSource . getConnection (). use Ġ{ Ġconnection Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( connection . isValid ( 2 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Connection Valid Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! db Connection Valid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPrometheus . o ebs Db Available . set ( 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ get Ġcall . respond Text (" NOT ĠREAD Y ", ĠContentType . Text . Plain , ĠHttpStatusCode . Service Unavailable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠPrometheus . o ebs Db Available . set ( 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġcall . respond Text (" READY ", ĠContentType . Text . Plain ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġget ("/ metrics ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnames Ġ= Ġcall . request . query Parameters . getAll (" name [] ") ?. toSet () Ġ?: Ġempty Set () ĊĊĠĠĠĠĠĠĠ Ġcall . respond Text Writer ( ContentType . parse ( Text Format . CONTENT _ TYPE _ 0 0 4 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Format . write 0 0 4 ( this , ĠCollector Registry . default Registry . filtered Metric Family Samples ( names )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ