diff --git a/src/core/span.ml b/src/core/span.ml index 0e3d1750..787c11a7 100644 --- a/src/core/span.ml +++ b/src/core/span.ml @@ -144,4 +144,4 @@ let set_status = span_set_status let set_kind = span_set_kind -let k_context : t Context.key = Context.new_key () +let k_ambient : t Context.key = Context.new_key () diff --git a/src/core/span.mli b/src/core/span.mli index 793b8ce1..e3160930 100644 --- a/src/core/span.mli +++ b/src/core/span.mli @@ -124,4 +124,6 @@ val default_kind : Span_kind.t ref set to "internal", following directions from the [.proto] file. It can be convenient to set "client" or "server" uniformly in here. *) -val k_context : t Context.key +val k_ambient : t Context.key +(** Context key to carry around a {!Span.t} in ambient context. + @since NEXT_RELEASE *) diff --git a/src/core/span_ctx.ml b/src/core/span_ctx.ml index 1be170f2..5b72755b 100644 --- a/src/core/span_ctx.ml +++ b/src/core/span_ctx.ml @@ -88,4 +88,4 @@ let of_w3c_trace_context_exn bs = | Ok t -> t | Error msg -> invalid_arg @@ spf "invalid w3c trace context: %s" msg -let k_span_ctx : t Hmap.key = Hmap.Key.create () +let k_ambient : t Hmap.key = Hmap.Key.create () diff --git a/src/core/span_ctx.mli b/src/core/span_ctx.mli index fb72046b..2970daab 100644 --- a/src/core/span_ctx.mli +++ b/src/core/span_ctx.mli @@ -36,7 +36,7 @@ val of_w3c_trace_context : bytes -> (t, string) result val of_w3c_trace_context_exn : bytes -> t (** @raise Invalid_argument if parsing failed *) -val k_span_ctx : t Hmap.key +val k_ambient : t Hmap.key (** Hmap key to carry around a {!Span_ctx.t}, e.g. to remember what the current parent span is. @since 0.8 *) diff --git a/src/lib/ambient_span.ml b/src/lib/ambient_span.ml index b8cc84e6..41d20edd 100644 --- a/src/lib/ambient_span.ml +++ b/src/lib/ambient_span.ml @@ -1,9 +1,9 @@ (** Find current span from ambient-context *) let[@inline] get () : Span.t option = - Opentelemetry_ambient_context.get Span.k_context + Opentelemetry_ambient_context.get Span.k_ambient (** [with_ambient span f] runs [f()] with the current ambient span being set to [span] *) let[@inline] with_ambient (span : Span.t) (f : unit -> 'a) : 'a = - Opentelemetry_ambient_context.with_key_bound_to Span.k_context span (fun _ -> + Opentelemetry_ambient_context.with_key_bound_to Span.k_ambient span (fun _ -> f ()) diff --git a/src/lib/opentelemetry.ml b/src/lib/opentelemetry.ml index 15284f32..25d4ddac 100644 --- a/src/lib/opentelemetry.ml +++ b/src/lib/opentelemetry.ml @@ -40,7 +40,7 @@ let k_trace_id = Trace_id.k_trace_id module Span_id = Span_id module Span_ctx = Span_ctx -let k_span_ctx = Span_ctx.k_span_ctx +let k_ambient = Span_ctx.k_ambient (** {2 Attributes and conventions} *) diff --git a/src/trace/opentelemetry_trace.ml b/src/trace/opentelemetry_trace.ml index 95e439ad..248c8caa 100644 --- a/src/trace/opentelemetry_trace.ml +++ b/src/trace/opentelemetry_trace.ml @@ -36,9 +36,9 @@ open struct (* sanity check: otrace meta-map must be the same as hmap *) let () = ignore (fun (k : _ Hmap.key) : _ Ambient_context.Context.key -> k) - (** Key to access the current span context. *) + (** Key to access the current span context. Uses the shared key from core. *) let k_span_ctx : OTEL.Span_ctx.t Ambient_context.Context.key = - Ambient_context.Context.new_key () + OTEL.Span_ctx.k_ambient let enter_span (self : state) ~__FUNCTION__ ~__FILE__ ~__LINE__ ~level:_ ~params:_ ~(data : (_ * Otrace.user_data) list) ~parent name : Otrace.span