From 31e9812b4f199b24c48479ffd7e4fa7b074d9df1 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 9 Mar 2026 18:57:22 -0400 Subject: [PATCH] better logging for http consumer --- src/client/export_error.ml | 14 ++++++++++---- src/client/generic_consumer.ml | 2 +- src/client/generic_http_consumer.ml | 2 ++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/client/export_error.ml b/src/client/export_error.ml index e75aacbb..9ee73a92 100644 --- a/src/client/export_error.ml +++ b/src/client/export_error.ml @@ -12,12 +12,18 @@ let str_to_hex (s : string) : string = Opentelemetry_util.Util_bytes_.bytes_to_hex (Bytes.unsafe_of_string s) (** Report the error on stderr. *) -let report_err : t -> unit = function +let report_err ~level:(provided_level : [ `Debug | `Auto ]) (err : t) : unit = + let compute_level lvl = + match provided_level with + | `Debug -> Opentelemetry.Self_debug.Debug + | `Auto -> lvl + in + match err with | `Sysbreak -> - Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Info (fun () -> + Opentelemetry.Self_debug.log (compute_level Info) (fun () -> "opentelemetry: ctrl-c captured, stopping") | `Failure msg -> - Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Error (fun () -> + Opentelemetry.Self_debug.log (compute_level Error) (fun () -> Printf.sprintf "opentelemetry: export failed: %s" msg) | `Status ( code, @@ -28,7 +34,7 @@ let report_err : t -> unit = function _presence = _; }, descr ) -> - Opentelemetry.Self_debug.log Opentelemetry.Self_debug.Error (fun () -> + Opentelemetry.Self_debug.log (compute_level Error) (fun () -> let pp_details out l = List.iter (fun s -> Format.fprintf out "%S;@ " (Bytes.unsafe_to_string s)) diff --git a/src/client/generic_consumer.ml b/src/client/generic_consumer.ml index 81f12247..eadf0986 100644 --- a/src/client/generic_consumer.ml +++ b/src/client/generic_consumer.ml @@ -128,7 +128,7 @@ end = struct IO.return () | Error err -> Atomic.incr n_errors; - Export_error.report_err err; + Export_error.report_err ~level:`Auto err; (* avoid crazy error loop *) let dur_s = Util_net_backoff.on_error backoff in IO.sleep_s (dur_s +. Random.float (dur_s /. 10.)) diff --git a/src/client/generic_http_consumer.ml b/src/client/generic_http_consumer.ml index c98a702b..93c40bed 100644 --- a/src/client/generic_http_consumer.ml +++ b/src/client/generic_http_consumer.ml @@ -82,6 +82,8 @@ end = struct | Error err when should_retry err && attempt < self.config.retry_max_attempts -> let delay_s = delay_ms /. 1000. in + Export_error.report_err ~level:`Debug err; + let* () = sleep_s delay_s in let next_delay = min self.config.retry_max_delay_ms