Files
Aether/crates/aether-data/schema/generated/sqlite/baseline/004_proxy_nodes.sql
2026-05-08 22:03:17 +08:00

85 lines
3.3 KiB
SQL

-- Generated by aether-data-schema from schema/logical/*.toml.
-- Do not edit generated files directly; edit logical schema or explicit overrides instead.
CREATE TABLE IF NOT EXISTS proxy_nodes (
id TEXT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
ip TEXT NOT NULL,
port INTEGER NOT NULL,
region TEXT,
status TEXT NOT NULL DEFAULT 'online',
registered_by TEXT,
last_heartbeat_at INTEGER,
heartbeat_interval INTEGER NOT NULL DEFAULT 30,
active_connections INTEGER NOT NULL DEFAULT 0,
total_requests INTEGER NOT NULL DEFAULT 0,
avg_latency_ms REAL,
is_manual INTEGER NOT NULL DEFAULT 0,
proxy_url TEXT,
proxy_username TEXT,
proxy_password TEXT,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL,
remote_config TEXT,
config_version INTEGER NOT NULL DEFAULT 0,
hardware_info TEXT,
estimated_max_concurrency INTEGER,
tunnel_mode INTEGER NOT NULL DEFAULT 0,
tunnel_connected INTEGER NOT NULL DEFAULT 0,
tunnel_connected_at INTEGER,
failed_requests INTEGER NOT NULL DEFAULT 0,
dns_failures INTEGER NOT NULL DEFAULT 0,
stream_errors INTEGER NOT NULL DEFAULT 0,
proxy_metadata TEXT
);
CREATE TABLE IF NOT EXISTS proxy_node_events (
id INTEGER PRIMARY KEY AUTOINCREMENT,
node_id TEXT NOT NULL,
event_type TEXT NOT NULL,
detail TEXT,
event_metadata TEXT,
created_at INTEGER NOT NULL
);
CREATE TABLE IF NOT EXISTS proxy_node_metrics_1m (
node_id TEXT NOT NULL,
bucket_start_unix_secs INTEGER NOT NULL,
samples INTEGER NOT NULL DEFAULT 0,
uptime_samples INTEGER NOT NULL DEFAULT 0,
active_connections_sum INTEGER NOT NULL DEFAULT 0,
active_connections_max INTEGER NOT NULL DEFAULT 0,
heartbeat_rtt_ms_sum INTEGER NOT NULL DEFAULT 0,
heartbeat_rtt_ms_max INTEGER NOT NULL DEFAULT 0,
connect_errors_delta INTEGER NOT NULL DEFAULT 0,
disconnects_delta INTEGER NOT NULL DEFAULT 0,
error_events_delta INTEGER NOT NULL DEFAULT 0,
ws_in_bytes_delta INTEGER NOT NULL DEFAULT 0,
ws_out_bytes_delta INTEGER NOT NULL DEFAULT 0,
ws_in_frames_delta INTEGER NOT NULL DEFAULT 0,
ws_out_frames_delta INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY (node_id, bucket_start_unix_secs)
);
CREATE INDEX IF NOT EXISTS idx_proxy_node_metrics_1m_bucket_start ON proxy_node_metrics_1m (bucket_start_unix_secs);
CREATE TABLE IF NOT EXISTS proxy_node_metrics_1h (
node_id TEXT NOT NULL,
bucket_start_unix_secs INTEGER NOT NULL,
samples INTEGER NOT NULL DEFAULT 0,
uptime_samples INTEGER NOT NULL DEFAULT 0,
active_connections_sum INTEGER NOT NULL DEFAULT 0,
active_connections_max INTEGER NOT NULL DEFAULT 0,
heartbeat_rtt_ms_sum INTEGER NOT NULL DEFAULT 0,
heartbeat_rtt_ms_max INTEGER NOT NULL DEFAULT 0,
connect_errors_delta INTEGER NOT NULL DEFAULT 0,
disconnects_delta INTEGER NOT NULL DEFAULT 0,
error_events_delta INTEGER NOT NULL DEFAULT 0,
ws_in_bytes_delta INTEGER NOT NULL DEFAULT 0,
ws_out_bytes_delta INTEGER NOT NULL DEFAULT 0,
ws_in_frames_delta INTEGER NOT NULL DEFAULT 0,
ws_out_frames_delta INTEGER NOT NULL DEFAULT 0,
PRIMARY KEY (node_id, bucket_start_unix_secs)
);
CREATE INDEX IF NOT EXISTS idx_proxy_node_metrics_1h_bucket_start ON proxy_node_metrics_1h (bucket_start_unix_secs);