| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
Ecluse.Runtime.Telemetry.Tracing
Description
The request-lifecycle tracing layer over the OpenTelemetry substrate (Ecluse.Runtime.Telemetry):
the WAI server span, the data plane's http-client child spans, and the hand-added domain spans. Every
entry point takes the Telemetry handle and is inert when telemetry is off, so the middleware is id,
manager settings come back untouched, and a domain-span bracket runs its body against no span. The
data-plane http-client instrumentation records no request or response header and the WAI instrumentation
never records Authorization, so a forwarded client token never reaches a span, while the
high-cardinality package, version, and denial message deliberately do.
Synopsis
- telemetryWaiMiddleware :: Telemetry -> IO Middleware
- instrumentDataPlaneManagerSettings :: Telemetry -> ManagerSettings -> IO ManagerSettings
- data JobSpanOutcome = JobSpanOutcome {}
- tracingPortOf :: Telemetry -> TracingPort
- workerTracingPortOf :: Telemetry -> WorkerTracingPort
- advisorySyncTracingPortOf :: Telemetry -> AdvisorySyncTracingPort
WAI server span
telemetryWaiMiddleware :: Telemetry -> IO Middleware Source #
Build the WAI server-span middleware, or id when telemetry is disabled. It belongs
outermost in the stack, so the span covers the whole request (see Ecluse.Runtime.Server).
http-client data-plane instrumentation
instrumentDataPlaneManagerSettings :: Telemetry -> ManagerSettings -> IO ManagerSettings Source #
Instrument a data-plane ManagerSettings so upstream fetches open a client span and carry
W3C trace-context headers. Return the settings untouched when telemetry is disabled.
Domain spans
data JobSpanOutcome #
Constructors
| JobSpanOutcome | |
Fields
| |
Instances
| Show JobSpanOutcome | |
Defined in Ecluse.Core.Telemetry.Span Methods showsPrec :: Int -> JobSpanOutcome -> ShowS # show :: JobSpanOutcome -> String # showList :: [JobSpanOutcome] -> ShowS # | |
| Eq JobSpanOutcome | |
Defined in Ecluse.Core.Telemetry.Span Methods (==) :: JobSpanOutcome -> JobSpanOutcome -> Bool # (/=) :: JobSpanOutcome -> JobSpanOutcome -> Bool # | |
The core tracing ports
tracingPortOf :: Telemetry -> TracingPort Source #
Project this module's serve-path spans onto the core TracingPort the pipeline brackets with.
workerTracingPortOf :: Telemetry -> WorkerTracingPort Source #
Project withMirrorJobSpan onto the core WorkerTracingPort that Ecluse.Core.Worker uses.
advisorySyncTracingPortOf :: Telemetry -> AdvisorySyncTracingPort Source #
Project withAdvisorySyncSpan onto the core AdvisorySyncTracingPort that
Ecluse.Runtime.Cve.Sync brackets through. Inert when telemetry is disabled.