From b52d9d02e0e4fdcd23b0eac2ed72d877f11237cd Mon Sep 17 00:00:00 2001 From: Dave Aitken Date: Thu, 24 Mar 2022 11:22:21 +0000 Subject: [PATCH] fire-and-forget sending of spans to collector so we dont block userland --- src/lwt/opentelemetry_lwt.ml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/lwt/opentelemetry_lwt.ml b/src/lwt/opentelemetry_lwt.ml index 5dbd9d56..c3c01ad2 100644 --- a/src/lwt/opentelemetry_lwt.ml +++ b/src/lwt/opentelemetry_lwt.ml @@ -12,14 +12,6 @@ module Trace = struct open Proto.Trace include Trace - (** Emit asynchronously *) - let emit ?service_name ?attrs (spans:span list) : unit Lwt.t = - let fut, wake = Lwt.wait() in - let rs = make_resource_spans ?service_name ?attrs spans in - Collector.send_trace [rs] - ~over:(fun () -> Lwt.wakeup_later wake ()) - ~ret:(fun () -> fut) - (** Sync span guard *) let with_ ?trace_state ?service_name ?(attrs=[]) @@ -44,10 +36,10 @@ module Trace = struct Lwt.catch (fun () -> let* x = f scope in - let+ () = finally (Ok ()) in - x) + let () = finally (Ok ()) in + Lwt.return x) (fun e -> - let* () = finally (Error (Printexc.to_string e)) in + let () = finally (Error (Printexc.to_string e)) in Lwt.fail e) end