ocaml-opentelemetry/src/core/context.ml
Simon Cruanes 841d58ab67
large refactor: split core library into many modules; change API design
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
2026-01-20 00:15:09 -05:00

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 ()