diff --git a/dune-project b/dune-project index 478434af..63684022 100644 --- a/dune-project +++ b/dune-project @@ -27,6 +27,7 @@ (ocaml (>= "4.08")) ptime + hmap ambient-context (odoc :with-doc) (alcotest :with-test) diff --git a/opentelemetry.opam b/opentelemetry.opam index cae04f6a..756e1860 100644 --- a/opentelemetry.opam +++ b/opentelemetry.opam @@ -16,6 +16,7 @@ depends: [ "dune" {>= "2.9"} "ocaml" {>= "4.08"} "ptime" + "hmap" "ambient-context" "odoc" {with-doc} "alcotest" {with-test} diff --git a/src/core/dune b/src/core/dune index f3671f64..f442b5ac 100644 --- a/src/core/dune +++ b/src/core/dune @@ -3,5 +3,5 @@ (synopsis "API for opentelemetry instrumentation") (flags :standard -warn-error -a+8) (libraries opentelemetry.proto ambient-context ptime ptime.clock.os pbrt threads - opentelemetry.atomic) + opentelemetry.atomic hmap) (public_name opentelemetry)) diff --git a/src/core/opentelemetry.ml b/src/core/opentelemetry.ml index 165e7e3a..e26e0391 100644 --- a/src/core/opentelemetry.ml +++ b/src/core/opentelemetry.ml @@ -326,6 +326,11 @@ end = struct let pp fmt t = Format.fprintf fmt "%s" (to_hex t) end +(** Hmap key to carry around a {!Trace_id.t}, to remember what the current + trace is. + @since NEXT_RELEASE *) +let k_trace_id : Trace_id.t Hmap.key = Hmap.Key.create () + (** Unique ID of a span. *) module Span_id : sig type t @@ -479,6 +484,11 @@ end = struct | Error msg -> invalid_arg @@ spf "invalid w3c trace context: %s" msg end +(** Hmap key to carry around a {!Span_ctx.t}, e.g. to remember what the current + parent span is. + @since NEXT_RELEASE *) +let k_span_ctx : Span_ctx.t Hmap.key = Hmap.Key.create () + (** {2 Attributes and conventions} *) module Conventions = struct