arbiter-core-0.1.0.0
arbiter-core
Safe HaskellNone
LanguageGHC2024

Arbiter.Core.Trace

Description

W3C trace context carried on enqueued jobs, and the producer and consumer spans around them. The OpenTelemetry API is inert until an SDK installs a provider.

Synopsis

Job trace context

Source #data TraceContext

A job's W3C trace context.

Constructors

TraceContext 

Instances

Instances details
Eq TraceContext Source # 
Instance details

Defined in Arbiter.Core.Job.TraceContext

Generic TraceContext Source # 
Instance details

Defined in Arbiter.Core.Job.TraceContext

Associated Types

type Rep TraceContext 
Instance details

Defined in Arbiter.Core.Job.TraceContext

type Rep TraceContext = D1 ('MetaData "TraceContext" "Arbiter.Core.Job.TraceContext" "arbiter-core-0.1.0.0-inplace" 'False) (C1 ('MetaCons "TraceContext" 'PrefixI 'True) (S1 ('MetaSel ('Just "traceparent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "tracestate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))
Show TraceContext Source # 
Instance details

Defined in Arbiter.Core.Job.TraceContext

type Rep TraceContext Source # 
Instance details

Defined in Arbiter.Core.Job.TraceContext

type Rep TraceContext = D1 ('MetaData "TraceContext" "Arbiter.Core.Job.TraceContext" "arbiter-core-0.1.0.0-inplace" 'False) (C1 ('MetaCons "TraceContext" 'PrefixI 'True) (S1 ('MetaSel ('Just "traceparent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text) :*: S1 ('MetaSel ('Just "tracestate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Text))))

Source #stampTraceContext :: Maybe TraceContext -> JobWrite payload -> JobWrite payload

Fill a job's trace context. A job that carries one of its own keeps it.

Tracer

#data Tracer

Creates and manages Spans for a specific instrumentation scope.

Spec: https://opentelemetry.io/docs/specs/otel/trace/api/#tracer

Since: hs-opentelemetry-api-0.0.1.0

Instances

Instances details
Show Tracer # 
Instance details

Defined in OpenTelemetry.Internal.Trace.Types

Source #resolveTracer :: MonadIO m => m (Maybe Tracer)

Resolve the arbiter tracer once, or Nothing when nothing is collecting.

Producer

Source #currentTraceContext :: IO (Maybe TraceContext)

The ambient span's trace context, or Nothing when no span is active. Read from the thread-local context of the enqueuing thread.

Source #withPublishSpan :: (HasKind payload, MonadUnliftIO m) => TableName -> [JobWrite payload] -> m a -> m a

Run an action inside a publish <queue> producer span over n jobs.

Consumer

Source #data ConsumeSpan

Queue attributes for consumer spans. Resolve them one time for each pool and reuse them for claimed jobs.

Source #data ConsumeShape

What one consumer span covers.

Constructors

PerJob 
PerBatch 

Instances

Instances details
Eq ConsumeShape Source # 
Instance details

Defined in Arbiter.Core.Trace

Show ConsumeShape Source # 
Instance details

Defined in Arbiter.Core.Trace

Source #consumeSpanFor :: TableName -> ConsumeShape -> ConsumeSpan

The consumer-span shape for a queue.

Source #withConsumeSpan :: MonadUnliftIO m => Maybe Tracer -> ConsumeSpan -> NonEmpty (JobRead payload) -> m a -> m a

Run a job handler inside a process <queue> consumer span linked to its producer.

Source #withJobParent :: MonadUnliftIO m => JobRead payload -> m a -> m a

Run an action with the job's stored trace context as the ambient parent.

Source #capturingContext :: MonadUnliftIO m => m (m a -> m a)

Capture the caller context for an action on a child thread. Return the unchanged action if the context has no span.

Span enrichment

Reach for hs-opentelemetry-api directly for custom spans and attributes.

Source #markSpanError :: MonadIO m => Text -> m ()

Mark the currently active span failed.

Source #recordJobFailure :: MonadIO m => JobRead payload -> Text -> m ()

Record one job's failure as an event on the active span. A no-op when none is active. The span status is left alone.

Source #recordJobCancelled :: MonadIO m => JobRead payload -> Text -> m ()

Record one job's cancellation as an event on the active span.