From e01a2f773bff90a27290ede72c87c0c0c3c8167f Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Wed, 17 Dec 2025 15:50:05 -0500 Subject: [PATCH] use the correct clock in logger/metrics; use ptime_clock as default --- src/client/exporter_debug.ml | 4 ++-- src/lib/logger.ml | 2 +- src/lib/main_exporter.ml | 2 +- src/lib/metrics_emitter.ml | 2 +- src/lib/tracer.ml | 7 +++---- src/lwt/opentelemetry_lwt.ml | 1 - 6 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/client/exporter_debug.ml b/src/client/exporter_debug.ml index dedc8659..1d634272 100644 --- a/src/client/exporter_debug.ml +++ b/src/client/exporter_debug.ml @@ -3,8 +3,8 @@ open Opentelemetry_emitter (** [debug ?out ()] is an exporter that pretty-prints signals on [out]. @param out the formatter into which to print, default [stderr]. *) -let debug ?(clock = OTEL.Clock.Main.dynamic_main) ?(out = Format.err_formatter) - () : OTEL.Exporter.t = +let debug ?(clock = OTEL.Clock.ptime_clock) ?(out = Format.err_formatter) () : + OTEL.Exporter.t = let open Proto in let active, trigger = Aswitch.create () in let ticker = Cb_set.create () in diff --git a/src/lib/logger.ml b/src/lib/logger.ml index 5dd6d681..da84bfb0 100644 --- a/src/lib/logger.ml +++ b/src/lib/logger.ml @@ -13,7 +13,7 @@ type t = { clock: Clock.t; } -let dummy : t = { emit = Emitter.dummy; clock = Clock.Main.dynamic_main } +let dummy : t = { emit = Emitter.dummy; clock = Clock.ptime_clock } let[@inline] enabled (self : t) : bool = Emitter.enabled self.emit diff --git a/src/lib/main_exporter.ml b/src/lib/main_exporter.ml index 24c71974..318203ef 100644 --- a/src/lib/main_exporter.ml +++ b/src/lib/main_exporter.ml @@ -101,7 +101,7 @@ let dynamic_forward_to_main_exporter : Exporter.t = let shutdown () = () in { Exporter.active; - clock = Clock.Main.dynamic_main; + clock = Clock.ptime_clock; emit_metrics; emit_spans; emit_logs; diff --git a/src/lib/metrics_emitter.ml b/src/lib/metrics_emitter.ml index 493b5e98..97f53399 100644 --- a/src/lib/metrics_emitter.ml +++ b/src/lib/metrics_emitter.ml @@ -5,7 +5,7 @@ type t = { clock: Clock.t; } -let dummy : t = { emit = Emitter.dummy; clock = Clock.Main.dynamic_main } +let dummy : t = { emit = Emitter.dummy; clock = Clock.ptime_clock } let[@inline] enabled (self : t) = Emitter.enabled self.emit diff --git a/src/lib/tracer.ml b/src/lib/tracer.ml index bd1bfda0..56ea4106 100644 --- a/src/lib/tracer.ml +++ b/src/lib/tracer.ml @@ -19,7 +19,7 @@ type t = { https://opentelemetry.io/docs/specs/otel/trace/api/#tracer *) (** Dummy tracer, always disabled *) -let dummy : t = { emit = Emitter.dummy; clock = Clock.Main.dynamic_main } +let dummy : t = { emit = Emitter.dummy; clock = Clock.ptime_clock } let[@inline] enabled (self : t) = Emitter.enabled self.emit @@ -50,8 +50,7 @@ let with_thunk_and_finally (self : t) ?(force_new_trace_id = false) ?trace_state | None, Some p -> Span.trace_id p | None, None -> Trace_id.create () in - (* TODO: pass a clock in emitters *) - let start_time = Clock.now_main () in + let start_time = Clock.now self.clock in let span_id = Span_id.create () in let parent_id = Option.map Span.id parent in @@ -62,7 +61,7 @@ let with_thunk_and_finally (self : t) ?(force_new_trace_id = false) ?trace_state in (* called once we're done, to emit a span *) let finally res = - let end_time = Clock.now_main () in + let end_time = Clock.now self.clock in Proto.Trace.span_set_end_time_unix_nano span end_time; (match Span.status span with diff --git a/src/lwt/opentelemetry_lwt.ml b/src/lwt/opentelemetry_lwt.ml index 47bbf640..ef21e18d 100644 --- a/src/lwt/opentelemetry_lwt.ml +++ b/src/lwt/opentelemetry_lwt.ml @@ -1,4 +1,3 @@ -open Lwt.Syntax include Opentelemetry module Main_exporter = struct