mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-08 03:47:59 -04:00
Move Self_trace module into Opentelemetry_client
This commit is contained in:
parent
5c0691439e
commit
0045a97e34
4 changed files with 39 additions and 23 deletions
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
module OT = Opentelemetry
|
||||
module Config = Config
|
||||
module Self_trace = Opentelemetry_client.Self_trace
|
||||
open Opentelemetry
|
||||
include Common_
|
||||
|
||||
|
|
@ -21,28 +22,6 @@ let timeout_gc_metrics = Mtime.Span.(20 * s)
|
|||
(** side channel for GC, appended to metrics batch data *)
|
||||
let gc_metrics = AList.make ()
|
||||
|
||||
(** Mini tracing module (disabled if [config.self_trace=false]) *)
|
||||
module Self_trace = struct
|
||||
let enabled = Atomic.make true
|
||||
|
||||
let add_event (scope : Scope.t) ev = Scope.add_event scope (fun () -> ev)
|
||||
|
||||
let dummy_trace_id_ = Trace_id.create ()
|
||||
|
||||
let dummy_span_id = Span_id.create ()
|
||||
|
||||
let with_ ?kind ?attrs name f =
|
||||
if Atomic.get enabled then
|
||||
Opentelemetry.Trace.with_ ?kind ?attrs name f
|
||||
else (
|
||||
(* do nothing *)
|
||||
let scope =
|
||||
Scope.make ~trace_id:dummy_trace_id_ ~span_id:dummy_span_id ()
|
||||
in
|
||||
f scope
|
||||
)
|
||||
end
|
||||
|
||||
(** capture current GC metrics if {!needs_gc_metrics} is true or it has been a
|
||||
long time since the last GC metrics collection, and push them into
|
||||
{!gc_metrics} for later collection *)
|
||||
|
|
@ -513,7 +492,7 @@ let setup_ ?(stop = Atomic.make false) ?(config : Config.t = Config.make ()) ()
|
|||
let backend = create_backend ~stop ~config () in
|
||||
Opentelemetry.Collector.set_backend backend;
|
||||
|
||||
Atomic.set Self_trace.enabled config.common.self_trace;
|
||||
Self_trace.set_enabled config.common.self_trace;
|
||||
|
||||
if config.ticker_thread then (
|
||||
(* at most a minute *)
|
||||
|
|
|
|||
|
|
@ -4,3 +4,5 @@
|
|||
and [opentelemetry-client-ocurl] packages package. *)
|
||||
|
||||
module Config = Config
|
||||
module Signal = Signal
|
||||
module Self_trace = Self_trace
|
||||
|
|
|
|||
22
src/client/self_trace.ml
Normal file
22
src/client/self_trace.ml
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
module OT = Opentelemetry
|
||||
|
||||
let enabled = Atomic.make true
|
||||
|
||||
let add_event (scope : OT.Scope.t) ev = OT.Scope.add_event scope (fun () -> ev)
|
||||
|
||||
let dummy_trace_id_ = OT.Trace_id.create ()
|
||||
|
||||
let dummy_span_id = OT.Span_id.create ()
|
||||
|
||||
let with_ ?kind ?attrs name f =
|
||||
if Atomic.get enabled then
|
||||
OT.Trace.with_ ?kind ?attrs name f
|
||||
else (
|
||||
(* do nothing *)
|
||||
let scope =
|
||||
OT.Scope.make ~trace_id:dummy_trace_id_ ~span_id:dummy_span_id ()
|
||||
in
|
||||
f scope
|
||||
)
|
||||
|
||||
let set_enabled b = Atomic.set enabled b
|
||||
13
src/client/self_trace.mli
Normal file
13
src/client/self_trace.mli
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
(** Mini tracing module (disabled if [config.self_trace=false]) *)
|
||||
|
||||
val add_event :
|
||||
Opentelemetry.Scope.t -> Opentelemetry_proto.Trace.span_event -> unit
|
||||
|
||||
val with_ :
|
||||
?kind:Opentelemetry_proto.Trace.span_span_kind ->
|
||||
?attrs:(string * Opentelemetry.value) list ->
|
||||
string ->
|
||||
(Opentelemetry.Scope.t -> 'a) ->
|
||||
'a
|
||||
|
||||
val set_enabled : bool -> unit
|
||||
Loading…
Add table
Reference in a new issue