status/schema.sql

42 lines
1.5 KiB
SQL

CREATE TABLE host (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
name VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE host_uptime (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
host_id INT NOT NULL REFERENCES host(id) ON UPDATE CASCADE,
-- uptime in seconds
uptime INT NOT NULL
);
CREATE INDEX host_uptime_host_id_created_at_idx ON host_uptime(host_id, created_at);
CREATE TABLE host_mem (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
host_id INT NOT NULL REFERENCES host(id) ON UPDATE CASCADE,
-- available memory in kB
mem_avail INT NOT NULL
);
CREATE INDEX host_mem_host_id_created_at_idx ON host_mem(host_id, created_at);
CREATE TABLE host_disk (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
host_id INT NOT NULL REFERENCES host(id) ON UPDATE CASCADE,
-- free disk space in kB
disk_free INT NOT NULL
);
CREATE INDEX host_disk_host_id_created_at_idx ON host_disk(host_id, created_at);
CREATE TABLE host_cpu (
id SERIAL PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
host_id INT NOT NULL REFERENCES host(id) ON UPDATE CASCADE,
-- cpu load for last minute
cpu_load_1m FLOAT NOT NULL
);
CREATE INDEX host_cpu_host_id_created_at_idx ON host_cpu(host_id, created_at);