Story: Session telemetry and plotting

Table of Contents

This page documents a story in Sprint 13. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

First real consumer of the TimescaleDB telemetry infrastructure: sample RTT + bytes per session and plot the history in My Sessions.

Status

Field Value
State DONE
Parent sprint Sprint 13
Now Completed 2026-02-22.
Waiting on None.
Next None.
Last touched 2026-02-22

Acceptance

  • Byte counters synced from live connection before logout.
  • RTT carried in ping payloads.
  • ores_iam_session_samples_tbl TimescaleDB hypertable populated on logout.
  • Protocol pair for fetching samples.
  • QChartView panel plots bytes_sent + bytes_received over time.
  • TimescaleDB skill doc updated.

Tasks

Task State Start End Description
Add plotting of session data DONE 2026-05-20 2026-02-22 Sync bytes_sent/received from live connection before logout; RTT in ping payloads; server records session_sample at each heartbeat into ores_iam_session_samples_tbl (TimescaleDB hypertable); get_session_samples_request/response (0x2072/0x2073); dynamic status-bar tooltip; QChartView/QLineSeries panel via qt6-charts vcpkg dep; TimescaleDB skill doc section.

Decisions

qt6-charts as the chart library
avoids hand-rolling and stays inside the Qt dependency story.
Hypertable from day one
query patterns are time-series; doing this without TimescaleDB would just be a slower hypertable.

Out of scope

  • Aggregated cross-session analytics.

See also

None.

Emacs 29.1 (Org mode 9.6.6)