diff --git a/src/client-cohttp-lwt/common_.ml b/src/client-cohttp-lwt/common_.ml index a082ff1f..091896aa 100644 --- a/src/client-cohttp-lwt/common_.ml +++ b/src/client-cohttp-lwt/common_.ml @@ -1,4 +1,3 @@ -open Lwt.Syntax module Atomic = Opentelemetry_atomic.Atomic let[@inline] ( let@ ) f x = f x diff --git a/src/client-cohttp-lwt/dune b/src/client-cohttp-lwt/dune index 5faafe1a..12d79702 100644 --- a/src/client-cohttp-lwt/dune +++ b/src/client-cohttp-lwt/dune @@ -2,5 +2,6 @@ (name opentelemetry_client_cohttp_lwt) (public_name opentelemetry-client-cohttp-lwt) (synopsis "Opentelemetry collector using cohttp+lwt+unix") + (preprocess (pps lwt_ppx)) (libraries opentelemetry lwt cohttp-lwt cohttp-lwt-unix pbrt mtime mtime.clock.os)) diff --git a/src/client-cohttp-lwt/opentelemetry_client_cohttp_lwt.ml b/src/client-cohttp-lwt/opentelemetry_client_cohttp_lwt.ml index 11e93aed..c1005413 100644 --- a/src/client-cohttp-lwt/opentelemetry_client_cohttp_lwt.ml +++ b/src/client-cohttp-lwt/opentelemetry_client_cohttp_lwt.ml @@ -105,11 +105,11 @@ end = struct let body = Cohttp_lwt.Body.of_string bod in let* r = - Lwt.catch - (fun () -> - let+ r = Httpc.post ~headers ~body uri in - Ok r) - (fun e -> Lwt.return @@ Error e) + try%lwt + let+ r = Httpc.post ~headers ~body uri in + Ok r + with e -> + Lwt.return @@ Error e in match r with | Error e -> diff --git a/src/lwt/dune b/src/lwt/dune index e547e931..24fbdf22 100644 --- a/src/lwt/dune +++ b/src/lwt/dune @@ -2,4 +2,6 @@ (name opentelemetry_lwt) (public_name opentelemetry-lwt) (synopsis "Lwt frontend for opentelemetry") + (preprocess + (pps lwt_ppx)) (libraries lwt opentelemetry)) diff --git a/src/lwt/opentelemetry_lwt.ml b/src/lwt/opentelemetry_lwt.ml index 8e8524cf..a67ec938 100644 --- a/src/lwt/opentelemetry_lwt.ml +++ b/src/lwt/opentelemetry_lwt.ml @@ -47,14 +47,13 @@ module Trace = struct in emit ?service_name [ span ] in - Lwt.catch - (fun () -> - let* x = f scope in - let () = finally (Ok ()) in - Lwt.return x) - (fun e -> - let () = finally (Error (Printexc.to_string e)) in - Lwt.fail e) + try%lwt + let* x = f scope in + let () = finally (Ok ()) in + Lwt.return x + with e -> + let () = finally (Error (Printexc.to_string e)) in + Lwt.fail e end module Metrics = struct