mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-08 03:47:59 -04:00
feat lib: easily access the main tracer, logger, etc
This commit is contained in:
parent
5a6bd442b7
commit
d02d609cf9
5 changed files with 25 additions and 10 deletions
|
|
@ -29,9 +29,9 @@ type t = {
|
||||||
let dummy () : t =
|
let dummy () : t =
|
||||||
let ticker = Cb_set.create () in
|
let ticker = Cb_set.create () in
|
||||||
{
|
{
|
||||||
emit_spans = Emitter.dummy ();
|
emit_spans = Emitter.dummy;
|
||||||
emit_metrics = Emitter.dummy ();
|
emit_metrics = Emitter.dummy;
|
||||||
emit_logs = Emitter.dummy ();
|
emit_logs = Emitter.dummy;
|
||||||
on_tick = Cb_set.register ticker;
|
on_tick = Cb_set.register ticker;
|
||||||
tick = (fun () -> Cb_set.trigger ticker);
|
tick = (fun () -> Cb_set.trigger ticker);
|
||||||
cleanup = (fun ~on_done () -> on_done ());
|
cleanup = (fun ~on_done () -> on_done ());
|
||||||
|
|
|
||||||
|
|
@ -46,12 +46,11 @@ let tap (f : 'a -> unit) (self : 'a t) : 'a t =
|
||||||
in
|
in
|
||||||
{ self with emit }
|
{ self with emit }
|
||||||
|
|
||||||
let dummy () : _ t =
|
let dummy : _ t =
|
||||||
let closed = Atomic.make false in
|
|
||||||
{
|
{
|
||||||
enabled = (fun () -> false);
|
enabled = (fun () -> false);
|
||||||
emit = ignore;
|
emit = ignore;
|
||||||
tick = (fun ~now:_ -> ());
|
tick = (fun ~now:_ -> ());
|
||||||
closed = (fun () -> Atomic.get closed);
|
closed = (fun () -> true);
|
||||||
flush_and_close = (fun () -> Atomic.set closed true);
|
flush_and_close = ignore;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,17 @@ open Opentelemetry_emitter
|
||||||
|
|
||||||
type t = Log_record.t Emitter.t
|
type t = Log_record.t Emitter.t
|
||||||
|
|
||||||
let dummy () : t = Emitter.dummy ()
|
let dummy : t = Emitter.dummy
|
||||||
|
|
||||||
let enabled = Emitter.enabled
|
let enabled = Emitter.enabled
|
||||||
|
|
||||||
let of_exporter (exp : Exporter.t) : t = exp.emit_logs
|
let of_exporter (exp : Exporter.t) : t = exp.emit_logs
|
||||||
|
|
||||||
|
let get_main () : t =
|
||||||
|
match Main_exporter.get () with
|
||||||
|
| None -> dummy
|
||||||
|
| Some e -> e.emit_logs
|
||||||
|
|
||||||
let emit ?attrs:_ (logs : Log_record.t list) : unit =
|
let emit ?attrs:_ (logs : Log_record.t list) : unit =
|
||||||
match Main_exporter.get () with
|
match Main_exporter.get () with
|
||||||
| None -> ()
|
| None -> ()
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ open Opentelemetry_emitter
|
||||||
|
|
||||||
type t = Metrics.t Emitter.t
|
type t = Metrics.t Emitter.t
|
||||||
|
|
||||||
let dummy () : t = Emitter.dummy ()
|
let dummy : t = Emitter.dummy
|
||||||
|
|
||||||
let enabled = Emitter.enabled
|
let enabled = Emitter.enabled
|
||||||
|
|
||||||
|
|
@ -16,6 +16,11 @@ let (emit [@deprecated "use an explicit Metrics_emitter.t"]) =
|
||||||
| None -> ()
|
| None -> ()
|
||||||
| Some exp -> Exporter.send_metrics exp l
|
| Some exp -> Exporter.send_metrics exp l
|
||||||
|
|
||||||
|
let get_main () : t =
|
||||||
|
match Main_exporter.get () with
|
||||||
|
| None -> dummy
|
||||||
|
| Some e -> e.emit_metrics
|
||||||
|
|
||||||
(** An emitter that uses the current {!Main_exporter} *)
|
(** An emitter that uses the current {!Main_exporter} *)
|
||||||
let dynamic_forward_to_main_exporter : t =
|
let dynamic_forward_to_main_exporter : t =
|
||||||
Main_exporter.Util.dynamic_forward_to_main_exporter () ~get_emitter:(fun e ->
|
Main_exporter.Util.dynamic_forward_to_main_exporter () ~get_emitter:(fun e ->
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,19 @@ type t = Span.t Emitter.t
|
||||||
https://opentelemetry.io/docs/specs/otel/trace/api/#tracer *)
|
https://opentelemetry.io/docs/specs/otel/trace/api/#tracer *)
|
||||||
|
|
||||||
(** Dummy tracer, always disabled *)
|
(** Dummy tracer, always disabled *)
|
||||||
let dummy () : t = Emitter.dummy ()
|
let dummy : t = Emitter.dummy
|
||||||
|
|
||||||
(** A tracer that uses the current {!Main_exporter} *)
|
(** A tracer that uses the current {!Main_exporter} *)
|
||||||
let dynamic_forward_to_main_exporter : t =
|
let dynamic_forward_to_main_exporter : t =
|
||||||
Main_exporter.Util.dynamic_forward_to_main_exporter () ~get_emitter:(fun e ->
|
Main_exporter.Util.dynamic_forward_to_main_exporter () ~get_emitter:(fun e ->
|
||||||
e.emit_spans)
|
e.emit_spans)
|
||||||
|
|
||||||
|
(** Get tracer using the main exporter in {!Main_exporter} *)
|
||||||
|
let get_main () : t =
|
||||||
|
match Main_exporter.get () with
|
||||||
|
| None -> dummy
|
||||||
|
| Some e -> e.emit_spans
|
||||||
|
|
||||||
let (add_event [@deprecated "use Span.add_event"]) = Span.add_event
|
let (add_event [@deprecated "use Span.add_event"]) = Span.add_event
|
||||||
|
|
||||||
let (add_attrs [@deprecated "use Span.add_attrs"]) = Span.add_attrs
|
let (add_attrs [@deprecated "use Span.add_attrs"]) = Span.add_attrs
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue