mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-07 18:37:56 -05:00
fix self_trace by just relying on Trace_provider
This commit is contained in:
parent
8d4ca8feb4
commit
7c1eb2321b
5 changed files with 16 additions and 31 deletions
|
|
@ -185,7 +185,8 @@ let setup_ ~sw ~config env : unit =
|
||||||
config.log_level;
|
config.log_level;
|
||||||
|
|
||||||
Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () ->
|
Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () ->
|
||||||
"opentelemetry: cohttp-eio exporter installed")
|
"opentelemetry: cohttp-eio exporter installed");
|
||||||
|
Opentelemetry_client.Self_trace.set_enabled config.self_trace
|
||||||
|
|
||||||
let setup ?(config = Config.make ()) ?(enable = true) ~sw env =
|
let setup ?(config = Config.make ()) ?(enable = true) ~sw env =
|
||||||
if enable && not config.sdk_disabled then setup_ ~sw ~config env
|
if enable && not config.sdk_disabled then setup_ ~sw ~config env
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ let setup_ ~config () : unit =
|
||||||
|
|
||||||
Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () ->
|
Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () ->
|
||||||
"opentelemetry: cohttp-lwt exporter installed");
|
"opentelemetry: cohttp-lwt exporter installed");
|
||||||
|
Opentelemetry_client.Self_trace.set_enabled config.self_trace;
|
||||||
()
|
()
|
||||||
|
|
||||||
let setup ?(config = Config.make ()) ?(enable = true) () =
|
let setup ?(config = Config.make ()) ?(enable = true) () =
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,7 @@ let setup_ ~config () : Exporter.t =
|
||||||
|
|
||||||
Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () ->
|
Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () ->
|
||||||
"opentelemetry: ocurl-lwt exporter installed");
|
"opentelemetry: ocurl-lwt exporter installed");
|
||||||
|
Opentelemetry_client.Self_trace.set_enabled config.self_trace;
|
||||||
|
|
||||||
exp
|
exp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,12 @@ open Common_
|
||||||
|
|
||||||
let enabled = Atomic.make false
|
let enabled = Atomic.make false
|
||||||
|
|
||||||
let tracer = Atomic.make OTEL.Tracer.default
|
|
||||||
|
|
||||||
let[@inline] add_event (scope : OTEL.Span.t) ev = OTEL.Span.add_event scope ev
|
let[@inline] add_event (scope : OTEL.Span.t) ev = OTEL.Span.add_event scope ev
|
||||||
|
|
||||||
let set_tracer tr = Atomic.set tracer tr
|
let set_enabled b = Atomic.set enabled b
|
||||||
|
|
||||||
let dummy_trace_id_ = OTEL.Trace_id.dummy
|
|
||||||
|
|
||||||
let dummy_span_id = OTEL.Span_id.dummy
|
|
||||||
|
|
||||||
let with_ ?kind ?attrs name f =
|
let with_ ?kind ?attrs name f =
|
||||||
if Atomic.get enabled then (
|
if Atomic.get enabled then
|
||||||
let tracer = Atomic.get tracer in
|
OTEL.Tracer.with_ ~tracer:(OTEL.Trace_provider.get ()) ?kind ?attrs name f
|
||||||
OTEL.Tracer.with_ ~tracer ?kind ?attrs name f
|
else
|
||||||
) else (
|
f OTEL.Span.dummy
|
||||||
(* A new scope is needed here because it might be modified *)
|
|
||||||
let span : OTEL.Span.t =
|
|
||||||
OTEL.Span.make ~trace_id:dummy_trace_id_ ~id:dummy_span_id ~start_time:0L
|
|
||||||
~end_time:0L name
|
|
||||||
in
|
|
||||||
f span
|
|
||||||
)
|
|
||||||
|
|
||||||
let set_enabled b = Atomic.set enabled b
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
(** Mini tracing module for OTEL itself (disabled if [config.self_trace=false])
|
(** Mini tracing module for OTEL itself.
|
||||||
*)
|
|
||||||
|
When enabled via {!set_enabled}, emits spans via the current
|
||||||
|
{!OTEL.Trace_provider}. Disabled by default. *)
|
||||||
|
|
||||||
open Common_
|
open Common_
|
||||||
|
|
||||||
|
|
@ -11,12 +13,8 @@ val with_ :
|
||||||
string ->
|
string ->
|
||||||
(OTEL.Span.t -> 'a) ->
|
(OTEL.Span.t -> 'a) ->
|
||||||
'a
|
'a
|
||||||
(** A simple way to create spans to instrument parts of the OTEL SDK itself. *)
|
(** Instrument a section of SDK code with a span. No-ops when disabled. *)
|
||||||
|
|
||||||
val set_tracer : OTEL.Tracer.t -> unit
|
|
||||||
(** Set the tracer to use for self-tracing. We need to make sure it will not
|
|
||||||
lead to infinite loops (if the tracer itself is self-tracing, it might
|
|
||||||
invoke itself recursively, and so on). *)
|
|
||||||
|
|
||||||
val set_enabled : bool -> unit
|
val set_enabled : bool -> unit
|
||||||
(** Enable self tracing. A tracer must also be set. *)
|
(** Enable or disable self-tracing. When enabled, uses the current
|
||||||
|
{!OTEL.Trace_provider} to emit spans. *)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue