module Ecluse.Core.Telemetry.Catalogue (
MetricName (..),
metricName,
) where
import Prelude hiding (universe)
import Data.Universe.Class (Universe (..))
import Data.Universe.Generic (universeGeneric)
data MetricName
=
HttpServerRequestDuration
|
ServeDecision
|
RuleDenials
|
RuleEvalDuration
|
RuleEffectfulFailures
|
RuleBreakerState
|
ServeAdmissionInFlight
|
ServeAdmissionQueued
|
MemoryAdmissionBudgetBytes
|
MemoryAdmissionChargedBytes
|
MemoryAdmissionBrakeLevel
|
MemoryAdmissionWaiting
|
MemoryAdmissionPausedNow
|
MemoryAdmissionQueued
|
MemoryAdmissionShed
|
MemoryAdmissionPauses
|
MemoryAdmissionOverdraws
|
PublishBodyInFlightBytes
|
PublishBodyShed
|
MergeDivergence
|
UpstreamFetchDuration
|
UpstreamFetchErrors
|
MetadataCacheRequests
|
SingleVersionCacheRequests
|
AssembledCacheRequests
|
MetadataCacheRefused
|
MetadataCacheEntries
|
MetadataCacheResidentBytes
|
SingleVersionCacheResidentBytes
|
AssembledCacheResidentBytes
|
ServePerimeterFaults
|
ServeRelayAnomalies
|
MirrorEnqueued
|
MirrorEnqueueFailures
|
MirrorJobsProcessed
|
MirrorPublishDuration
|
DredgerVersions
|
CredentialRefresh
|
CredentialTokenTtlSeconds
|
AdvisorySyncAttempts
|
AdvisorySyncDuration
|
AdvisoryDatabaseAgeSeconds
|
AdvisorySourceAgeSeconds
|
AdvisoryCompileAccepted
|
AdvisoryCompileDropped
|
AdvisoryCompileRuns
deriving stock (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, (forall x. MetricName -> Rep MetricName x)
-> (forall x. Rep MetricName x -> MetricName) -> Generic MetricName
forall x. Rep MetricName x -> MetricName
forall x. MetricName -> Rep MetricName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. MetricName -> Rep MetricName x
from :: forall x. MetricName -> Rep MetricName x
$cto :: forall x. Rep MetricName x -> MetricName
to :: forall x. Rep MetricName x -> MetricName
Generic, Eq MetricName
Eq MetricName =>
(MetricName -> MetricName -> Ordering)
-> (MetricName -> MetricName -> Bool)
-> (MetricName -> MetricName -> Bool)
-> (MetricName -> MetricName -> Bool)
-> (MetricName -> MetricName -> Bool)
-> (MetricName -> MetricName -> MetricName)
-> (MetricName -> MetricName -> MetricName)
-> Ord MetricName
MetricName -> MetricName -> Bool
MetricName -> MetricName -> Ordering
MetricName -> MetricName -> MetricName
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: MetricName -> MetricName -> Ordering
compare :: MetricName -> MetricName -> Ordering
$c< :: MetricName -> MetricName -> Bool
< :: MetricName -> MetricName -> Bool
$c<= :: MetricName -> MetricName -> Bool
<= :: MetricName -> MetricName -> Bool
$c> :: MetricName -> MetricName -> Bool
> :: MetricName -> MetricName -> Bool
$c>= :: MetricName -> MetricName -> Bool
>= :: MetricName -> MetricName -> Bool
$cmax :: MetricName -> MetricName -> MetricName
max :: MetricName -> MetricName -> MetricName
$cmin :: MetricName -> MetricName -> MetricName
min :: MetricName -> MetricName -> MetricName
Ord, 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)
instance Universe MetricName where universe :: [MetricName]
universe = [MetricName]
forall a. (Generic a, GUniverse (Rep a)) => [a]
universeGeneric
metricName :: MetricName -> Text
metricName :: MetricName -> Text
metricName = \case
MetricName
HttpServerRequestDuration -> Text
"http.server.request.duration"
MetricName
ServeDecision -> Text
"ecluse.serve.decision"
MetricName
RuleDenials -> Text
"ecluse.rule.denials"
MetricName
RuleEvalDuration -> Text
"ecluse.rule.eval.duration"
MetricName
RuleEffectfulFailures -> Text
"ecluse.rule.effectful.failures"
MetricName
RuleBreakerState -> Text
"ecluse.rule.breaker.state"
MetricName
ServeAdmissionInFlight -> Text
"ecluse.serve.admission.in_flight"
MetricName
ServeAdmissionQueued -> Text
"ecluse.serve.admission.queued"
MetricName
MemoryAdmissionBudgetBytes -> Text
"ecluse.serve.admission.memory.budget_bytes"
MetricName
MemoryAdmissionChargedBytes -> Text
"ecluse.serve.admission.memory.charged_bytes"
MetricName
MemoryAdmissionBrakeLevel -> Text
"ecluse.serve.admission.memory.brake_level"
MetricName
MemoryAdmissionWaiting -> Text
"ecluse.serve.admission.memory.waiting"
MetricName
MemoryAdmissionPausedNow -> Text
"ecluse.serve.admission.memory.paused_now"
MetricName
MemoryAdmissionQueued -> Text
"ecluse.serve.admission.memory.queued"
MetricName
MemoryAdmissionShed -> Text
"ecluse.serve.admission.memory.shed"
MetricName
MemoryAdmissionPauses -> Text
"ecluse.serve.admission.memory.pauses"
MetricName
MemoryAdmissionOverdraws -> Text
"ecluse.serve.admission.memory.overdraws"
MetricName
PublishBodyInFlightBytes -> Text
"ecluse.publish.body.in_flight_bytes"
MetricName
PublishBodyShed -> Text
"ecluse.publish.body.shed"
MetricName
MergeDivergence -> Text
"ecluse.registry.merge.divergence"
MetricName
UpstreamFetchDuration -> Text
"ecluse.upstream.fetch.duration"
MetricName
UpstreamFetchErrors -> Text
"ecluse.upstream.fetch.errors"
MetricName
MetadataCacheRequests -> Text
"ecluse.metadata_cache.requests"
MetricName
SingleVersionCacheRequests -> Text
"ecluse.metadata_cache.version.requests"
MetricName
AssembledCacheRequests -> Text
"ecluse.metadata_cache.assembled.requests"
MetricName
MetadataCacheRefused -> Text
"ecluse.metadata_cache.refused"
MetricName
MetadataCacheEntries -> Text
"ecluse.metadata_cache.entries"
MetricName
MetadataCacheResidentBytes -> Text
"ecluse.metadata_cache.resident_bytes"
MetricName
SingleVersionCacheResidentBytes -> Text
"ecluse.metadata_cache.version.resident_bytes"
MetricName
AssembledCacheResidentBytes -> Text
"ecluse.metadata_cache.assembled.resident_bytes"
MetricName
ServePerimeterFaults -> Text
"ecluse.serve.perimeter.faults"
MetricName
ServeRelayAnomalies -> Text
"ecluse.serve.relay.anomalies"
MetricName
MirrorEnqueued -> Text
"ecluse.mirror.enqueued"
MetricName
MirrorEnqueueFailures -> Text
"ecluse.mirror.enqueue.failures"
MetricName
MirrorJobsProcessed -> Text
"ecluse.mirror.jobs.processed"
MetricName
MirrorPublishDuration -> Text
"ecluse.mirror.publish.duration"
MetricName
DredgerVersions -> Text
"ecluse.dredger.versions"
MetricName
CredentialRefresh -> Text
"ecluse.credential.refresh"
MetricName
CredentialTokenTtlSeconds -> Text
"ecluse.credential.token.ttl.seconds"
MetricName
AdvisorySyncAttempts -> Text
"ecluse.advisory.sync.attempts"
MetricName
AdvisorySyncDuration -> Text
"ecluse.advisory.sync.duration"
MetricName
AdvisoryDatabaseAgeSeconds -> Text
"ecluse.advisory.database.age.seconds"
MetricName
AdvisorySourceAgeSeconds -> Text
"ecluse.advisory.source.age.seconds"
MetricName
AdvisoryCompileAccepted -> Text
"ecluse.advisory.compile.accepted"
MetricName
AdvisoryCompileDropped -> Text
"ecluse.advisory.compile.dropped"
MetricName
AdvisoryCompileRuns -> Text
"ecluse.advisory.compile.runs"