mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-10 04:35:46 -04:00
better logging for http consumer
This commit is contained in:
parent
ce3c85869b
commit
31e9812b4f
3 changed files with 13 additions and 5 deletions
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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.))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue