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), -- 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), -- 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), -- 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), -- 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);