mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 12:23:32 -04:00
follow more closely the official OTEL recommendations, and also try to reduce global state. - use a class type for `Exporter.t` (instead of 1st class module `backend`) - have tracer, logger, metrics_emitter as explicit objects - keep a `Main_exporter` to make migration easier, but discouraged - add stdout_exporter and debug_exporter to opentelemetry.client
17 lines
464 B
OCaml
17 lines
464 B
OCaml
(** The context used in OTEL operations, to carry the current trace, etc.
|
|
|
|
https://opentelemetry.io/docs/specs/otel/context/ *)
|
|
|
|
type t = Hmap.t
|
|
(** The context type. We use [Hmap.t] as it's standard and widely used. *)
|
|
|
|
type 'a key = 'a Hmap.key
|
|
|
|
let set = Hmap.add
|
|
|
|
(** @raise Invalid_argument if not present *)
|
|
let get_exn : 'a key -> t -> 'a = Hmap.get
|
|
|
|
let get : 'a key -> t -> 'a option = Hmap.find
|
|
|
|
let[@inline] new_key () : 'a key = Hmap.Key.create ()
|