From 459c8dede6bcb68a7f53cd88d245bae3cdfeb287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Thir=C3=A9?= Date: Sat, 14 Dec 2024 15:17:32 +0100 Subject: [PATCH] Tezt/Cloud: Prometheus process exporter --- tezt/lib_cloud/cloud.ml | 29 ++++++++++++++++++++ tezt/lib_cloud/dockerfiles/debian.Dockerfile | 2 ++ 2 files changed, 31 insertions(+) diff --git a/tezt/lib_cloud/cloud.ml b/tezt/lib_cloud/cloud.ml index 48292b10c186..3f41517cb5bb 100644 --- a/tezt/lib_cloud/cloud.ml +++ b/tezt/lib_cloud/cloud.ml @@ -229,6 +229,35 @@ let orchestrator ?alert_collection deployement f = let* alert_manager = Alert_manager.run collection Env.alert_handlers in Lwt.return (Some prometheus, Some alert_manager) in + let* () = + agents + |> List.map (fun agent -> + let port = Agent.next_available_port agent in + let _ = + Agent.docker_run_command + agent + "prometheus-process-exporter" + [ + "-web.listen-address"; + Format.asprintf ":%d" port; + "--procnames"; + "octez-node,octez-dal-node,main.exe"; + ] + |> Process.check + in + let app_name = + Format.asprintf "%s-prometheus-process-exporter" (Agent.name agent) + in + let target = + let address = agent |> Agent.runner |> Runner.address in + Prometheus.{address; port; app_name} + in + match prometheus with + | None -> Lwt.return_unit + | Some prometheus -> + Prometheus.add_job prometheus ~name:app_name [target]) + |> Lwt.join + in let* grafana = if Env.grafana then let* grafana = Grafana.run () in diff --git a/tezt/lib_cloud/dockerfiles/debian.Dockerfile b/tezt/lib_cloud/dockerfiles/debian.Dockerfile index 88554f00a019..3ee2198d1041 100644 --- a/tezt/lib_cloud/dockerfiles/debian.Dockerfile +++ b/tezt/lib_cloud/dockerfiles/debian.Dockerfile @@ -19,6 +19,8 @@ RUN apt-get update && apt-get install -y \ docker.io docker-cli screen file \ # iproute2 installs traffic control tooling iproute2 \ + # Can be used to monitor process individually + prometheus-process-exporter \ # emacs can be useful for debugging emacs \ # wget can be used to import snapshots -- GitLab