mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-12 06:06:10 +00:00
perf(insights): route daily chart fetches through rollup buckets
The Insights trends row fires three parallel GET /api/measurements?type=…&aggregate=daily&limit=5000 requests on mount (BP_SYS / BP_DIA / WEIGHT). The legacy date_trunc path scanned the measurements table each time — ~3 s per call on Marc's account. Add a `source=rollup` opt-in on the listMeasurements schema. When set alongside `aggregate=daily` the route reads from measurement_rollups DAY buckets instead, swapping a full-table scan for a small indexed read against the ~5 k-row rollup table. Cumulative HK metrics get mean * count to reconstruct the daily SUM the chart expects. The chart-data client opts in for every windowDays > 7 fetch so the trends row + every sub-page chart benefit. When the rollup returns zero buckets for the requested window the route falls through to the live aggregate so brand-new accounts still render their first chart correctly.
This commit is contained in:
1 parent
6884995995
commit
d2bad6943c
5 files changed
+182
-1
No files matched your search
@@ -2492,6 +2492,12 @@ paths:
|
||||
- weekly
|
||||
- monthly
|
||||
type: string
|
||||
- in: query
|
||||
name: source
|
||||
schema:
|
||||
enum:
|
||||
- rollup
|
||||
type: string
|
||||
responses:
|
||||
"200":
|
||||
content:
|
||||
|
||||
Reference in new issue
Block a user