{-# LANGUAGE OverloadedStrings #-}
module Arbiter.Otel.MetricNames
( MetricName (..)
, metricName
, arbiterMetricNames
) where
import Data.Text (Text)
data MetricName
=
JobsClaimed
| JobsProcessed
| JobsRetries
| AdmissionAdmitted
| MaintenanceRows
| HandlerDuration
|
QueueDepth
| QueueDepthByKind
| QueueOldestReadyAge
| QueueOldestInFlightAge
| Workers
|
AdmissionKeys
| AdmissionLimit
| AdmissionInFlight
| AdmissionBusiestKey
| AdmissionTokens
|
PgTableDeadTuples
| PgTableLiveTuples
| PgTableAutovacuumAge
| PgTableSizeBytes
| PgTableScans
| PgTableBlocks
| PgTableXidAge
| PgDbConnections
| PgDbBackends
| PgDbOldestTransactionAge
| PgDbOldestQueryAge
| DbReachable
| GaugesAge
deriving stock (MetricName
MetricName -> MetricName -> Bounded MetricName
forall a. a -> a -> Bounded a
$cminBound :: MetricName
minBound :: MetricName
$cmaxBound :: MetricName
maxBound :: MetricName
Bounded, Int -> MetricName
MetricName -> Int
MetricName -> [MetricName]
MetricName -> MetricName
MetricName -> MetricName -> [MetricName]
MetricName -> MetricName -> MetricName -> [MetricName]
(MetricName -> MetricName)
-> (MetricName -> MetricName)
-> (Int -> MetricName)
-> (MetricName -> Int)
-> (MetricName -> [MetricName])
-> (MetricName -> MetricName -> [MetricName])
-> (MetricName -> MetricName -> [MetricName])
-> (MetricName -> MetricName -> MetricName -> [MetricName])
-> Enum MetricName
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: MetricName -> MetricName
succ :: MetricName -> MetricName
$cpred :: MetricName -> MetricName
pred :: MetricName -> MetricName
$ctoEnum :: Int -> MetricName
toEnum :: Int -> MetricName
$cfromEnum :: MetricName -> Int
fromEnum :: MetricName -> Int
$cenumFrom :: MetricName -> [MetricName]
enumFrom :: MetricName -> [MetricName]
$cenumFromThen :: MetricName -> MetricName -> [MetricName]
enumFromThen :: MetricName -> MetricName -> [MetricName]
$cenumFromTo :: MetricName -> MetricName -> [MetricName]
enumFromTo :: MetricName -> MetricName -> [MetricName]
$cenumFromThenTo :: MetricName -> MetricName -> MetricName -> [MetricName]
enumFromThenTo :: MetricName -> MetricName -> MetricName -> [MetricName]
Enum, MetricName -> MetricName -> Bool
(MetricName -> MetricName -> Bool)
-> (MetricName -> MetricName -> Bool) -> Eq MetricName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MetricName -> MetricName -> Bool
== :: MetricName -> MetricName -> Bool
$c/= :: MetricName -> MetricName -> Bool
/= :: MetricName -> MetricName -> Bool
Eq, Int -> MetricName -> ShowS
[MetricName] -> ShowS
MetricName -> String
(Int -> MetricName -> ShowS)
-> (MetricName -> String)
-> ([MetricName] -> ShowS)
-> Show MetricName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MetricName -> ShowS
showsPrec :: Int -> MetricName -> ShowS
$cshow :: MetricName -> String
show :: MetricName -> String
$cshowList :: [MetricName] -> ShowS
showList :: [MetricName] -> ShowS
Show)
metricName :: MetricName -> Text
metricName :: MetricName -> Text
metricName = \case
MetricName
JobsClaimed -> Text
"arbiter.jobs.claimed"
MetricName
JobsProcessed -> Text
"arbiter.jobs.processed"
MetricName
JobsRetries -> Text
"arbiter.jobs.retries"
MetricName
AdmissionAdmitted -> Text
"arbiter.admission.admitted"
MetricName
MaintenanceRows -> Text
"arbiter.maintenance.rows"
MetricName
HandlerDuration -> Text
"arbiter.job.handler.duration"
MetricName
QueueDepth -> Text
"arbiter.queue.depth"
MetricName
QueueDepthByKind -> Text
"arbiter.queue.depth_by_kind"
MetricName
QueueOldestReadyAge -> Text
"arbiter.queue.oldest_ready_age"
MetricName
QueueOldestInFlightAge -> Text
"arbiter.queue.oldest_in_flight_age"
MetricName
Workers -> Text
"arbiter.workers"
MetricName
AdmissionKeys -> Text
"arbiter.admission.keys"
MetricName
AdmissionLimit -> Text
"arbiter.admission.limit"
MetricName
AdmissionInFlight -> Text
"arbiter.admission.in_flight"
MetricName
AdmissionBusiestKey -> Text
"arbiter.admission.busiest_key"
MetricName
AdmissionTokens -> Text
"arbiter.admission.tokens"
MetricName
PgTableDeadTuples -> Text
"arbiter.pg.table.dead_tuples"
MetricName
PgTableLiveTuples -> Text
"arbiter.pg.table.live_tuples"
MetricName
PgTableAutovacuumAge -> Text
"arbiter.pg.table.autovacuum_age"
MetricName
PgTableSizeBytes -> Text
"arbiter.pg.table.size_bytes"
MetricName
PgTableScans -> Text
"arbiter.pg.table.scans"
MetricName
PgTableBlocks -> Text
"arbiter.pg.table.blocks"
MetricName
PgTableXidAge -> Text
"arbiter.pg.table.xid_age"
MetricName
PgDbConnections -> Text
"arbiter.pg.database.connections"
MetricName
PgDbBackends -> Text
"arbiter.pg.database.backends"
MetricName
PgDbOldestTransactionAge -> Text
"arbiter.pg.database.oldest_transaction_age"
MetricName
PgDbOldestQueryAge -> Text
"arbiter.pg.database.oldest_query_age"
MetricName
DbReachable -> Text
"arbiter.db.reachable"
MetricName
GaugesAge -> Text
"arbiter.gauges.age"
arbiterMetricNames :: [Text]
arbiterMetricNames :: [Text]
arbiterMetricNames = (MetricName -> Text) -> [MetricName] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map MetricName -> Text
metricName [MetricName
forall a. Bounded a => a
minBound .. MetricName
forall a. Bounded a => a
maxBound]