@softvisio/core
Version:
Softisio core
82 lines (65 loc) • 2.54 kB
JavaScript
import sql from "#lib/sql";
export default sql`
DROP FUNCTION insert_monitoring_instance;
DROP TRIGGER monitoring_instance_stats_after_insert ON monitoring_instance_stats;
DROP FUNCTION monitoring_instance_stats_after_insert_trigger;
ALTER TABLE monitoring_instance RENAME COLUMN memory_total TO ram_total;
ALTER TABLE monitoring_instance RENAME COLUMN memory_used TO ram_used;
ALTER TABLE monitoring_instance RENAME COLUMN memory_rss TO rss_used;
ALTER TABLE monitoring_instance RENAME COLUMN fs_total TO hdd_total;
ALTER TABLE monitoring_instance RENAME COLUMN fs_used TO hdd_used;
ALTER TABLE monitoring_instance_stats RENAME COLUMN memory_used TO ram_used;
ALTER TABLE monitoring_instance_stats RENAME COLUMN memory_used_percent TO ram_used_percent;
ALTER TABLE monitoring_instance_stats RENAME COLUMN memory_rss TO rss_used;
ALTER TABLE monitoring_instance_stats RENAME COLUMN memory_rss_percent TO rss_used_percent;
ALTER TABLE monitoring_instance_stats RENAME COLUMN fs_used TO hdd_used;
ALTER TABLE monitoring_instance_stats RENAME COLUMN fs_used_percent TO hdd_used_percent;
CREATE FUNCTION insert_monitoring_instance ( _package text, _service text, _instance uuid, _ram_total int53, _hdd_total int53 ) RETURNS int53 AS $$
DECLARE
_id int53;
BEGIN
SELECT
id
FROM
monitoring_instance
WHERE
package = _package
AND service = _service
AND instance = _instance
INTO
_id;
IF _id IS NULL THEN
INSERT INTO
monitoring_instance
( package, service, instance, ram_total, hdd_total )
VALUES
( _package, _service, _instance, _ram_total, _hdd_total )
ON CONFLICT ( instance ) DO UPDATE SET
package = EXCLUDED.package,
service = EXCLUDED.service,
ram_total = _ram_total,
hdd_total = _hdd_total
RETURNING
id
INTO
_id;
END IF;
RETURN _id;
END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION monitoring_instance_stats_after_insert_trigger() RETURNS TRIGGER AS $$
BEGIN
UPDATE
monitoring_instance
SET
last_updated = CURRENT_TIMESTAMP,
ram_used = NEW.ram_used,
rss_used = NEW.rss_used,
hdd_used = NEW.hdd_used
WHERE
id = NEW.monitoring_instance_id;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER monitoring_instance_stats_after_insert AFTER INSERT ON monitoring_instance_stats FOR EACH ROW EXECUTE FUNCTION monitoring_instance_stats_after_insert_trigger();
`;