use the correct clock in logger/metrics; use ptime_clock as default

This commit is contained in:
Simon Cruanes 2025-12-17 15:50:05 -05:00
parent 46960e2021
commit e01a2f773b
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
6 changed files with 8 additions and 10 deletions

View file

@ -3,8 +3,8 @@ open Opentelemetry_emitter
(** [debug ?out ()] is an exporter that pretty-prints signals on [out]. (** [debug ?out ()] is an exporter that pretty-prints signals on [out].
@param out the formatter into which to print, default [stderr]. *) @param out the formatter into which to print, default [stderr]. *)
let debug ?(clock = OTEL.Clock.Main.dynamic_main) ?(out = Format.err_formatter) let debug ?(clock = OTEL.Clock.ptime_clock) ?(out = Format.err_formatter) () :
() : OTEL.Exporter.t = OTEL.Exporter.t =
let open Proto in let open Proto in
let active, trigger = Aswitch.create () in let active, trigger = Aswitch.create () in
let ticker = Cb_set.create () in let ticker = Cb_set.create () in

View file

@ -13,7 +13,7 @@ type t = {
clock: Clock.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 let[@inline] enabled (self : t) : bool = Emitter.enabled self.emit

View file

@ -101,7 +101,7 @@ let dynamic_forward_to_main_exporter : Exporter.t =
let shutdown () = () in let shutdown () = () in
{ {
Exporter.active; Exporter.active;
clock = Clock.Main.dynamic_main; clock = Clock.ptime_clock;
emit_metrics; emit_metrics;
emit_spans; emit_spans;
emit_logs; emit_logs;

View file

@ -5,7 +5,7 @@ type t = {
clock: Clock.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 let[@inline] enabled (self : t) = Emitter.enabled self.emit

View file

@ -19,7 +19,7 @@ type t = {
https://opentelemetry.io/docs/specs/otel/trace/api/#tracer *) https://opentelemetry.io/docs/specs/otel/trace/api/#tracer *)
(** Dummy tracer, always disabled *) (** 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 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, Some p -> Span.trace_id p
| None, None -> Trace_id.create () | None, None -> Trace_id.create ()
in in
(* TODO: pass a clock in emitters *) let start_time = Clock.now self.clock in
let start_time = Clock.now_main () in
let span_id = Span_id.create () in let span_id = Span_id.create () in
let parent_id = Option.map Span.id parent 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 in
(* called once we're done, to emit a span *) (* called once we're done, to emit a span *)
let finally res = 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; Proto.Trace.span_set_end_time_unix_nano span end_time;
(match Span.status span with (match Span.status span with

View file

@ -1,4 +1,3 @@
open Lwt.Syntax
include Opentelemetry include Opentelemetry
module Main_exporter = struct module Main_exporter = struct