now supports multi machine monitoring

This commit is contained in:
2026-05-06 15:09:15 +02:00
parent 8f0a9650b0
commit d8d80867ce
20 changed files with 757 additions and 426 deletions
+93
View File
@@ -89,6 +89,99 @@ export interface NowPlayingSession {
session_id: string;
}
export interface MonitoringMachine {
id: string;
name: string;
mode: "local" | "ssh";
enabled: boolean;
host: string;
port: number;
username: string;
key_directory: string;
key_name: string;
password_set: boolean;
media_root: string;
path_prefix: string;
notes: string;
}
export interface MonitoringMachineInput {
id?: string | null;
name: string;
mode: "local" | "ssh";
enabled: boolean;
host: string;
port: number;
username: string;
key_directory: string;
key_name: string;
password: string;
media_root: string;
path_prefix: string;
notes: string;
}
export interface MonitoringMachineAction {
machine_id: string;
machine_name: string;
mode: "local" | "ssh";
action: string;
status: string;
created_at: number;
duration_ms: number;
request_id: string;
message: string;
error: string;
stdout_tail: string;
stderr_tail: string;
}
export interface MetricSummary {
avg: number;
min: number;
max: number;
count: number;
}
export interface MonitoringPollerStatus {
worker_running: boolean;
stop_requested: boolean;
last_run_at: number | null;
last_success_at: number | null;
last_error: string;
last_cycle_ms: number | null;
poll_count: number;
error_count: number;
interval_seconds: number;
initial_delay_seconds: number;
retention_days: number;
}
export interface MonitoringMachineOverview {
machine: MonitoringMachine;
status: string;
status_error: string;
metrics_error: string;
disk_error: string;
latest_sample: MonitoringSample | null;
sample_count: number;
cpu_summary: MetricSummary | null;
iowait_summary: MetricSummary | null;
mem_summary: MetricSummary | null;
net_rx_summary: MetricSummary | null;
net_tx_summary: MetricSummary | null;
disk_read_summary: MetricSummary | null;
disk_write_summary: MetricSummary | null;
disk: DiskSpace | null;
}
export interface MonitoringOverviewResponse {
poller: MonitoringPollerStatus;
machines: MonitoringMachineOverview[];
total: number;
enabled: number;
}
export interface MonitoringStatus {
status: string;
}