mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-10 12:45:45 -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 OT = Opentelemetry
|
||||||
module Config = Config
|
module Config = Config
|
||||||
|
module Self_trace = Opentelemetry_client.Self_trace
|
||||||
open Opentelemetry
|
open Opentelemetry
|
||||||
include Common_
|
include Common_
|
||||||
|
|
||||||
|
|
@ -21,28 +22,6 @@ let timeout_gc_metrics = Mtime.Span.(20 * s)
|
||||||
(** side channel for GC, appended to metrics batch data *)
|
(** side channel for GC, appended to metrics batch data *)
|
||||||
let gc_metrics = AList.make ()
|
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
|
(** 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
|
long time since the last GC metrics collection, and push them into
|
||||||
{!gc_metrics} for later collection *)
|
{!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
|
let backend = create_backend ~stop ~config () in
|
||||||
Opentelemetry.Collector.set_backend backend;
|
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 (
|
if config.ticker_thread then (
|
||||||
(* at most a minute *)
|
(* at most a minute *)
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,5 @@
|
||||||
and [opentelemetry-client-ocurl] packages package. *)
|
and [opentelemetry-client-ocurl] packages package. *)
|
||||||
|
|
||||||
module Config = Config
|
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