Import source: web/src/lib/types
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -0,0 +1,90 @@
|
|||||||
|
export type TargetState = "up" | "degraded" | "down" | "unknown";
|
||||||
|
|
||||||
|
export interface CheckPoint {
|
||||||
|
ts: number;
|
||||||
|
ok: boolean;
|
||||||
|
latency_ms: number;
|
||||||
|
detail?: string;
|
||||||
|
error?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface LatencyStats {
|
||||||
|
avg_ms: number;
|
||||||
|
p50_ms: number;
|
||||||
|
p95_ms: number;
|
||||||
|
min_ms: number;
|
||||||
|
max_ms: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Incident {
|
||||||
|
id: number;
|
||||||
|
target_id: string;
|
||||||
|
started_at: number;
|
||||||
|
ended_at?: number;
|
||||||
|
error?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type CheckKind = "http" | "tcp" | "tls" | "icmp" | "docker";
|
||||||
|
|
||||||
|
export interface Target {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
type: CheckKind;
|
||||||
|
endpoint: string;
|
||||||
|
interval_sec: number;
|
||||||
|
state: TargetState;
|
||||||
|
fails: number;
|
||||||
|
last?: CheckPoint;
|
||||||
|
uptime_24h?: number;
|
||||||
|
uptime_7d?: number;
|
||||||
|
uptime_30d?: number;
|
||||||
|
latency: LatencyStats;
|
||||||
|
cert_days?: number;
|
||||||
|
incident?: Incident;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Bucket {
|
||||||
|
start: number;
|
||||||
|
total: number;
|
||||||
|
failed: number;
|
||||||
|
avg_latency_ms: number;
|
||||||
|
max_latency_ms: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface HistoryResponse {
|
||||||
|
target_id: string;
|
||||||
|
range: string;
|
||||||
|
from: number;
|
||||||
|
to: number;
|
||||||
|
points: CheckPoint[];
|
||||||
|
buckets: Bucket[];
|
||||||
|
bucket_ms: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CheckEvent {
|
||||||
|
target_id: string;
|
||||||
|
ts: number;
|
||||||
|
ok: boolean;
|
||||||
|
latency_ms: number;
|
||||||
|
detail?: string;
|
||||||
|
error?: string;
|
||||||
|
state: TargetState;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface StateEvent {
|
||||||
|
target_id: string;
|
||||||
|
ts: number;
|
||||||
|
state: TargetState;
|
||||||
|
prev_state: TargetState;
|
||||||
|
incident?: Incident;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** A target enriched with live, client-side stream state. */
|
||||||
|
export interface LiveTarget extends Target {
|
||||||
|
/** Increments on every completed probe — drives the pulse animation. */
|
||||||
|
pulse: number;
|
||||||
|
/** Wall time of the last confirmed state transition — drives ripples. */
|
||||||
|
stateChangedAt: number;
|
||||||
|
/** Rolling buffer of recent checks for the sparkline. */
|
||||||
|
series: CheckPoint[];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user