mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 12:23:32 -04:00
27 lines
839 B
OCaml
27 lines
839 B
OCaml
open Opentelemetry_emitter
|
|
|
|
type t = Metrics.t Emitter.t
|
|
|
|
let dummy : t = Emitter.dummy
|
|
|
|
let enabled = Emitter.enabled
|
|
|
|
let of_exporter (exp : Exporter.t) : t = exp.emit_metrics
|
|
|
|
(** Emit some metrics to the collector (sync). This blocks until the backend has
|
|
pushed the metrics into some internal queue, or discarded them. *)
|
|
let (emit [@deprecated "use an explicit Metrics_emitter.t"]) =
|
|
fun ?attrs:_ (l : Metrics.t list) : unit ->
|
|
match Main_exporter.get () with
|
|
| None -> ()
|
|
| 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} *)
|
|
let dynamic_forward_to_main_exporter : t =
|
|
Main_exporter.Util.dynamic_forward_to_main_exporter () ~get_emitter:(fun e ->
|
|
e.emit_metrics)
|