Opentelemetry_ambient_contextSourceAmbient context.
The ambient context, like the Matrix, is everywhere around you.
It is responsible for keeping track of that context in a manner that's consistent with the program's choice of control flow paradigm:
'a Lwt.t created inside the with_binding k v (fun _ -> …) will inherit the k := v assignment.with_binding k v (fun () -> …) will inherit the k := v assignment. This is consistent with the structured concurrency approach of Eio.The only data stored by this storage is a Hmap.t, ie a heterogeneous map. Various users (libraries, user code, etc.) can create their own key to store what they are interested in, without affecting other parts of the storage.
module Types := Opentelemetry_ambient_context_typesmodule type STORAGE = Types.STORAGEtype storage = (module STORAGE)A key that can be mapped to values of type 'a in the ambient context.
Total order on keys
Create a new fresh key, distinct from any previously created key.
Get the current value for a given key, or None if no value was associated with the key in the ambient context.
with_binding k v cb calls cb() in a context in which k is bound to v. This does not affect storage outside of cb().