Panel/modules/resource_stats/mysql_query.sql
2025-09-11 13:29:15 -04:00

61 lines
1.8 KiB
SQL

-- Run these while connected to your current PANEL database (no CREATE DATABASE here)
-- Machines catalog
CREATE TABLE IF NOT EXISTS gsp_machines (
id INT AUTO_INCREMENT PRIMARY KEY,
machine_id VARCHAR(64) NOT NULL,
hostname VARCHAR(255) NOT NULL,
ip VARCHAR(45) DEFAULT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uniq_machine (machine_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Host-level samples
CREATE TABLE IF NOT EXISTS gsp_machine_samples (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
machine_id VARCHAR(64) NOT NULL,
ts DATETIME NOT NULL,
load1 DECIMAL(6,2),
load5 DECIMAL(6,2),
load15 DECIMAL(6,2),
cpu_pct DECIMAL(6,2),
mem_used_bytes BIGINT,
mem_total_bytes BIGINT,
mem_used_pct DECIMAL(6,2),
swap_used_bytes BIGINT,
swap_total_bytes BIGINT,
disk_path VARCHAR(255),
disk_total_bytes BIGINT,
disk_used_bytes BIGINT,
disk_used_pct DECIMAL(6,2),
net_iface VARCHAR(64),
rx_bytes BIGINT,
tx_bytes BIGINT,
iface_speed_mbps INT NULL,
KEY idx_machine_ts (machine_id, ts),
KEY idx_ts (ts)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Per-process/per-server samples
CREATE TABLE IF NOT EXISTS gsp_process_samples (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
machine_id VARCHAR(64) NOT NULL,
ts DATETIME NOT NULL,
server_name VARCHAR(255) NOT NULL,
server_path VARCHAR(512) NOT NULL,
pid INT NOT NULL,
proc_name VARCHAR(255),
cmd TEXT,
cpu_pct DECIMAL(7,2),
rss_bytes BIGINT,
vms_bytes BIGINT,
mem_pct DECIMAL(6,2),
io_read_bytes BIGINT,
io_write_bytes BIGINT,
open_fds INT,
listening_ports VARCHAR(255),
folder_size_bytes BIGINT,
KEY idx_proc_server (machine_id, server_name, ts),
KEY idx_proc_pid (machine_id, pid, ts),
KEY idx_ts (ts)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;