feat(database): server_traffic table for per-minute traffic rollups

One row per server and minute (packets, bytes, resends, HTTP requests, errors,
bytes and latency percentiles), written in batches and read summed into
buckets for the longer chart ranges.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-27 08:50:54 -05:00
parent bc849fed98
commit 2386479e52
11 changed files with 185 additions and 1 deletions

View File

@@ -222,6 +222,9 @@ class TestSQLDatabase : public GameDatabase {
void InsertHealthSample(const HealthSample& sample) override {}
std::vector<HealthSample> GetHealthSamples(int64_t from, int64_t to, int64_t bucketSeconds) override { return {}; }
uint32_t PruneHealthSamples(int64_t beforeTime) override { return 0; }
void InsertTrafficMinutes(const std::vector<TrafficMinute>& minutes) override {}
std::vector<TrafficMinute> GetTrafficMinutes(int64_t from, int64_t to, int64_t bucketSeconds) override { return {}; }
uint32_t PruneTrafficMinutes(int64_t beforeTime) override { return 0; }
void InsertInstanceSamples(const std::vector<InstanceSample>& samples) override {}
std::vector<InstanceSample> GetInstanceSamples(int64_t from, int64_t to, int64_t bucketSeconds, uint32_t zoneId) override { return {}; }
void InsertPositionSamples(const std::vector<PositionSample>& samples) override {}