diff --git a/README.md b/README.md index 092ff93..39a60c2 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,6 @@ The specifications are defined following the [OpenAPI Initiative](https://www.op Main data exchange format is JSON. The specifications are defined following the [JSON schema](https://json-schema.org) format standard. -## Database schemas +## Database schema + +Recommended minimal SQL database schema for job meta data. diff --git a/schema/json/job-metric-data.schema.json b/schema/json/job-metric-data.schema.json index 8d0cbb5..09f9561 100644 --- a/schema/json/job-metric-data.schema.json +++ b/schema/json/job-metric-data.schema.json @@ -21,6 +21,24 @@ "description": "Measurement interval in seconds", "type": "integer" }, + "thresholds": { + "description": "Metric thresholds for specific system", + "type": "object", + "properties": { + "peak": { + "type": "number" + }, + "normal": { + "type": "number" + }, + "caution": { + "type": "number" + }, + "alert": { + "type": "number" + } + } + }, "series": { "description": "", "type": "array", diff --git a/schema/sql/jobs-sqlite.sql b/schema/sql/jobs-sqlite.sql index 60da539..061f14a 100644 --- a/schema/sql/jobs-sqlite.sql +++ b/schema/sql/jobs-sqlite.sql @@ -1,9 +1,9 @@ CREATE TABLE job ( id INTEGER PRIMARY KEY, - job_id TEXT, user_id TEXT, project_id TEXT, cluster_id TEXT, - start_time INTEGER, duration INTEGER, + job_id TEXT NOT NULL, user_id TEXT NOT NULL, project_id TEXT NOT NULL, cluster_id TEXT NOT NULL, + start_time INTEGER NOT NULL, duration INTEGER NOT NULL, walltime INTEGER, job_state TEXT, - num_nodes INTEGER, node_list TEXT, has_profile INTEGER, - mem_used_max REAL, flops_any_avg REAL, mem_bw_avg REAL, net_bw_avg REAL, file_bw_avg REAL); + num_nodes INTEGER NOT NULL, node_list TEXT NOT NULL, has_profile INTEGER NOT NULL, + mem_used_max REAL, flops_any_avg REAL, mem_bw_avg REAL, load_avg REAL, net_bw_avg REAL, file_bw_avg REAL); CREATE TABLE tag ( id INTEGER PRIMARY KEY, tag_type TEXT, tag_name TEXT); CREATE TABLE jobtag ( job_id INTEGER, tag_id INTEGER, PRIMARY KEY (job_id, tag_id), FOREIGN KEY (job_id) REFERENCES job (id) ON DELETE CASCADE ON UPDATE NO ACTION,