Commit Graph
26 Commits
Author SHA1 Message Date
MrAlders0n 98006a9364 feat(stats): serve historical stats from hourly rollups
Stats endpoints read hourly rollup tables filled once per closed hour by one
advisory-locked task, instead of materialized views that re-scanned every
observation on each refresh. IATA-set tables give exact distinct counts for any
IATA set or region. Cleanup holds raw rows for unrolled hours (up to 24h).

Adds /stats/series; ingest keeps packet observation counts, observer last IATA,
channel message counts and trace tag summaries. 001_baseline.sql is rewritten,
so pre-release 2.0 databases must be recreated. See docs/historical-stats.md.
2026-10-02 07:43:56 -04:00
MrAlders0n 91b4b457b5 perf(db): resolve packet endpoints at read time (#163)
Storing a full candidate snapshot on every observation was the wrong call. The same node lists got copied thousands of times, about 22 GB on prod. Resolve endpoints live like path hops and drop the column.
2026-09-25 13:59:07 -04:00
MrAlders0n 3dee2098ba perf(db): batch retention deletes and tune autovacuum (#162)
Default packets.retention drops to 7 days.
2026-09-25 11:38:04 -04:00
n30nex dab228e9bb feat(logging): configure levels and structured runtime output (#144)
* feat(logging): configure levels and structured runtime output

* fix(logging): bound request-derived log fields

* fix(logging): retain malformed IATA source attributes safely

* test(logging): capture structured REST rate-limit records
2026-09-19 10:36:26 -04:00
n30nex 85b1c3961d feat(packets): populate advert summaries in history and live events (#143) 2026-09-18 06:18:19 -04:00
MrAlders0n b66573b3b7 feat(observers): per-observer activity endpoint (#135) 2026-09-10 06:53:00 -04:00
n30nex 04fc0266d1 fix(packets): preserve captured endpoint names in history (#128) 2026-09-09 18:45:52 -04:00
MrAlders0n b5ab592534 fix: re-land IATA paging fix on Go 1.26.6 (#108) 2026-09-03 21:54:58 -04:00
Ded 137e3d265a Revert "fix: keep IATA packet paging alive past short pages"
This reverts commit ddc6dc1ca9.
2026-08-20 08:35:23 -07:00
MrAlders0n ddc6dc1ca9 fix: keep IATA packet paging alive past short pages
A packet repeats once per observer in the site scan, so grouping can
collapse a scan_depth window to fewer packets than the page asked for.
That short page set hasMore=false and stranded all older history: YOW
dead-ended after 45 packets, ~6 minutes back.

Report scan saturation and the floor the scans covered, and treat a
saturated short page as more data. Clamp the cursor to the floor so
paging on cannot skip the band the scan never read.
2026-08-19 16:21:26 -07:00
Enot (ded) Skelly ae0669ccbe enrich packet observations 2026-07-27 09:41:11 -07:00
MrAlders0n d8ff7d0542 track payload_type on observations and serve the breakdown from a matview 2026-07-24 12:07:05 -07:00
Enot (ded) Skelly b33ebc007b feat: add plural value filter params
closes #76
2026-07-23 14:26:16 -07:00
Enot (ded) Skelly f07edf9fb6 feat: include source and destination in path data where available
realted to #85
2026-07-23 09:44:27 -07:00
Enot (ded) Skelly 7a58a07bbd fix: trace packet paths
closes #86
2026-07-23 09:20:00 -07:00
MrAlders0n 30772da2c5 perf(packets): drive IATA-filtered list from the observation index
Quiet sites probed hundreds of thousands of packets to fill a page.
Walk idx_observations_iata_heard per requested site and dedup instead.
Filtered lists now order by site-local recency; the cursor follows.
2026-07-20 09:07:05 -07:00
MrAlders0n 508337b8ca perf(db): pass IATA filters as bpchar[] instead of CSV
text[] from string_to_array can't match the CHAR(3) indexes and hides
the values from the planner. Handlers already have a slice; stop
joining to CSV in the store layer and pass a typed array everywhere.
2026-07-20 09:07:05 -07:00
Enot (ded) Skelly a14a0ac658 feat(paths): included resolved path in ws observation events
changes to shared helper for resolve paths
2026-07-02 09:39:10 -07:00
Enot (ded) Skelly 2333468f92 feat(traces): include raw path hashes as well as resolved
closes #43
2026-06-09 08:31:04 -07:00
Enot (ded) Skelly cda4905815 docs: update SPDX license lines 2026-06-08 16:08:39 -07:00
Enot (ded) Skelly 14cb9e6e2d docs: add APGL3 license 2026-06-08 15:46:01 -07:00
Enot (ded) Skelly f0c57fde45 add traces endpoint 2026-06-05 15:20:53 -07:00
Enot (ded) Skelly 588b3705c9 add packet and message backfill api
/packets/backfill, /messages/backfill

both take afterId and limit. the id is the message or
packet observation last received to backfill after
2026-06-05 12:05:24 -07:00
Enot (ded) Skelly fdbcad28d8 add decrypted channel msg to packet details
also caught a bug where we never set the packet as
being decrypted even when it had been
2026-06-05 11:06:02 -07:00
Enot (ded) Skelly a943660778 rename to beacon 2026-06-05 08:10:43 -07:00
Enot (ded) Skelly 3f4c26b7a5 refactor db package
layout and organization only
2026-06-04 13:50:33 -07:00