diff --git a/webui/backend/ray_ui.py b/webui/backend/ray_ui.py index 202b419762178..2e84d1f1fd7f2 100644 --- a/webui/backend/ray_ui.py +++ b/webui/backend/ray_ui.py @@ -50,7 +50,7 @@ async def hgetall_as_dict(redis_conn, key): # Cache information about the local schedulers. local_schedulers = {} -errors = collections.defaultdict(list) +errors = [] def duration_to_string(duration): """Format a duration in seconds as a string. @@ -145,11 +145,13 @@ async def listen_for_errors(redis_ip_address, redis_port): result = await data_conn.execute("hget", error_key, "message") result = result.decode("ascii") # TODO: Maybe also get rid of coloring? - errors[worker].append(result) + errors.append({"worker_id": worker, + "task_id": task, + "error": result}) index += 1 async def handle_get_errors(websocket): - """Renders error messages""" + """Renders error messages""" await websocket.send(json.dumps(errors)) node_info = collections.OrderedDict() diff --git a/webui/src/ray-app.html b/webui/src/ray-app.html index 60a748b861f17..8daf6dbcf0f5a 100644 --- a/webui/src/ray-app.html +++ b/webui/src/ray-app.html @@ -75,6 +75,7 @@ Objects Tasks Events + Errors Timeline Recent Tasks @@ -100,6 +101,7 @@ + diff --git a/webui/src/ray-errors.html b/webui/src/ray-errors.html new file mode 100644 index 0000000000000..c057424fb11d0 --- /dev/null +++ b/webui/src/ray-errors.html @@ -0,0 +1,56 @@ + + + + + + + + + +