mirror of
https://github.com/henrygd/beszel.git
synced 2026-09-25 19:07:47 +02:00
Co-authored-by: Sven van Ginkel <svenvanginkel@icloud.com> Co-authored-by: xiaomiku01 <xiaomiku01@outlook.com>
18 lines
838 B
TypeScript
18 lines
838 B
TypeScript
import type { MonitorStats, NetworkMonitorRecord, RawMonitorStatsRecord } from "@/types"
|
|
|
|
/** Derive chart metrics from the counts and response sum stored at every retention tier. */
|
|
export function getMonitorStats(record: RawMonitorStatsRecord): MonitorStats {
|
|
return {
|
|
res_avg: record.success_count > 0 ? record.res_sum / record.success_count : 0,
|
|
res_min: record.res_min,
|
|
res_max: record.res_max,
|
|
loss: record.total_count > 0 ? ((record.total_count - record.success_count) / record.total_count) * 100 : 0,
|
|
}
|
|
}
|
|
|
|
export function getMonitorTarget(monitor: Pick<NetworkMonitorRecord, "target" | "protocol" | "port">) {
|
|
if (monitor.protocol !== "tcp") return monitor.target
|
|
const host = monitor.target.includes(":") && !monitor.target.startsWith("[") ? `[${monitor.target}]` : monitor.target
|
|
return `${host}:${monitor.port}`
|
|
}
|