mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 12:23:32 -04:00
parent
041d05eb9f
commit
97030757c1
1 changed files with 13 additions and 8 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
open struct
|
open struct
|
||||||
let spf = Printf.sprintf
|
let spf = Printf.sprintf
|
||||||
|
|
||||||
|
module Atomic = Opentelemetry_atomic.Atomic
|
||||||
module Ambient_context = Opentelemetry_ambient_context
|
module Ambient_context = Opentelemetry_ambient_context
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -163,33 +164,37 @@ module Collector = struct
|
||||||
open struct
|
open struct
|
||||||
let on_tick_cbs_ = AList.make ()
|
let on_tick_cbs_ = AList.make ()
|
||||||
|
|
||||||
let backend : backend option ref = ref None
|
let backend : backend option Atomic.t = Atomic.make None
|
||||||
end
|
end
|
||||||
|
|
||||||
(** Set collector backend *)
|
(** Set collector backend *)
|
||||||
let set_backend (b : backend) : unit =
|
let set_backend (b : backend) : unit =
|
||||||
let (module B) = b in
|
let (module B) = b in
|
||||||
B.set_on_tick_callbacks on_tick_cbs_;
|
B.set_on_tick_callbacks on_tick_cbs_;
|
||||||
backend := Some b
|
Atomic.set backend (Some b)
|
||||||
|
|
||||||
|
(** Remove current backend, if any.
|
||||||
|
@since NEXT_RELEASE *)
|
||||||
|
let remove_backend () : unit = Atomic.set backend None
|
||||||
|
|
||||||
(** Is there a configured backend? *)
|
(** Is there a configured backend? *)
|
||||||
let[@inline] has_backend () : bool = !backend != None
|
let[@inline] has_backend () : bool = Atomic.get backend != None
|
||||||
|
|
||||||
(** Current backend, if any *)
|
(** Current backend, if any *)
|
||||||
let[@inline] get_backend () : backend option = !backend
|
let[@inline] get_backend () : backend option = Atomic.get backend
|
||||||
|
|
||||||
let send_trace (l : Trace.resource_spans list) ~ret =
|
let send_trace (l : Trace.resource_spans list) ~ret =
|
||||||
match !backend with
|
match Atomic.get backend with
|
||||||
| None -> ret ()
|
| None -> ret ()
|
||||||
| Some (module B) -> B.send_trace.send l ~ret
|
| Some (module B) -> B.send_trace.send l ~ret
|
||||||
|
|
||||||
let send_metrics (l : Metrics.resource_metrics list) ~ret =
|
let send_metrics (l : Metrics.resource_metrics list) ~ret =
|
||||||
match !backend with
|
match Atomic.get backend with
|
||||||
| None -> ret ()
|
| None -> ret ()
|
||||||
| Some (module B) -> B.send_metrics.send l ~ret
|
| Some (module B) -> B.send_metrics.send l ~ret
|
||||||
|
|
||||||
let send_logs (l : Logs.resource_logs list) ~ret =
|
let send_logs (l : Logs.resource_logs list) ~ret =
|
||||||
match !backend with
|
match Atomic.get backend with
|
||||||
| None -> ret ()
|
| None -> ret ()
|
||||||
| Some (module B) -> B.send_logs.send l ~ret
|
| Some (module B) -> B.send_logs.send l ~ret
|
||||||
|
|
||||||
|
|
@ -202,7 +207,7 @@ module Collector = struct
|
||||||
(** Do background work. Call this regularly if the collector doesn't
|
(** Do background work. Call this regularly if the collector doesn't
|
||||||
already have a ticker thread or internal timer. *)
|
already have a ticker thread or internal timer. *)
|
||||||
let tick () =
|
let tick () =
|
||||||
match !backend with
|
match Atomic.get backend with
|
||||||
| None -> ()
|
| None -> ()
|
||||||
| Some (module B) -> B.tick ()
|
| Some (module B) -> B.tick ()
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue