1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-05-03 01:18:43 +02:00

task: add edge observability tables (#9307)

Adds two stat tables to store edge observability data.
This commit is contained in:
Christopher Kolstad 2025-02-14 09:48:13 +01:00 committed by GitHub
parent fa43420ab9
commit 1dad28fdb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,32 @@
exports.up = (db, cb) => {
db.runSql(`
CREATE TABLE stat_edge_observability (
instance_id TEXT NOT NULL PRIMARY KEY,
reported_at TIMESTAMP WITH TIME ZONE NOT NULL,
app_name TEXT,
started TIMESTAMP WITH TIME ZONE NOT NULL,
edge_version TEXT NOT NULL,
region TEXT,
cpu_usage NUMERIC DEFAULT 0.0,
memory_usage INTEGER DEFAULT 0,
connected_streaming_clients INTEGER NOT NULL DEFAULT 0,
connected_via TEXT,
client_features_average_latency_ms NUMERIC DEFAULT 0.0,
client_features_p99_latency_ms NUMERIC DEFAULT 0.0,
frontend_api_average_latency_ms NUMERIC DEFAULT 0.0,
frontend_api_p99_latency_ms NUMERIC DEFAULT 0.0,
upstream_features_average_latency_ms NUMERIC DEFAULT 0.0,
upstream_features_p99_latency_ms NUMERIC DEFAULT 0.0,
upstream_metrics_average_latency_ms NUMERIC DEFAULT 0.0,
upstream_metrics_p99_latency_ms NUMERIC DEFAULT 0.0,
upstream_edge_average_latency_ms NUMERIC DEFAULT 0.0,
upstream_edge_p99_latency_ms NUMERIC DEFAULT 0.0
);
CREATE INDEX edge_observability_connected_via_idx ON stat_edge_observability(connected_via) WHERE connected_via IS NOT NULL;
CREATE INDEX edge_observability_app_name_idx ON stat_edge_observability(app_name) WHERE app_name IS NOT NULL;
`, cb);
};
exports.down = (db, cb) => {
db.runSql(`DROP TABLE IF EXISTS stat_edge_observability;`, cb);
};

View File

@ -0,0 +1,16 @@
exports.up = (db, cb) => {
db.runSql(`CREATE TABLE stat_edge_traffic_usage(
instance_id TEXT NOT NULL,
day DATE NOT NULL,
traffic_group TEXT NOT NULL,
count BIGINT NOT NULL DEFAULT 0,
PRIMARY KEY (instance_id, day, traffic_group)
);
CREATE INDEX stat_edge_traffic_usage_traffic_group_idx ON stat_edge_traffic_usage(traffic_group);
CREATE INDEX stat_edge_traffic_usage_day_idx ON stat_edge_traffic_usage(day);
`, cb);
};
exports.down = (db, cb) => {
db.runSql(`DROP TABLE stat_edge_traffic_usage;`, cb);
};