Add period and cross-task interface compare for port traffic wall.

Compare by interface target_id with optional mapped baseline (same window or time-shifted), keep chart samples on target_row_id, and unify UI wording to interface.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-07-31 22:53:26 +08:00
parent 0d85b87be7
commit 653baa1b9f
16 changed files with 1185 additions and 129 deletions

View file

@ -527,6 +527,7 @@ export type PortTrafficTask = {
export type PortTrafficTarget = {
id: string;
task_id: string;
series_id?: string;
source: string;
target_id: string;
ne_name: string;
@ -541,6 +542,16 @@ export type PortTrafficTarget = {
created_at?: string | null;
};
export type PortTrafficSeries = {
id: string;
task_id: string;
title: string;
status: string;
active_target: PortTrafficTarget | null;
retired_target_count: number;
created_at?: string | null;
};
export type PortTrafficTargetIn = {
source: "managed" | "ume";
target_id: string;
@ -582,6 +593,7 @@ export type PortTrafficSamplePoint = {
out_util_pct: number;
bw_bps: number;
rate_period_sec: number;
ts_raw?: string | null;
};
export type PortTrafficSamples = {
@ -589,6 +601,20 @@ export type PortTrafficSamples = {
points: PortTrafficSamplePoint[];
};
export type PortTrafficCompare = {
meta: {
target_id: string;
baseline: string;
offset_hours: number;
range_hours: number;
current_target: PortTrafficTarget | null;
baseline_target: PortTrafficTarget | null;
baseline_target_id: string;
};
current: PortTrafficSamplePoint[];
baseline: PortTrafficSamplePoint[];
};
export type PortTrafficDashboard = {
task_count: number;
running_task_count: number;