mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 04:17:56 -04:00
feat span: ambient span
This commit is contained in:
parent
e79df14a90
commit
6ccf554645
3 changed files with 19 additions and 10 deletions
|
|
@ -121,3 +121,13 @@ let add_links' (self : t) (links : unit -> Span_link.t list) : unit =
|
||||||
let set_status = span_set_status
|
let set_status = span_set_status
|
||||||
|
|
||||||
let set_kind = span_set_kind
|
let set_kind = span_set_kind
|
||||||
|
|
||||||
|
let k_context : t Context.key = Context.new_key ()
|
||||||
|
|
||||||
|
(** Find current span from ambient-context *)
|
||||||
|
let get_ambient () : t option = Ambient_context.get k_context
|
||||||
|
|
||||||
|
(** [with_ambient span f] runs [f()] with the current ambient span being set to
|
||||||
|
[span] *)
|
||||||
|
let[@inline] with_ambient (span : t) (f : unit -> 'a) : 'a =
|
||||||
|
Ambient_context.with_key_bound_to k_context span (fun _ -> f ())
|
||||||
|
|
|
||||||
|
|
@ -105,3 +105,10 @@ val set_status : t -> Span_status.t -> unit
|
||||||
val set_kind : t -> Span_kind.t -> unit
|
val set_kind : t -> Span_kind.t -> unit
|
||||||
(** Set the span's kind.
|
(** Set the span's kind.
|
||||||
@since 0.11 *)
|
@since 0.11 *)
|
||||||
|
|
||||||
|
val get_ambient : unit -> t option
|
||||||
|
(** Find current span from ambient-context *)
|
||||||
|
|
||||||
|
val with_ambient : t -> (unit -> 'a) -> 'a
|
||||||
|
(** [with_ambient span f] runs [f()] with the current ambient span being set to
|
||||||
|
[span] *)
|
||||||
|
|
|
||||||
|
|
@ -55,17 +55,9 @@ let (emit [@deprecated "use an explicit tracer"]) =
|
||||||
| None -> ()
|
| None -> ()
|
||||||
| Some exp -> exp#send_trace spans
|
| Some exp -> exp#send_trace spans
|
||||||
|
|
||||||
(* TODO: remove scope, use span directly *)
|
let (add_event [@deprecated "use Span.add_event"]) = Span.add_event
|
||||||
type scope = Scope.t = {
|
|
||||||
trace_id: Trace_id.t;
|
|
||||||
span_id: Span_id.t;
|
|
||||||
mutable items: Scope.item_list;
|
|
||||||
}
|
|
||||||
[@@deprecated "use Scope.t"]
|
|
||||||
|
|
||||||
let (add_event [@deprecated "use Scope.add_event"]) = Scope.add_event
|
let (add_attrs [@deprecated "use Span.add_attrs"]) = Span.add_attrs
|
||||||
|
|
||||||
let (add_attrs [@deprecated "use Scope.add_attrs"]) = Scope.add_attrs
|
|
||||||
|
|
||||||
let with_' ?(tracer = simple_main_exporter) ?(force_new_trace_id = false)
|
let with_' ?(tracer = simple_main_exporter) ?(force_new_trace_id = false)
|
||||||
?trace_state ?(attrs : (string * [< Value.t ]) list = []) ?kind ?trace_id
|
?trace_state ?(attrs : (string * [< Value.t ]) list = []) ?kind ?trace_id
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue