From 2a3295a9afdb2b738c82b79b72e297da2acee446 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 8 Dec 2025 15:37:24 -0500 Subject: [PATCH] update emitter tests --- tests/bin/emit1.ml | 12 +++++------- tests/bin/emit1_cohttp.ml | 10 ++++------ tests/bin/emit1_eio.ml | 21 ++++++++++----------- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/tests/bin/emit1.ml b/tests/bin/emit1.ml index edaa63f8..effba2b2 100644 --- a/tests/bin/emit1.ml +++ b/tests/bin/emit1.ml @@ -17,17 +17,15 @@ let num_sleep = Atomic.make 0 let stress_alloc_ = ref true -let stop = Atomic.make false - let num_tr = Atomic.make 0 let run_job () = - let@ () = Fun.protect ~finally:(fun () -> Atomic.set stop true) in + let active = OT.Main_exporter.active () in let tracer = OT.Tracer.get_main () in let i = ref 0 in let cnt = ref 0 in - while (not @@ Atomic.get stop) && !cnt < !n do + while OT.Aswitch.is_on active && !cnt < !n do let@ _scope = Atomic.incr num_tr; OT.Tracer.with_ tracer ~kind:OT.Span.Span_kind_producer "loop.outer" @@ -41,7 +39,7 @@ let run_job () = (* parent scope is found via thread local storage *) let@ scope = Atomic.incr num_tr; - OT.Tracer.with_ tracer ~kind:OT.Span.Span_kind_internal + OT.Tracer.with_ tracer ~kind:OT.Span.Span_kind_internal ~parent:_scope ~attrs:[ "j", `Int j ] "loop.inner" in @@ -96,7 +94,7 @@ let run () = ])); let n_jobs = max 1 !n_jobs in - Printf.printf "run %d jobs\n%!" n_jobs; + Printf.printf "run %d job(s)\n%!" n_jobs; let jobs = Array.init n_jobs (fun _ -> @@ -162,4 +160,4 @@ let () = Printf.printf "\ndone. %d spans in %.4fs (%.4f/s)\n%!" (Atomic.get num_tr) elapsed n_per_sec) in - Opentelemetry_client_ocurl.with_setup ~stop ~config () run + Opentelemetry_client_ocurl.with_setup ~config () run diff --git a/tests/bin/emit1_cohttp.ml b/tests/bin/emit1_cohttp.ml index bb0559ff..c02e901f 100644 --- a/tests/bin/emit1_cohttp.ml +++ b/tests/bin/emit1_cohttp.ml @@ -18,15 +18,14 @@ let num_sleep = Atomic.make 0 let stress_alloc_ = ref true -let stop = Atomic.make false - let num_tr = Atomic.make 0 (* Counter used to mark simulated failures *) let i = ref 0 let run_job job_id : unit Lwt.t = - while%lwt not @@ Atomic.get stop do + let switch = T.Main_exporter.active () in + while%lwt T.Aswitch.is_on switch do let tracer = T.Tracer.get_main () in let@ scope = Atomic.incr num_tr; @@ -37,7 +36,7 @@ let run_job job_id : unit Lwt.t = for%lwt j = 0 to !iterations do if j >= !iterations then (* Terminate program, having reached our max iterations *) - Lwt.return @@ Atomic.set stop true + T.Main_exporter.remove () else (* parent scope is found via thread local storage *) let@ span = @@ -165,5 +164,4 @@ let () = Printf.printf "\ndone. %d spans in %.4fs (%.4f/s)\n%!" (Atomic.get num_tr) elapsed n_per_sec) in - Opentelemetry_client_cohttp_lwt.with_setup ~stop ~config () run - |> Lwt_main.run + Opentelemetry_client_cohttp_lwt.with_setup ~config () run |> Lwt_main.run diff --git a/tests/bin/emit1_eio.ml b/tests/bin/emit1_eio.ml index f199ac23..2c69289c 100644 --- a/tests/bin/emit1_eio.ml +++ b/tests/bin/emit1_eio.ml @@ -46,14 +46,13 @@ let run_job clock _job_id iterations : unit = let () = Eio.Time.sleep clock !sleep_outer in Atomic.incr num_sleep; - OT.Logger.( - let logger = OT.Logger.get_main () in - OT.Emitter.emit logger - [ - OT.Log_record.make_strf ~trace_id:(OT.Span.trace_id scope) - ~span_id:(OT.Span.id scope) ~severity:Severity_number_info - "inner at %d" j; - ]); + (let logger = OT.Logger.get_main () in + OT.Emitter.emit logger + [ + OT.Log_record.make_strf ~trace_id:(OT.Span.trace_id scope) + ~span_id:(OT.Span.id scope) ~severity:Severity_number_info + "inner at %d" j; + ]); Atomic.incr i; @@ -163,15 +162,15 @@ let () = in Eio_main.run @@ fun env -> (if !n_procs < 2 then - Opentelemetry_client_cohttp_eio.with_setup ~stop ~config + Opentelemetry_client_cohttp_eio.with_setup ~config (run env 0 !n_iterations) env else Eio.Switch.run @@ fun sw -> - Opentelemetry_client_cohttp_eio.setup ~stop ~config ~sw env; + Opentelemetry_client_cohttp_eio.setup ~config ~sw env; let dm = Eio.Stdenv.domain_mgr env in Eio.Switch.run (fun sw -> for proc = 1 to !n_procs do Eio.Fiber.fork ~sw @@ fun () -> Eio.Domain_manager.run dm (run env proc !n_iterations) done)); - Opentelemetry.Main_exporter.remove () ~on_done:ignore + OT.Main_exporter.remove () ~on_done:ignore