From c3f8d0133e20836ca2fab8d7a011f4d397af1eb6 Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Thu, 19 Jun 2025 15:05:59 +0200 Subject: [PATCH 1/2] Tezt/Cloud: fix opentelemetry agent - the health service is actually at the root URI - the prometheus metrics are enabled by default, and this syntax has been deprecated. --- tezt/lib_cloud/otel.ml | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/tezt/lib_cloud/otel.ml b/tezt/lib_cloud/otel.ml index e714e4fedf0f..0417fb20a0aa 100644 --- a/tezt/lib_cloud/otel.ml +++ b/tezt/lib_cloud/otel.ml @@ -26,9 +26,7 @@ receivers: http: endpoint: "0.0.0.0:55681" -exporters: - -%s +exporters:%s processors: batch: # Batch processor to optimize telemetry processing @@ -41,16 +39,12 @@ service: processors: [batch] exporters: [otlp/jaeger] - telemetry: - metrics: - address: "0.0.0.0:8888" # Optional: Expose metrics for the collector itself (Prometheus scrapeable) - extensions: - health_check extensions: health_check: - endpoint: "localhost:13133" + endpoint: "0.0.0.0:13133" |} jaeger @@ -87,14 +81,7 @@ let run ~jaeger = let run () = Process.spawn "curl" - [ - "-s"; - "-o"; - "/dev/null"; - "-w"; - "%{http_code}"; - "http://localhost:13133/healthz"; - ] + ["-s"; "-o"; "/dev/null"; "-w"; "%{http_code}"; "http://localhost:13133"] in let* _ = Env.wait_process ~is_ready ~run () in Lwt.return () -- GitLab From 0d3b106204016cffc011b8ca1fc81dec2ae94107 Mon Sep 17 00:00:00 2001 From: Pierrick Couderc Date: Mon, 23 Jun 2025 10:37:45 +0200 Subject: [PATCH 2/2] Tezt/Cloud: add Jaeger to the dashboard in opentelemetry is enabled --- tezt/lib_cloud/web.ml | 19 ++++++++++++++++++- tezt/lib_cloud/website/index.html.jingoo | 6 ++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/tezt/lib_cloud/web.ml b/tezt/lib_cloud/web.ml index 7698e173b1ff..12fbaea06dbb 100644 --- a/tezt/lib_cloud/web.ml +++ b/tezt/lib_cloud/web.ml @@ -15,6 +15,7 @@ type t = { dir : string; monitoring : bool; prometheus : bool; + opentelemetry : bool; mutable services : service list; } @@ -146,6 +147,12 @@ let jingoo_template t agents = (if Env.monitoring then List.map (monitoring_jingo_template agents) agents else []) ); + ( "opentelemetry", + Tobj + [ + ("activated", Tbool Env.open_telemetry); + ("uri", Tstr (Format.asprintf "http://%s:16686" (domain agents))); + ] ); ("agents", Tlist (List.map agent_jingo_template agents)); ("services", Tlist (List.map service_jingo_template t.services)); ] @@ -180,6 +187,7 @@ let run () = let port = Env.website_port in let prometheus = Env.prometheus in let monitoring = Env.monitoring in + let opentelemetry = Env.open_telemetry in let stop, to_stop = Lwt.task () in let logger next_handler request = let meth = Dream.method_to_string (Dream.method_ request) in @@ -230,7 +238,16 @@ let run () = Dream.html content); ] in - Lwt.return {process; to_stop; dir; monitoring; prometheus; services = []} + Lwt.return + { + process; + to_stop; + dir; + monitoring; + prometheus; + opentelemetry; + services = []; + } let start ~agents = let* t = run () in diff --git a/tezt/lib_cloud/website/index.html.jingoo b/tezt/lib_cloud/website/index.html.jingoo index f8e781a459d3..458a6be5c8a4 100644 --- a/tezt/lib_cloud/website/index.html.jingoo +++ b/tezt/lib_cloud/website/index.html.jingoo @@ -83,6 +83,12 @@
  • NetData monitoring disabled. Use --monitoring to activate it.
  • {%- endif %} + {%- if opentelemetry.activated %} +
  • Jaeger (Opentelemetry trace observer)
  • + {%- else %} +
  • Opentelemetry disabled. Use --open-telemetry to activate it.
  • + {%- endif %} + {%- for service in services %}
  • {{ service.title }}
  • {%- endfor %} -- GitLab