Module Opentelemetry.Scope

Scopes.

A scope is a trace ID and the span ID of the currently active span.

type item_list
type t = {
  1. trace_id : Trace_id.t;
  2. span_id : Span_id.t;
  3. mutable items : item_list;
}
val attrs : t -> key_value list
val events : t -> Event.t list
val status : t -> Span_status.t option
val make : trace_id:Trace_id.t -> span_id:Span_id.t -> ?events:Event.t list -> ?attrs:key_value list -> ?links:Span_link.t list -> ?status:Span_status.t -> unit -> t
val to_span_ctx : t -> Span_ctx.t

Turn the scope into a span context

val add_event : t -> (unit -> Event.t) -> unit

Add an event to the scope. It will be aggregated into the span.

Note that this takes a function that produces an event, and will only call it if there is an instrumentation backend.

val record_exception : t -> exn -> Stdlib.Printexc.raw_backtrace -> unit
val add_attrs : t -> (unit -> key_value list) -> unit

Add attributes to the scope. It will be aggregated into the span.

Note that this takes a function that produces attributes, and will only call it if there is an instrumentation backend.

Add links to the scope. It will be aggregated into the span.

Note that this takes a function that produces links, and will only call it if there is an instrumentation backend.

val set_status : t -> Span_status.t -> unit

set the span status.

Note that this function will be called only if there is an instrumentation backend.

val ambient_scope_key : t {Ambient_context}3.key

The opaque key necessary to access/set the ambient scope with Ambient_context.

val get_ambient_scope : ?scope:t -> unit -> t option

Obtain current scope from Ambient_context, if available.

val with_ambient_scope : t -> (unit -> 'a) -> 'a

with_ambient_scope sc thunk calls thunk() in a context where sc is the (thread|continuation)-local scope, then reverts to the previous local scope, if any.