diff --git a/tezt/lib_cloud/cloud.ml b/tezt/lib_cloud/cloud.ml index 48292b10c1864a9540dfdf37f5f3eb2900a89210..3f41517cb5bb4711bbe41425938c9f4cb4b4d1e4 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 88554f00a01978bc94a65ff6b3773442d3aa2078..3ee2198d10410f64e0a5f745fa8a09e1389e7a14 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