From 2e3120fc4944d2282856e9b646638be24adf33d6 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Fri, 5 Dec 2025 23:52:08 -0500 Subject: [PATCH] wip: fix tests --- tests/bin/cohttp_client.ml | 13 +++++----- tests/bin/emit1.ml | 51 +++++++++++++++++++++----------------- tests/bin/emit1_eio.ml | 16 ++++++------ 3 files changed, 44 insertions(+), 36 deletions(-) diff --git a/tests/bin/cohttp_client.ml b/tests/bin/cohttp_client.ml index a4523847..f1314cf9 100644 --- a/tests/bin/cohttp_client.ml +++ b/tests/bin/cohttp_client.ml @@ -1,4 +1,4 @@ -module T = Opentelemetry +module OT = Opentelemetry module Otel_lwt = Opentelemetry_lwt let spf = Printf.sprintf @@ -10,19 +10,20 @@ let sleep_inner = ref 0.1 let sleep_outer = ref 2.0 let mk_client ~scope = - Opentelemetry_cohttp_lwt.client ~scope (module Cohttp_lwt_unix.Client) + Opentelemetry_cohttp_lwt.client ~span:scope (module Cohttp_lwt_unix.Client) let run () = let open Lwt.Syntax in + let tracer = OT.Tracer.get_main () in let rec go () = let@ scope = - Otel_lwt.Trace.with_ ~kind:T.Span.Span_kind_producer "loop.outer" + Otel_lwt.Tracer.with_ tracer ~kind:OT.Span.Span_kind_producer "loop.outer" in let* () = Lwt_unix.sleep !sleep_outer in let module C = (val mk_client ~scope) in (* Using the same default server O *) let* _res, body = - C.get (Uri.of_string Opentelemetry_client.Config.default_url) + C.get (Uri.of_string Opentelemetry_client.Client_config.default_url) in let* () = Cohttp_lwt.Body.drain_body body in go () @@ -31,8 +32,8 @@ let run () = let () = Sys.catch_break true; - T.Globals.service_name := "ocaml-otel-cohttp-client"; - T.Globals.service_namespace := Some "ocaml-otel.test"; + OT.Globals.service_name := "ocaml-otel-cohttp-client"; + OT.Globals.service_namespace := Some "ocaml-otel.test"; let debug = ref false in let batch_traces = ref 400 in diff --git a/tests/bin/emit1.ml b/tests/bin/emit1.ml index fdcdbc06..edaa63f8 100644 --- a/tests/bin/emit1.ml +++ b/tests/bin/emit1.ml @@ -1,4 +1,4 @@ -module T = Opentelemetry +module OT = Opentelemetry module Atomic = Opentelemetry_atomic.Atomic let spf = Printf.sprintf @@ -23,13 +23,14 @@ let num_tr = Atomic.make 0 let run_job () = let@ () = Fun.protect ~finally:(fun () -> Atomic.set stop true) 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 let@ _scope = Atomic.incr num_tr; - T.Trace.with_ ~kind:T.Span.Span_kind_producer "loop.outer" + OT.Tracer.with_ tracer ~kind:OT.Span.Span_kind_producer "loop.outer" ~attrs:[ "i", `Int !i ] in @@ -40,7 +41,7 @@ let run_job () = (* parent scope is found via thread local storage *) let@ scope = Atomic.incr num_tr; - T.Trace.with_ ~kind:T.Span.Span_kind_internal + OT.Tracer.with_ tracer ~kind:OT.Span.Span_kind_internal ~attrs:[ "j", `Int j ] "loop.inner" in @@ -48,18 +49,22 @@ let run_job () = Unix.sleepf !sleep_outer; Atomic.incr num_sleep; - T.Logs.( - emit - [ - make_strf ~trace_id:scope.trace_id ~span_id:scope.span_id - ~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; + ]; incr i; try Atomic.incr num_tr; - let@ _ = T.Trace.with_ ~kind:T.Span.Span_kind_internal ~scope "alloc" in + let@ _ = + OT.Tracer.with_ tracer ~kind:OT.Span.Span_kind_internal ~parent:scope + "alloc" + in (* allocate some stuff *) if !stress_alloc_ then ( let _arr = Sys.opaque_identity @@ Array.make (25 * 25551) 42.0 in @@ -72,23 +77,23 @@ let run_job () = if j = 4 && !i mod 13 = 0 then failwith "oh no"; (* simulate a failure *) - Opentelemetry.Scope.add_event scope (fun () -> - T.Event.make "done with alloc") + OT.Span.add_event scope (OT.Event.make "done with alloc") with Failure _ -> () done done let run () = - T.GC_metrics.basic_setup (); + OT.Gc_metrics.setup_on_main_exporter (); - T.Metrics_callbacks.register (fun () -> - T.Metrics. - [ - sum ~name:"num-sleep" ~is_monotonic:true - [ int (Atomic.get num_sleep) ]; - sum ~name:"otel.bytes-sent" ~is_monotonic:true ~unit_:"B" - [ int (Opentelemetry_client_ocurl.n_bytes_sent ()) ]; - ]); + OT.Metrics_callbacks.with_set_added_to_main_exporter (fun set -> + OT.Metrics_callbacks.add_metrics_cb set (fun () -> + OT.Metrics. + [ + sum ~name:"num-sleep" ~is_monotonic:true + [ int (Atomic.get num_sleep) ]; + sum ~name:"otel.bytes-sent" ~is_monotonic:true ~unit_:"B" + [ int (Opentelemetry_client_ocurl.n_bytes_sent ()) ]; + ])); let n_jobs = max 1 !n_jobs in Printf.printf "run %d jobs\n%!" n_jobs; @@ -101,8 +106,8 @@ let run () = Array.iter Thread.join jobs let () = - T.Globals.service_name := "t1"; - T.Globals.service_namespace := Some "ocaml-otel.test"; + OT.Globals.service_name := "t1"; + OT.Globals.service_namespace := Some "ocaml-otel.test"; let ts_start = Unix.gettimeofday () in let debug = ref false in diff --git a/tests/bin/emit1_eio.ml b/tests/bin/emit1_eio.ml index 2cba3203..f199ac23 100644 --- a/tests/bin/emit1_eio.ml +++ b/tests/bin/emit1_eio.ml @@ -82,12 +82,14 @@ let run_job clock _job_id iterations : unit = let run env proc iterations () : unit = OT.Gc_metrics.setup_on_main_exporter (); - OT.Metrics_callbacks.register (fun () -> - OT.Metrics. - [ - sum ~name:"num-sleep" ~is_monotonic:true - [ int (Atomic.get num_sleep) ]; - ]); + OT.Metrics_callbacks.( + with_set_added_to_main_exporter (fun set -> + add_metrics_cb set (fun () -> + OT.Metrics. + [ + sum ~name:"num-sleep" ~is_monotonic:true + [ int (Atomic.get num_sleep) ]; + ]))); let n_jobs = max 1 !n_jobs in Printf.printf "run %d jobs in proc %d\n%!" n_jobs proc; @@ -172,4 +174,4 @@ let () = Eio.Fiber.fork ~sw @@ fun () -> Eio.Domain_manager.run dm (run env proc !n_iterations) done)); - Opentelemetry.Collector.remove_backend () ~on_done:ignore + Opentelemetry.Main_exporter.remove () ~on_done:ignore