Includes current frontend and backend work in progress and removes generated artifacts from tracking to keep the repository clean for дальнейшая разработка. Co-authored-by: Cursor <cursoragent@cursor.com>
84 lines
3.1 KiB
TypeScript
84 lines
3.1 KiB
TypeScript
/** Типы и подписи для UI планировщика / страницы «Сбор данных» (совпадают с ответами API). */
|
|
|
|
/** Последний ключ — движок оповещений (читает БД после коллекторов; см. описание `alert_engine`). */
|
|
export const SCHEDULER_JOB_KEYS = [
|
|
"traffic",
|
|
"servers_rest_ping",
|
|
"uptime_resources",
|
|
"uptime_ping",
|
|
"uptime_speed",
|
|
"gre_bgp",
|
|
"alert_engine",
|
|
] as const
|
|
export type SchedulerJobKey = (typeof SCHEDULER_JOB_KEYS)[number]
|
|
|
|
export const SCHEDULER_JOB_LABELS: Record<string, string> = {
|
|
traffic: "Трафик",
|
|
servers_rest_ping: "Серверы: REST API",
|
|
uptime_resources: "Uptime: ресурсы",
|
|
uptime_ping: "Uptime: ping",
|
|
uptime_speed: "Uptime: speed",
|
|
gre_bgp: "GRE + BGP",
|
|
alert_engine: "Оповещения",
|
|
}
|
|
|
|
/** Кратко — для раскрытой карточки прогона и подсказок. */
|
|
export const SCHEDULER_JOB_DESCRIPTIONS: Record<string, string> = {
|
|
traffic: "Опрос интерфейсов RouterOS, запись сэмплов трафика в SQLite.",
|
|
servers_rest_ping:
|
|
"Проверка доступности каталога серверов: GET /system/identity (RouterOS REST), замер задержки без полного опроса.",
|
|
uptime_resources: "CPU, память, температура и др. метрики с устройств.",
|
|
uptime_ping: "ICMP-пинг по настроенным пробам мониторинга.",
|
|
uptime_speed: "Фоновые btest / speed-пробы между узлами (при включённых пробах).",
|
|
gre_bgp:
|
|
"Опрос GRE-туннелей и BGP-сессий на включённых серверах, запись сэмплов в SQLite для движка оповещений.",
|
|
alert_engine:
|
|
"Оценка правил по данным из SQLite (сэмплы пишут джобы сбора, в т.ч. «GRE + BGP» и «Серверы: REST API»).",
|
|
}
|
|
|
|
export interface CollectorSettingsDto {
|
|
enabled: boolean
|
|
intervalSec: number
|
|
probeIntervalSec?: number
|
|
speedIntervalSec?: number
|
|
retentionDays: number
|
|
lastCollectedAt: string | null
|
|
lastDurationMs: number | null
|
|
lastError: string | null
|
|
collectorRunning?: boolean
|
|
}
|
|
|
|
export interface SchedulerJobStatusDto {
|
|
jobKey: string
|
|
enabled: boolean
|
|
intervalSec: number
|
|
running: boolean
|
|
lastFinishedAt: string | null
|
|
lastStatus: string | null
|
|
lastDurationMs: number | null
|
|
lastError: string | null
|
|
}
|
|
|
|
export interface SchedulerStatusDto {
|
|
jobs: SchedulerJobStatusDto[]
|
|
}
|
|
|
|
export interface UptimeSettingsDto extends CollectorSettingsDto {
|
|
resourcesEnabled?: boolean
|
|
pingEnabled?: boolean
|
|
speedEnabled?: boolean
|
|
scheduler?: SchedulerStatusDto
|
|
}
|
|
|
|
export interface SchedulerRunRowDto {
|
|
id: string
|
|
jobKey: string
|
|
startedAt: string
|
|
finishedAt: string
|
|
status: string
|
|
error: string | null
|
|
durationMs: number
|
|
/** JSON снимка результатов прогона (серверы, пробы, speed и т.д.) */
|
|
resultJson?: string | null
|
|
}
|