mirror of
https://github.com/hansjone/netx.git
synced 2026-10-10 23:13:53 +08:00
Add visual dual-verdict editor for monitor templates with out_of_expect and field tokens.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
2c2768a3d0
commit
27c6b7c61d
7 changed files with 985 additions and 136 deletions
|
|
@ -580,7 +580,7 @@ const en = {
|
|||
},
|
||||
bizMonitorTpl: {
|
||||
title: "Monitor templates",
|
||||
hint: "Reference a compare template for HOW-to-compare, then add dual-device / baseline rules for cutover monitor.",
|
||||
hint: "Compare templates define HOW to align/diff; monitor templates define WHEN dual-device migrate succeeds — one sheet tab per compare sheet.",
|
||||
create: "New monitor template",
|
||||
edit: "Edit",
|
||||
save: "Save",
|
||||
|
|
@ -594,6 +594,7 @@ const en = {
|
|||
listFilterPh: "Filter name / compare template / note",
|
||||
kpiTotal: "Templates",
|
||||
colName: "Name",
|
||||
namePh: "e.g. Port+BGP cutover monitor",
|
||||
colCompare: "Compare template",
|
||||
colCollect: "HF collect metrics",
|
||||
colNote: "Note",
|
||||
|
|
@ -601,16 +602,47 @@ const en = {
|
|||
needName: "Name is required",
|
||||
defaultsInvalid: "Invalid defaults JSON",
|
||||
overridesInvalid: "Invalid sheet_overrides JSON",
|
||||
formHint: "Compare template owns alignment & field rules; this page owns dual verdict + optional HF collect subset.",
|
||||
compareHint: "From Compare templates; create/edit sheets there first if needed.",
|
||||
formHint: "Pick a compare template → same sheet tabs appear → configure status fields and success patterns per sheet.",
|
||||
compareHint: "Owns which sheets and Key/compare fields; here you only set dual verdict rules.",
|
||||
pickCompare: "Pick compare template…",
|
||||
openCompare: "Manage compare templates",
|
||||
collectAll: "All sheets",
|
||||
collectPh: "interface_brief, bgp_peer (empty = all)",
|
||||
collectHint: "Comma-separated metric_id; empty uses every sheet on the compare template.",
|
||||
collectHint: "HF collect metrics; empty / “All sheets” uses every compare-template sheet.",
|
||||
collectTitle: "High-freq collect subset",
|
||||
defaults: "defaults (JSON)",
|
||||
overrides: "sheet_overrides (JSON)",
|
||||
overridesHint: "Optional per-metric status_fields / success patterns; empty array uses global defaults.",
|
||||
overridesHint: "Optional per-metric status_fields / success patterns.",
|
||||
globalPolicy: "Global policy",
|
||||
outOfExpect: "Out-of-expect objects",
|
||||
outOfExpectHint: "How to treat drift outside the batch expect set.",
|
||||
ooeStrict: "Strict (red anomaly)",
|
||||
ooeWarn: "Warn (yellow only, no red tickets)",
|
||||
ooeIgnore: "Ignore (always not involved)",
|
||||
sheetRules: "Per-sheet migrate rules",
|
||||
applyAllPresets: "Apply recommended presets to all",
|
||||
sheetHowReadonly: "Compare template (read-only)",
|
||||
iface: "Interface",
|
||||
compare: "Compare",
|
||||
presenceOnly: "presence only",
|
||||
editInCompare: "Edit HOW in compare templates",
|
||||
presetAuto: "Apply recommended preset",
|
||||
presetSkip: "Skip dual verdict",
|
||||
skipDual: "Skip dual for this sheet",
|
||||
skipDualHint: "This sheet is skipped in cutover evaluate (use a compare job for pure value checks).",
|
||||
statusFields: "Status fields",
|
||||
statusFieldsHint: "Classify current rows as up/down; ports use admin/phy/prot, BGP uses state.",
|
||||
downValues: "Down values",
|
||||
upValues: "Up values",
|
||||
noFields: "No fields (pick metrics on the compare template first)",
|
||||
successPatterns: "Success patterns (old any-of × new any-of)",
|
||||
successPatternsHint: "e.g. port: old removed/down + new added/up; ARP: old removed + new added; BGP: old down(idle) + new up(established).",
|
||||
oldSideAny: "Old side (any match)",
|
||||
newSideAny: "New side (any match)",
|
||||
addSuccessRow: "Add success pattern",
|
||||
needCompareFirst: "Pick a compare template that has sheets first.",
|
||||
showJson: "Advanced: edit JSON",
|
||||
hideJson: "Back to visual editor",
|
||||
},
|
||||
portTraffic: {
|
||||
title: "Port traffic",
|
||||
|
|
|
|||
|
|
@ -575,7 +575,7 @@ const zh = {
|
|||
},
|
||||
bizMonitorTpl: {
|
||||
title: "监控模板",
|
||||
hint: "引用对比模板定义「如何比」,再叠加双端迁移/基线判定规则。供割接监控选用。",
|
||||
hint: "对比模板定义「怎么对齐/比对」;监控模板按同样的表(sheet)定义「怎样算搬迁成功/失败」。",
|
||||
create: "新建监控模板",
|
||||
edit: "编辑",
|
||||
save: "保存",
|
||||
|
|
@ -589,6 +589,7 @@ const zh = {
|
|||
listFilterPh: "筛选名称 / 对比模板 / 备注",
|
||||
kpiTotal: "模板数",
|
||||
colName: "名称",
|
||||
namePh: "例如:端口+BGP 割接监控",
|
||||
colCompare: "对比模板",
|
||||
colCollect: "高频采集项",
|
||||
colNote: "备注",
|
||||
|
|
@ -596,16 +597,47 @@ const zh = {
|
|||
needName: "请填写名称",
|
||||
defaultsInvalid: "defaults JSON 无效",
|
||||
overridesInvalid: "sheet_overrides JSON 无效",
|
||||
formHint: "对比模板决定对齐与字段规则;本页配置双端判定与可选高频采集子集。",
|
||||
compareHint: "来自「对比模板」;可先去那边新建或编辑 sheets。",
|
||||
formHint: "先选对比模板 → 出现与对比模板相同的表页签 → 为每张表配置状态字段与成功模式。",
|
||||
compareHint: "决定有哪些表以及 Key/比对字段;此处只配置双端判定。",
|
||||
pickCompare: "选择对比模板…",
|
||||
openCompare: "管理对比模板",
|
||||
collectAll: "模板全量",
|
||||
collectPh: "interface_brief, bgp_peer(空=全量)",
|
||||
collectHint: "逗号分隔 metric_id;留空表示使用对比模板全部 sheets。",
|
||||
collectHint: "勾选高频采集的 metric;全不勾或点「模板全量」表示对比模板全部 sheets。",
|
||||
collectTitle: "高频采集子集",
|
||||
defaults: "defaults(JSON)",
|
||||
overrides: "sheet_overrides(JSON)",
|
||||
overridesHint: "可按 metric 声明 status_fields / success 模式;空数组则用全局 defaults。",
|
||||
overridesHint: "可按 metric 声明 status_fields / success 模式。",
|
||||
globalPolicy: "全局策略",
|
||||
outOfExpect: "预期外对象",
|
||||
outOfExpectHint: "不在本批预期内的漂移如何处理。",
|
||||
ooeStrict: "严格(异常标红)",
|
||||
ooeWarn: "警告(仅标黄,不记红单)",
|
||||
ooeIgnore: "忽略(一律未涉及)",
|
||||
sheetRules: "各表搬迁判定",
|
||||
applyAllPresets: "全部套用推荐预设",
|
||||
sheetHowReadonly: "对比模板(只读)",
|
||||
iface: "接口",
|
||||
compare: "比对",
|
||||
presenceOnly: "仅存在性",
|
||||
editInCompare: "去对比模板改 HOW",
|
||||
presetAuto: "套用本表推荐预设",
|
||||
presetSkip: "跳过双端判定",
|
||||
skipDual: "本表不参与 dual 判定",
|
||||
skipDualHint: "该 sheet 将在割接判定中跳过(适合纯计数器等值校验类,改用业务对比 Job)。",
|
||||
statusFields: "状态字段",
|
||||
statusFieldsHint: "用于把当前行归类为 up/down;端口勾选 admin/phy/prot,BGP 勾选 state。",
|
||||
downValues: "Down 取值",
|
||||
upValues: "Up 取值",
|
||||
noFields: "无可用字段(先在对比模板勾选 metric)",
|
||||
successPatterns: "成功模式(老侧任意命中 × 新侧任意命中)",
|
||||
successPatternsHint: "例如端口:老 removed/down + 新 added/up;ARP:老 removed + 新 added;BGP:老 down(idle) + 新 up(established)。",
|
||||
oldSideAny: "老侧(任意命中)",
|
||||
newSideAny: "新侧(任意命中)",
|
||||
addSuccessRow: "添加成功模式",
|
||||
needCompareFirst: "请先选择带 sheets 的对比模板。",
|
||||
showJson: "高级:编辑 JSON",
|
||||
hideJson: "回到可视化编辑",
|
||||
},
|
||||
portTraffic: {
|
||||
title: "端口流量监控",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue