Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions asap-tools/experiments/experiment_run_e2e.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,12 @@ def main(cfg: DictConfig):
http_port=http_port,
remote_write_port=args.remote_write_base_port,
)
# For precompute mode the query engine IS the Prometheus remote-write
# target (port remote_write_base_port). Prometheus is already running
# and retrying writes against that port, so block until the query
# engine's HTTP server is accepting connections before proceeding.
if args.streaming_engine == "precompute":
query_engine_service.wait_until_ready()

# Start system exporters (node_exporter, blackbox_exporter, cadvisor)
system_exporters_service.start(cfg.experiment_params)
Expand Down
17 changes: 9 additions & 8 deletions asap-tools/experiments/experiment_utils/services/query_engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -524,16 +524,17 @@ def _is_healthy_bare_metal(self) -> bool:
def _is_healthy_containerized(self) -> bool:
"""Check if Rust QueryEngine is healthy using containerized deployment."""
try:
# Check if container is running
result = subprocess.run(
["docker", "inspect", "-f", "{{.State.Running}}", self.container_name],
capture_output=True,
text=True,
check=True,
cmd = f"docker inspect -f '{{{{.State.Running}}}}' {self.container_name}"
result = self.provider.execute_command(
node_idx=self.node_offset,
cmd=cmd,
cmd_dir=None,
nohup=False,
popen=False,
ignore_errors=True,
)
assert isinstance(result, subprocess.CompletedProcess)
return result.stdout.strip() == "true"
except subprocess.CalledProcessError:
return False
except Exception:
return False

Expand Down
Loading