From 1b1bde8aec993e5e9b3246569cc89df3f6a2347c Mon Sep 17 00:00:00 2001 From: David Leek Date: Fri, 9 Feb 2024 09:58:58 +0100 Subject: [PATCH] chore: add migration for traffic data collection (#6171) ## About the changes Adds migration for creating table `stat_traffic_usage`. This table primary-keys on day, traffic_group, and status_code_series. Adds individual indexes for day, traffic_group, and status_code_series. Traffic group is the grouping for API endpoints for which traffic is counted. status_code_series is 200/202 etc = 200, 304 etc = 300 --- ...8123212-create-stat-traffic-usage-table.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/migrations/20240208123212-create-stat-traffic-usage-table.js diff --git a/src/migrations/20240208123212-create-stat-traffic-usage-table.js b/src/migrations/20240208123212-create-stat-traffic-usage-table.js new file mode 100644 index 0000000000..6fe3aefbac --- /dev/null +++ b/src/migrations/20240208123212-create-stat-traffic-usage-table.js @@ -0,0 +1,30 @@ + +exports.up = (db, callback) => { + db.runSql( + ` + CREATE TABLE IF NOT EXISTS stat_traffic_usage( + day DATE NOT NULL, + traffic_group TEXT NOT NULL, + status_code_series INT NOT NULL, + count BIGINT NOT NULL DEFAULT 0, + PRIMARY KEY(day, traffic_group, status_code_series) + ); + CREATE INDEX IF NOT EXISTS stat_traffic_usage_day_idx ON stat_traffic_usage (day); + CREATE INDEX IF NOT EXISTS stat_traffic_usage_traffic_group_idx ON stat_traffic_usage (traffic_group); + CREATE INDEX IF NOT EXISTS stat_traffic_usage_status_code_series_idx ON stat_traffic_usage (status_code_series); + `, + callback, + ); +}; + +exports.down = (db, callback) => { + db.runSql( + ` + DROP INDEX IF EXISTS stat_traffic_usage_day_idx; + DROP INDEX IF EXISTS stat_traffic_usage_traffic_group_idx; + DROP INDEX IF EXISTS stat_traffic_usage_status_code_series_idx; + DROP TABLE IF EXISTS stat_traffic_usage; + `, + callback, + ); +};