Files
sub2api/backend/migrations/183_ops_ingress_reject_aggregates.sql
T

28 lines
1.2 KiB
SQL
Raw Normal View History

SET LOCAL lock_timeout = '5s';
SET LOCAL statement_timeout = '10min';
CREATE TABLE IF NOT EXISTS ops_ingress_reject_aggregates (
id BIGSERIAL PRIMARY KEY,
bucket_start TIMESTAMPTZ NOT NULL,
reject_reason VARCHAR(64) NOT NULL,
route_family VARCHAR(64) NOT NULL,
protocol VARCHAR(32) NOT NULL,
client_ip INET NOT NULL,
user_id BIGINT NOT NULL DEFAULT 0,
api_key_id BIGINT NOT NULL DEFAULT 0,
request_count BIGINT NOT NULL DEFAULT 0,
first_seen TIMESTAMPTZ NOT NULL,
last_seen TIMESTAMPTZ NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT ops_ingress_reject_aggregates_dimensions_unique UNIQUE
(bucket_start, reject_reason, route_family, protocol, client_ip, user_id, api_key_id)
);
CREATE INDEX IF NOT EXISTS idx_ops_ingress_reject_aggregates_bucket
ON ops_ingress_reject_aggregates (bucket_start DESC);
CREATE INDEX IF NOT EXISTS idx_ops_ingress_reject_aggregates_reason_bucket
ON ops_ingress_reject_aggregates (reject_reason, bucket_start DESC);
CREATE INDEX IF NOT EXISTS idx_ops_ingress_reject_aggregates_ip_bucket
ON ops_ingress_reject_aggregates (client_ip, bucket_start DESC);