183_ops_ingress_reject_aggregates.sql 1.2 KB

123456789101112131415161718192021222324252627
  1. SET LOCAL lock_timeout = '5s';
  2. SET LOCAL statement_timeout = '10min';
  3. CREATE TABLE IF NOT EXISTS ops_ingress_reject_aggregates (
  4. id BIGSERIAL PRIMARY KEY,
  5. bucket_start TIMESTAMPTZ NOT NULL,
  6. reject_reason VARCHAR(64) NOT NULL,
  7. route_family VARCHAR(64) NOT NULL,
  8. protocol VARCHAR(32) NOT NULL,
  9. client_ip INET NOT NULL,
  10. user_id BIGINT NOT NULL DEFAULT 0,
  11. api_key_id BIGINT NOT NULL DEFAULT 0,
  12. request_count BIGINT NOT NULL DEFAULT 0,
  13. first_seen TIMESTAMPTZ NOT NULL,
  14. last_seen TIMESTAMPTZ NOT NULL,
  15. created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  16. updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  17. CONSTRAINT ops_ingress_reject_aggregates_dimensions_unique UNIQUE
  18. (bucket_start, reject_reason, route_family, protocol, client_ip, user_id, api_key_id)
  19. );
  20. CREATE INDEX IF NOT EXISTS idx_ops_ingress_reject_aggregates_bucket
  21. ON ops_ingress_reject_aggregates (bucket_start DESC);
  22. CREATE INDEX IF NOT EXISTS idx_ops_ingress_reject_aggregates_reason_bucket
  23. ON ops_ingress_reject_aggregates (reject_reason, bucket_start DESC);
  24. CREATE INDEX IF NOT EXISTS idx_ops_ingress_reject_aggregates_ip_bucket
  25. ON ops_ingress_reject_aggregates (client_ip, bucket_start DESC);