mirror of
https://github.com/hansjone/netx.git
synced 2026-10-11 08:00:49 +08:00
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:
parent
0d85b87be7
commit
653baa1b9f
16 changed files with 1185 additions and 129 deletions
|
|
@ -63,6 +63,7 @@ class PortTrafficTaskOut(BaseModel):
|
|||
class PortTrafficTargetOut(BaseModel):
|
||||
id: str
|
||||
task_id: str
|
||||
series_id: str = ""
|
||||
source: str
|
||||
target_id: str
|
||||
ne_name: str
|
||||
|
|
@ -77,10 +78,34 @@ class PortTrafficTargetOut(BaseModel):
|
|||
created_at: datetime | None = None
|
||||
|
||||
|
||||
class PortTrafficSeriesOut(BaseModel):
|
||||
id: str
|
||||
task_id: str
|
||||
title: str
|
||||
status: str
|
||||
active_target: PortTrafficTargetOut | None = None
|
||||
retired_target_count: int = 0
|
||||
created_at: datetime | None = None
|
||||
|
||||
|
||||
class PortTrafficTargetsPut(BaseModel):
|
||||
targets: list[PortTrafficTargetIn]
|
||||
|
||||
|
||||
class PortTrafficReplacePortRequest(BaseModel):
|
||||
"""Replace the active interface under a logical series (keeps history)."""
|
||||
|
||||
source: Literal["managed", "ume"]
|
||||
target_id: str
|
||||
ne_name: str = ""
|
||||
ne_ip: str = ""
|
||||
vendor: str = ""
|
||||
ifname: str
|
||||
if_description: str = ""
|
||||
bw_bps: int = 0
|
||||
series_title: str | None = Field(default=None, max_length=256)
|
||||
|
||||
|
||||
class DiscoverPortsRequest(BaseModel):
|
||||
source: Literal["managed", "ume"]
|
||||
id: str
|
||||
|
|
@ -116,6 +141,7 @@ class PortTrafficSamplePoint(BaseModel):
|
|||
out_util_pct: float
|
||||
bw_bps: int
|
||||
rate_period_sec: int = 0
|
||||
ts_raw: datetime | None = None # baseline original time when aligned
|
||||
|
||||
|
||||
class PortTrafficSamplesOut(BaseModel):
|
||||
|
|
@ -123,6 +149,22 @@ class PortTrafficSamplesOut(BaseModel):
|
|||
points: list[PortTrafficSamplePoint] = Field(default_factory=list)
|
||||
|
||||
|
||||
class PortTrafficCompareMeta(BaseModel):
|
||||
target_id: str
|
||||
baseline: str = "off"
|
||||
offset_hours: float = 0
|
||||
range_hours: float = 24
|
||||
current_target: PortTrafficTargetOut | None = None
|
||||
baseline_target: PortTrafficTargetOut | None = None
|
||||
baseline_target_id: str = ""
|
||||
|
||||
|
||||
class PortTrafficCompareOut(BaseModel):
|
||||
meta: PortTrafficCompareMeta
|
||||
current: list[PortTrafficSamplePoint] = Field(default_factory=list)
|
||||
baseline: list[PortTrafficSamplePoint] = Field(default_factory=list)
|
||||
|
||||
|
||||
class PortTrafficDashboardOut(BaseModel):
|
||||
task_count: int = 0
|
||||
running_task_count: int = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue