From 5169d9f5de4d9c527f4d74a005b5b062893591fe Mon Sep 17 00:00:00 2001 From: Gabriel Moise Date: Wed, 18 Jun 2025 16:19:17 +0100 Subject: [PATCH] Tezt_cloud: Add multiple backends option --- tezt/lib_cloud/tezt_cloud.ml | 4 ++++ tezt/lib_cloud/tezt_cloud.mli | 5 +++++ tezt/tests/cloud/dal.ml | 6 ++++++ tezt/tests/cloud/tezos.ml | 28 +++++++++++++++++++++------- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/tezt/lib_cloud/tezt_cloud.ml b/tezt/lib_cloud/tezt_cloud.ml index 148ca9ad965c..bf719e83fe61 100644 --- a/tezt/lib_cloud/tezt_cloud.ml +++ b/tezt/lib_cloud/tezt_cloud.ml @@ -298,3 +298,7 @@ let register ~tags = module Prometheus = struct let get_query_endpoint ~query = Prometheus.get_query_endpoint ~query end + +module Tezt_cloud_cli = struct + let prometheus = Cli.prometheus +end diff --git a/tezt/lib_cloud/tezt_cloud.mli b/tezt/lib_cloud/tezt_cloud.mli index e45657924c78..6c1c99821d86 100644 --- a/tezt/lib_cloud/tezt_cloud.mli +++ b/tezt/lib_cloud/tezt_cloud.mli @@ -241,6 +241,11 @@ module Prometheus : sig val get_query_endpoint : query:string -> Uri.t option end +module Tezt_cloud_cli : sig + (** Equivalent to [Cli.prometheus] *) + val prometheus : bool +end + (** [register ~tags] register a set of jobs that can be used for setting requirements related to cloud scenarios. Some tags can be given for all the registered jobs. *) diff --git a/tezt/tests/cloud/dal.ml b/tezt/tests/cloud/dal.ml index 907692b317e2..b9cade79a029 100644 --- a/tezt/tests/cloud/dal.ml +++ b/tezt/tests/cloud/dal.ml @@ -2227,6 +2227,7 @@ let init_public_network cloud (configuration : configuration) let otel = Cloud.open_telemetry_endpoint cloud in let* () = Dal_node.Agent.run + ~prometheus:Tezt_cloud_cli.prometheus ?otel ~memtrace:configuration.memtrace ~event_level:`Notice @@ -2534,6 +2535,7 @@ let init_sandbox_and_activate_protocol cloud (configuration : configuration) configuration.bootstrap_dal_node_identity_file in Dal_node.Agent.run + ~prometheus:Tezt_cloud_cli.prometheus ?otel ~memtrace:configuration.memtrace ~event_level:`Notice @@ -2626,6 +2628,7 @@ let init_baker ?stake cloud (configuration : configuration) ~bootstrap teztale let otel = Cloud.open_telemetry_endpoint cloud in let* () = Dal_node.Agent.run + ~prometheus:Tezt_cloud_cli.prometheus ?otel ~memtrace:configuration.memtrace ~event_level:`Notice @@ -2775,6 +2778,7 @@ let init_producer cloud configuration ~bootstrap teztale account i slot_index else Some configuration.ignore_pkhs in Dal_node.Agent.run + ~prometheus:Tezt_cloud_cli.prometheus ?otel ~memtrace:configuration.memtrace ~event_level:`Notice @@ -2848,6 +2852,7 @@ let init_observer cloud configuration ~bootstrap teztale ~topic i agent = let otel = Cloud.open_telemetry_endpoint cloud in let* () = Dal_node.Agent.run + ~prometheus:Tezt_cloud_cli.prometheus ?otel ~memtrace:configuration.memtrace ~event_level:`Notice @@ -3626,6 +3631,7 @@ let on_new_level t level ~metadata = (* Invariant: Option.get don't fail because t.configuration.dal is true *) let dal_node = baker_to_reconnect.dal_node |> Option.get in Dal_node.Agent.run + ~prometheus:Tezt_cloud_cli.prometheus ?otel:t.otel ~memtrace:t.configuration.memtrace ~ppx_profiling:t.configuration.ppx_profiling diff --git a/tezt/tests/cloud/tezos.ml b/tezt/tests/cloud/tezos.ml index e95cb940ead9..4302a7d01bb9 100644 --- a/tezt/tests/cloud/tezos.ml +++ b/tezt/tests/cloud/tezos.ml @@ -36,20 +36,33 @@ module Env = struct | Some (_ :: _) -> add Dal_node.ignore_topics_environment_variable "yes" env | _ -> env - let ppx_profiler_env enable env = + let default_profiling_verbosity = "Debug" + + let default_profiling_backends = ["txt"; "json"] + + let ppx_profiler_env ?prometheus ?otel enable env = + let cons_if b v l = if b then v :: l else l in + let profiling_backends = + default_profiling_backends + |> cons_if (Option.is_some otel) "opentelemetry" + |> cons_if (Option.is_some prometheus) "prometheus" + in env - |> may_add enable "PROFILING" "Debug" - |> may_add enable "PROFILING_BACKENDS" "txt" + |> may_add enable "PROFILING" default_profiling_verbosity + |> may_add + enable + "PROFILING_BACKENDS" + (String.concat ";" profiling_backends) let initialize_env ~memtrace ~memtrace_output_filename - ~disable_shard_validation ~otel_endpoint ~service_name ~ignore_pkhs - ~ppx_profiling = + ~disable_shard_validation ~prometheus ~otel_endpoint ~service_name + ~ignore_pkhs ~ppx_profiling = empty |> memtrace_env memtrace memtrace_output_filename |> otel_env otel_endpoint service_name |> disable_shard_validation_env disable_shard_validation |> ignore_topics_env ignore_pkhs - |> ppx_profiler_env ppx_profiling + |> ppx_profiler_env ?prometheus ?otel:otel_endpoint ppx_profiling end let may_add_profiling_to_env ~ppx_profiling = function @@ -283,7 +296,7 @@ module Dal_node = struct ~l1_node_endpoint:(Node.as_rpc_endpoint node) agent - let run ?otel ?(memtrace = false) ?event_level + let run ?prometheus ?otel ?(memtrace = false) ?event_level ?(disable_shard_validation = false) ?ignore_pkhs ?(ppx_profiling = false) dal_node = let service_name = name dal_node in @@ -295,6 +308,7 @@ module Dal_node = struct ~memtrace ~memtrace_output_filename ~disable_shard_validation + ~prometheus ~otel_endpoint:otel ~service_name ~ignore_pkhs -- GitLab