Files
Checkmate/Server/db/models/Monitor.js
T

84 lines
1.3 KiB
JavaScript
Raw Normal View History

2024-10-15 11:57:37 +08:00
import mongoose from "mongoose";
2024-05-10 13:36:04 -07:00
const MonitorSchema = mongoose.Schema(
2024-10-17 12:07:30 +08:00
{
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
immutable: true,
required: true,
},
teamId: {
type: mongoose.Schema.Types.ObjectId,
ref: "Team",
immutable: true,
required: true,
},
name: {
type: String,
required: true,
},
description: {
type: String,
},
status: {
type: Boolean,
default: undefined,
},
type: {
type: String,
required: true,
2025-01-02 11:27:05 -08:00
enum: [
"http",
"ping",
"pagespeed",
"hardware",
"docker",
"port",
"distributed_http",
],
2024-10-17 12:07:30 +08:00
},
url: {
type: String,
required: true,
},
2024-12-27 10:48:44 -08:00
port: {
type: Number,
},
2024-10-17 12:07:30 +08:00
isActive: {
type: Boolean,
default: true,
},
interval: {
// in milliseconds
type: Number,
default: 60000,
},
uptimePercentage: {
type: Number,
default: undefined,
},
thresholds: {
type: {
usage_cpu: { type: Number },
usage_memory: { type: Number },
usage_disk: { type: Number },
},
_id: false,
},
2024-10-17 12:07:30 +08:00
notifications: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Notification",
},
],
secret: {
type: String,
},
2024-10-17 12:07:30 +08:00
},
{
timestamps: true,
}
);
2024-05-10 13:36:04 -07:00
2024-10-15 11:57:37 +08:00
export default mongoose.model("Monitor", MonitorSchema);