Files
Denozordec 6a1498bf80
Build, Test, and Push CFDM Docker Image / test (push) Successful in 4m0s
Build, Test, and Push CFDM Docker Image / build-and-push (push) Successful in 2m13s
Build, Test, and Push CFDM Docker Image / update-wiki (push) Failing after 6s
Build, Test, and Push CFDM Docker Image / create-release (push) Has been skipped
feat: Implement load balancing and health check features for service groups, including DNS-based load balancing modes and health check configurations, enhancing service reliability and performance monitoring
2026-06-25 18:24:00 +07:00

40 lines
2.1 KiB
SQL

ALTER TABLE services ADD COLUMN lb_weight INTEGER NOT NULL DEFAULT 1;
ALTER TABLE services ADD COLUMN lb_priority INTEGER NOT NULL DEFAULT 1;
ALTER TABLE service_groups ADD COLUMN lb_mode TEXT NOT NULL DEFAULT 'round_robin';
ALTER TABLE service_groups ADD COLUMN health_check_enabled INTEGER NOT NULL DEFAULT 0;
ALTER TABLE service_groups ADD COLUMN health_check_type TEXT NOT NULL DEFAULT 'tcp';
ALTER TABLE service_groups ADD COLUMN health_check_port INTEGER;
ALTER TABLE service_groups ADD COLUMN health_check_path TEXT;
ALTER TABLE service_groups ADD COLUMN health_check_expected_status INTEGER;
ALTER TABLE service_groups ADD COLUMN health_check_interval_sec INTEGER NOT NULL DEFAULT 30;
ALTER TABLE service_groups ADD COLUMN health_check_timeout_ms INTEGER NOT NULL DEFAULT 3000;
ALTER TABLE service_bindings ADD COLUMN lb_mode TEXT NOT NULL DEFAULT 'round_robin';
ALTER TABLE service_bindings ADD COLUMN health_check_enabled INTEGER NOT NULL DEFAULT 0;
ALTER TABLE service_bindings ADD COLUMN health_check_type TEXT NOT NULL DEFAULT 'tcp';
ALTER TABLE service_bindings ADD COLUMN health_check_port INTEGER;
ALTER TABLE service_bindings ADD COLUMN health_check_path TEXT;
ALTER TABLE service_bindings ADD COLUMN health_check_expected_status INTEGER;
ALTER TABLE service_bindings ADD COLUMN health_check_interval_sec INTEGER NOT NULL DEFAULT 30;
ALTER TABLE service_bindings ADD COLUMN health_check_timeout_ms INTEGER NOT NULL DEFAULT 3000;
ALTER TABLE service_binding_ips ADD COLUMN weight INTEGER NOT NULL DEFAULT 1;
ALTER TABLE service_binding_ips ADD COLUMN priority INTEGER NOT NULL DEFAULT 1;
CREATE TABLE ip_health_status (
scope TEXT NOT NULL,
ref_id INTEGER NOT NULL,
ip TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'unknown',
latency_ms INTEGER,
consecutive_failures INTEGER NOT NULL DEFAULT 0,
last_checked_at TEXT,
last_error TEXT,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
PRIMARY KEY (scope, ref_id, ip)
);
CREATE INDEX idx_ip_health_status_scope_ref ON ip_health_status(scope, ref_id);