ray/release/alerts/long_running_tests.py

40 lines
1.3 KiB
Python

import datetime
from typing import Dict, Optional
def handle_result(created_on: datetime.datetime, category: str,
test_suite: str, test_name: str, status: str, results: Dict,
artifacts: Dict, last_logs: str) -> Optional[str]:
assert test_suite == "long_running_tests"
# elapsed_time = results.get("elapsed_time", 0.)
last_update_diff = results.get("last_update_diff", float("inf"))
if test_name in [
"actor_deaths",
"many_actor_tasks",
"many_drivers",
"many_tasks",
"many_tasks_serialized_ids",
"node_failures",
"object_spilling_shuffle",
]:
# Core tests
target_update_diff = 120
elif test_name in ["apex", "impala", "many_ppo", "pbt"]:
# Tune/RLLib style tests
target_update_diff = 360
elif test_name in ["serve", "serve_failure"]:
# Serve tests have workload logs every five minutes.
# Leave up to 60 seconds overhead.
target_update_diff = 360
else:
return None
if last_update_diff > target_update_diff:
return f"Last update to results json was too long ago " \
f"({last_update_diff:.2f} > {target_update_diff})"
return None