mirror of
https://github.com/hansjone/netx.git
synced 2026-10-11 04:13:21 +08:00
Tighten cutover verdicts and scope iface metrics by port mapping.
Mapped interfaces are the expect set and must appear after cutover; unmapped same-name down/up is anomaly. Success presets no longer treat bare unchanged as green. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
27c6b7c61d
commit
88b7558a48
11 changed files with 4663 additions and 1497 deletions
|
|
@ -288,20 +288,27 @@ const zh = {
|
|||
stepPickMetrics: "① 选择监控项",
|
||||
stepConfigRules: "② 配置比对规则",
|
||||
pickMetricsHint: "勾选后加入模板;可多选。选好后在下方按表配置参数。",
|
||||
noMetricsYet: "请先在上方勾选至少一个监控项",
|
||||
pickMetricsHintShort: "点选加入 / 取消;配置在下方左侧表列表中切换。",
|
||||
showMetrics: "展开选表",
|
||||
hideMetrics: "收起选表",
|
||||
noMetricsYet: "请先勾选至少一个监控项",
|
||||
selectedCount: "已选 {{n}} 项",
|
||||
tabFields: "字段规则",
|
||||
tabFilters: "行过滤",
|
||||
fieldsHintShort: "Key 对齐行;比对勾选参与值 diff;不勾比对则只看存在性。",
|
||||
tagCompareN: "{{n}} 比对",
|
||||
colFields: "字段数",
|
||||
keyFields: "Key",
|
||||
ifaceFields: "接口",
|
||||
compareFields: "比对",
|
||||
compareMode: "比对方式",
|
||||
compareMode: "方式",
|
||||
tolerance: "容差",
|
||||
displayField: "展示",
|
||||
keyAlwaysDisplay: "Key 列始终展示",
|
||||
modeEq: "完全相等",
|
||||
modeNumeric: "绝对偏差",
|
||||
modePercent: "相对偏差 %",
|
||||
normalizeField: "归一化",
|
||||
normalizeField: "归一",
|
||||
ignoreFields: "忽略",
|
||||
field: "字段",
|
||||
note: "备注",
|
||||
|
|
@ -312,12 +319,17 @@ const zh = {
|
|||
rowFilters: "行过滤规则",
|
||||
rowFiltersHint:
|
||||
"比对前按规则筛选行。组内条件为「且」,组与组之间为「或」。勾选 ARP 等监控项时会带上默认可编辑规则,可按需改删。",
|
||||
rowFiltersEmpty: "无过滤则比对全部行。可添加条件组。",
|
||||
filterClear: "清空规则",
|
||||
rowFiltersHintShort: "组内且 · 组间或 · 无过滤则比对全部行",
|
||||
rowFiltersEmpty: "无过滤则比对全部行。",
|
||||
filterClear: "清空",
|
||||
filterAddOr: "添加条件组(或)",
|
||||
filterAddAnd: "组内加条件(且)",
|
||||
filterAddOrShort: "+ 或组",
|
||||
filterAddAndShort: "+ 且",
|
||||
filterRemoveGroup: "删除本组",
|
||||
filterGroupN: "组 {{n}}",
|
||||
filterOr: "或",
|
||||
filterAnd: "且",
|
||||
filterField: "字段",
|
||||
filterOp: "运算",
|
||||
filterValue: "值",
|
||||
|
|
@ -452,8 +464,13 @@ const zh = {
|
|||
title: "割接监控",
|
||||
hint: "与业务对比独立:相对基线漂移 + 本批预期 + 老/新双端判定。复用采集任务与端口映射。",
|
||||
hintPort: "当前监控项:端口状态(interface_brief / admin·phy·prot)。选基线 → 勾选本批端口 → 判定看板。",
|
||||
hintShort: "监控模板定判定规则;绑老/新采集与双基线 → 勾预期 → 看板评估。",
|
||||
create: "创建任务",
|
||||
createHint: "先填任务名并绑定老/新业务监控采集任务;映射与基线可稍后在详情里补。",
|
||||
createHintShort: "任务名 + 老/新采集任务即可创建;模板、映射、基线可稍后补。",
|
||||
showCreateMore: "更多:模板 / 映射 / 基线",
|
||||
hideCreateMore: "收起更多",
|
||||
setupHintShort: "采集任务创建后固定;此处配置监控模板、映射与双基线。",
|
||||
createProject: "创建任务",
|
||||
projectName: "任务名称",
|
||||
projectNamePh: "例如:CN1/CN2 第1夜割接",
|
||||
|
|
@ -465,23 +482,27 @@ const zh = {
|
|||
sectionPair: "已绑定采集任务",
|
||||
sectionPairHint: "采集任务在创建时绑定;此处可调整监控模板、映射与基线。",
|
||||
sectionBaseline: "基线批次",
|
||||
sectionBaselineHint: "老侧基线用于列出本批预期对象;新侧基线可选。",
|
||||
sectionBaselineHint: "老侧与新侧基线均必填;老侧用于列出本批预期对象,新侧参与双端判定。",
|
||||
optionalNone: "不选",
|
||||
monitorTemplate: "监控模板",
|
||||
monitorTemplateHint: "决定对比哪些 metric 与双端成功语义;默认端口割接监控。",
|
||||
compareTemplate: "对比模板",
|
||||
compareTemplateBound: "绑定对比模板:{{name}}",
|
||||
portMappingHint: "来自「业务对比」中的端口映射;没有可先不选。",
|
||||
portMappingHint:
|
||||
"有映射时,带接口字段的监控项只比映射内的口(这些口必须在割接后出现)。映射外的同名口不参与迁移对比;老口 down、新口同名 up 记为异常。未配映射则按同名直比。BGP/PW 仍用本批预期勾选。",
|
||||
baselineNeedTask: "请先选择对应采集任务",
|
||||
baselinePickHint: "从该任务的历史采集批次中选择",
|
||||
oldTask: "老设备采集任务",
|
||||
newTask: "新设备采集任务",
|
||||
portMapping: "端口映射",
|
||||
oldBaseline: "老设备基线批次",
|
||||
newBaseline: "新设备基线批次(可选)",
|
||||
newBaseline: "新设备基线批次",
|
||||
needProjectFields: "请填写任务名并选择老/新采集任务",
|
||||
needExpectPorts: "请先勾选本批预期迁移的对象",
|
||||
needBaselineFirst: "请先保存老设备基线批次,才能列出预期对象",
|
||||
needBothBaselines: "请先保存老、新两侧基线批次后再评估",
|
||||
errOldBaselineRequired: "缺少老设备基线批次",
|
||||
errNewBaselineRequired: "缺少新设备基线批次",
|
||||
needBizStateTasks: "尚无业务监控任务,请先创建:",
|
||||
projectCreated: "任务已创建",
|
||||
projects: "任务",
|
||||
|
|
@ -529,6 +550,15 @@ const zh = {
|
|||
progress: "进度",
|
||||
anomaly: "异常",
|
||||
onlyExpect: "仅看预期对象",
|
||||
onlyExpectHint: "默认显示全部漂移;勾选后只看本批预期",
|
||||
pinCurrentBatches: "当前采集批次",
|
||||
pinOldBatch: "老侧当前批",
|
||||
pinNewBatch: "新侧当前批",
|
||||
pinLatest: "自动最新成功批",
|
||||
runHistory: "判定历史",
|
||||
runLatest: "最新一次",
|
||||
colRuleHit: "命中规则",
|
||||
mappingBound: "映射已保存并绑定到本任务",
|
||||
allMetrics: "全部监控项",
|
||||
colMetric: "监控项",
|
||||
colKey: "对象",
|
||||
|
|
@ -543,6 +573,7 @@ const zh = {
|
|||
colNew: "新侧",
|
||||
colVerdict: "判定",
|
||||
emptyDiffs: "暂无明细,请先「立即判定」",
|
||||
emptyRed: "暂无红单",
|
||||
verdictMigrated: "已迁移",
|
||||
verdictMigrating: "迁移中",
|
||||
verdictLost: "丢失",
|
||||
|
|
@ -563,6 +594,7 @@ const zh = {
|
|||
acceptFailed: "本批验收未通过(红单 {{n}},可带红开下一批)",
|
||||
acceptPassedShort: "通过",
|
||||
acceptFailedShort: "未通过",
|
||||
newBaselineMissingBanner: "这些表没有可用的新侧基线内容,判定不可信:{{metrics}}",
|
||||
acceptCarryHint: "验收不过不拦截:可新建下一批继续;红单保留留痕,可手动关闭。",
|
||||
openRedHint: "任务仍有 {{n}} 条未关闭红单(带红继续)",
|
||||
redTitle: "红单留痕",
|
||||
|
|
@ -597,7 +629,7 @@ const zh = {
|
|||
needName: "请填写名称",
|
||||
defaultsInvalid: "defaults JSON 无效",
|
||||
overridesInvalid: "sheet_overrides JSON 无效",
|
||||
formHint: "先选对比模板 → 出现与对比模板相同的表页签 → 为每张表配置状态字段与成功模式。",
|
||||
formHint: "先选对比模板 → 出现与对比模板相同的表页签 → 为每张表配置成功条件。",
|
||||
compareHint: "决定有哪些表以及 Key/比对字段;此处只配置双端判定。",
|
||||
pickCompare: "选择对比模板…",
|
||||
openCompare: "管理对比模板",
|
||||
|
|
@ -616,26 +648,84 @@ const zh = {
|
|||
ooeIgnore: "忽略(一律未涉及)",
|
||||
sheetRules: "各表搬迁判定",
|
||||
applyAllPresets: "全部套用推荐预设",
|
||||
applyAllPresetsShort: "全部预设",
|
||||
sheetsUnit: "张表",
|
||||
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 取值",
|
||||
editInCompare: "改 HOW",
|
||||
presetAuto: "推荐预设",
|
||||
presetSkip: "跳过本表",
|
||||
skipDual: "本表不参与双端判定",
|
||||
skipDualHint: "该表在割接判定中跳过(计数器等请用业务对比 Job)。",
|
||||
statusFields: "用哪些字段判断 up/down",
|
||||
statusFieldsHint: "端口勾选 admin/phy/prot;BGP 勾选 state;ARP 可不勾(只看条目有无)。",
|
||||
statusOptionalHint: "未勾选状态字段时,只按「消失 / 新增」等存在性判定。",
|
||||
downValues: "算 down 的取值",
|
||||
upValues: "算 up 的取值",
|
||||
noFields: "无可用字段(先在对比模板勾选 metric)",
|
||||
successPatterns: "成功模式(老侧任意命中 × 新侧任意命中)",
|
||||
successPatternsHint: "例如端口:老 removed/down + 新 added/up;ARP:老 removed + 新 added;BGP:老 down(idle) + 新 up(established)。",
|
||||
oldSideAny: "老侧(任意命中)",
|
||||
newSideAny: "新侧(任意命中)",
|
||||
addSuccessRow: "添加成功模式",
|
||||
successPatterns: "成功规则(老侧组间或 × 新侧组间或)",
|
||||
successPatternsShort: "成功规则",
|
||||
successPatternsHint: "存在性看条目有无;值变更绑定字段并选择怎么变。组内是且,组之间是或。",
|
||||
successPatternsHintShort: "组内且 · 组间或 · 老侧命中一组且新侧命中一组 → 成功",
|
||||
successPatternsHintFree:
|
||||
"每侧只有两种条件:存在性(不绑字段)或值变更(必须绑字段)。同一组内全部满足(且),组与组之间满足一组即可(或)。",
|
||||
anomalyPatternsShort: "异常规则",
|
||||
anomalyPatternsHint:
|
||||
"与成功同结构。命中后标红。某一侧可勾「不限制」表示只看另一侧(如新侧现网消失/down)。未成功≠异常,中间态仍是迁移动态。",
|
||||
anomalyPatternsHintShort: "先匹配成功;未命中再看异常。可勾「不限制」只盯一侧。中间态≠异常。",
|
||||
successRow: "成功 {{n}}",
|
||||
anomalyRow: "异常 {{n}}",
|
||||
removeRow: "删除",
|
||||
oldSideAny: "老设备",
|
||||
newSideAny: "新设备",
|
||||
groupLogicHint: "组内且,组之间或",
|
||||
sideDontCare: "不限制此侧",
|
||||
sideDontCareHint: "只按另一侧条件判定。",
|
||||
groupN: "组 {{n}}",
|
||||
addAnd: "组内再加一条(且)",
|
||||
addOr: "再加一组(或)",
|
||||
addAndShort: "+ 且",
|
||||
addOrShort: "+ 或组",
|
||||
addSuccessRow: "+ 成功规则",
|
||||
addAnomalyRow: "+ 异常规则",
|
||||
modeAny: "满足任一即可",
|
||||
modeAll: "全部同时满足",
|
||||
addCond: "添加条件",
|
||||
pickField: "选择字段…",
|
||||
condValue: "取值",
|
||||
opEmpty: "为空",
|
||||
opNotEmpty: "非空",
|
||||
opChanged: "相对基线变了",
|
||||
opUnchanged: "相对基线没变",
|
||||
op_eq: "等于",
|
||||
op_ne: "不等于",
|
||||
op_in: "属于",
|
||||
op_not_in: "不属于",
|
||||
op_empty: "为空",
|
||||
op_not_empty: "非空",
|
||||
op_changed: "相对基线变了",
|
||||
op_unchanged: "相对基线没变",
|
||||
and: "且",
|
||||
groupPresence: "存在性",
|
||||
groupValue: "值变更",
|
||||
groupStatus: "状态类",
|
||||
groupField: "字段条件",
|
||||
tokRemoved: "消失",
|
||||
tokAdded: "新增",
|
||||
tokUnchanged: "未变",
|
||||
tokChanged: "有变化",
|
||||
tokUp: "up",
|
||||
tokDown: "down",
|
||||
tokOther: "其它状态",
|
||||
or: "或",
|
||||
tagSkip: "跳过",
|
||||
tagRules: "{{n}} 条",
|
||||
tagEmpty: "未配",
|
||||
needCompareFirst: "请先选择带 sheets 的对比模板。",
|
||||
showMore: "更多:备注 / 高频采集 / JSON",
|
||||
hideMore: "收起更多",
|
||||
showJson: "高级:编辑 JSON",
|
||||
hideJson: "回到可视化编辑",
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue