feat(dashboard): Monitors widget carries uptime; Uptime / SLA retired (#5250)
The Monitors widget opens with a verdict ("1 of 5 monitors down."), then one
row per monitor under a single header: latency and uptime over 24h, 7d and
30d, down monitors first with why and since when, the name linking to the
monitor. Counts follow the type filter. Problems always show; the limit
trims only the healthy rest ("+N more up").
Uptime / SLA (uptime_summary) repeated those numbers per host; migration
0033 moves dashboards onto Monitors. Shared widget styles (.w-verdict,
.w-table, .w-sub, .w-more) carry the widget-shape ruling for the widgets
that follow.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -35,11 +35,9 @@ def test_the_recommended_layout_fills_rows_without_overlap():
|
||||
|
||||
|
||||
def test_the_recommended_layout_skips_what_is_not_enabled():
|
||||
keys = [i["key"] for i in recommended_layout({})]
|
||||
assert keys == ["status_overview", "hosts_overview", "monitors", "uptime_summary"]
|
||||
# uptime no longer fits beside the monitors, so it starts the next row
|
||||
items = recommended_layout({})
|
||||
assert (items[3]["x"], items[3]["y"]) == (0, 10)
|
||||
assert [i["key"] for i in items] == ["status_overview", "hosts_overview", "monitors"]
|
||||
assert [(i["x"], i["y"]) for i in items] == [(0, 0), (0, 3), (6, 3)]
|
||||
|
||||
|
||||
def test_overview_alerts_put_the_breaching_first():
|
||||
@@ -96,9 +94,9 @@ async def test_the_hosts_widget_shows_load(app):
|
||||
|
||||
|
||||
async def test_a_widget_polls_at_its_own_pace(app):
|
||||
defn = {**WIDGET_REGISTRY["uptime_summary"]}
|
||||
defn = {"poll": True, "poll_seconds": 300, "detail_url": "/x"}
|
||||
item = SimpleNamespace(db=SimpleNamespace(id=7, grid_x=0, grid_y=0, grid_w=6, grid_h=5),
|
||||
title="Uptime", defn=defn, hx_url="/uptime/widget")
|
||||
title="Slow", defn=defn, hx_url="/slow/widget")
|
||||
async with app.test_request_context("/"):
|
||||
page = await render_template("dashboard/_grid_item.html", item=item, can_edit=False, poll_interval=30)
|
||||
assert "every 300s" in page
|
||||
|
||||
Reference in New Issue
Block a user