Skip to content

v2.65 (07.06.2026)

Choose a tag to compare

@Vadims06 Vadims06 released this 13 Jul 09:47

Topolograph Release Notes v2.65

Features

API: new GET /api/events/{graph_time}/adjacency/timeline endpoint
Returns adjacency up/down events already grouped into chronological time waves, so a client can narrate a network incident without post-processing hundreds of raw events. Grouping is computed server-side.

  • Waves are split by inter-event gaps: a new wave starts when the gap to the next event exceeds TIMELINE_GAP_MULTIPLIER * median_gap_sec (median is robust to bursts). median_gap_sec and the multiplier are echoed in the response.
  • Each wave is characterised with start_ts, end_ts, duration_sec, event_count, density, distinct_devices, trigger_device, pattern and converged.
  • start_ts/end_ts are ISO 8601 with Z (e.g. 2025-05-10T17:08:17.707000Z), the same format as the start_time/end_time query params, so a client can re-query the existing /adjacency endpoint for a wave's individual events.

pattern classifies the wave by device state, mirroring the graph-level status from /graph/{graph_time}/status:

pattern Meaning Example Related graph status
outage At least one device is left down at the end of the wave (fell and did not come back). R1 down (no later up); R1 down, R2 down→up (R1 still down) critical (single host down)
flap Everything that went down came back up within the wave. Independent of device count. R1 down→up; R1..R100 each down→up warning (host down then up)
up Only up events, nothing went down in the wave (recovery or brand-new adjacency). R1 up, R2 up ok (up-only events)

converged is true when every device left down in the wave recovers later on the timeline (this or any later wave).

API: GET /api/graph/{graph_time}/status now includes top_unstable_devices
A top-N list of {device, event_count} sorted descending, answering "which device is worst" without a separate endpoint.

Fixes

Event time-range query is now inclusive at both ends
Re-querying a wave's [start_ts, end_ts] time window now returns exactly that wave's events (no boundary events lost). Previously, events at the exact end timestamp were excluded.

all_host_up_down_events is now returned in chronological order
GET /api/events/{graph_time}/adjacency sorts host up/down events by @timestamp in the DB query (previously returned in insertion order).

Configuration

  • TIMELINE_GAP_MULTIPLIER (default 5): the multiplier used to detect wave boundaries. Override via the environment variable of the same name.