feat(cutover-ui): show paired timing and manual route configuration

This commit is contained in:
oliver 2026-10-11 08:48:20 +08:00
parent d3618deff6
commit b9d5e27cc4
7 changed files with 161 additions and 30 deletions

View file

@ -696,6 +696,29 @@ const en = {
colChange: "Changes",
},
bizMigration: {
pairCollectionHint: "Each metric has a paired collection round. Saving settings updates task bindings. Route tables are manual-only for final checks; use a separate business comparison for millions of routes. Actual cadence depends on command duration and device availability.",
pairedSampling: "Paired sampling · Timeliness",
manualRoute: "Manual final check",
pairedPeriodic: "Paired periodic",
samplingMode: "Sampling mode",
samplingDuration: "Duration old / new",
samplingQueue: "Queue old / new",
startSkew: "Start skew",
sameRound: "Round",
metricBaselineMissing: "This metric needs a matching baseline receipt",
samplePhase_idle: "Not collected",
samplePhase_queued: "Queued",
samplePhase_running: "Collecting",
samplePhase_success: "Complete",
samplePhase_partial: "Partial",
samplePhase_failed: "Failed",
samplePhase_cancelled: "Stopped",
collect_pair_invalid: "Incomplete collection pair",
collect_pair_missing: "No complete paired sample",
collect_pair_pending: "Waiting for both sides of this round",
collect_pair_failed: "Current round failed; older samples cannot replace it",
collect_round_mismatch: "Samples belong to different rounds",
sample_start_skew: "Actual collection starts are too far apart",
latestSnapshot: "Latest snapshot",
steadyOutside: "{{n}} stable items outside scope",
"followLive": "Follow live",
@ -848,6 +871,10 @@ const en = {
tabBoard: "Board",
saveBaseline: "Save",
baselineSaved: "Baseline saved",
errPairCapacity: "Paired sampling needs at least two collection slots. Check task concurrency, collection threads and the CLI budget.",
errPairBusy: "This metric is still collecting or queued on either side. Wait for the round to finish.",
errPairInvalid: "The collector pair is incomplete. Save configuration again to restore it.",
errPairSameDevice: "Cutover monitoring requires two different devices.",
pickExpectPorts: "Expect",
portFilterPh: "Filter",
emptyBaselinePorts: "No baseline data",

View file

@ -695,6 +695,29 @@ const zh = {
colChange: "变更",
},
bizMigration: {
pairCollectionHint: "每个指标两侧同轮关联采集。保存配置会同步增删采集任务;路由项仅手动采集,收尾时再选择,百万路由建议使用独立业务对比任务。频率是目标间隔,实际周期受命令耗时与设备占用影响。",
pairedSampling: "双端关联采集 · 及时性",
manualRoute: "手动收尾",
pairedPeriodic: "关联周期采集",
samplingMode: "采集方式",
samplingDuration: "采集耗时 老 / 新",
samplingQueue: "排队耗时 老 / 新",
startSkew: "启动时差",
sameRound: "同轮",
metricBaselineMissing: "基线未覆盖此指标,需要补充对应基线",
samplePhase_idle: "尚未采集",
samplePhase_queued: "排队",
samplePhase_running: "采集中",
samplePhase_success: "完成",
samplePhase_partial: "部分完成",
samplePhase_failed: "采集失败",
samplePhase_cancelled: "已停止",
collect_pair_invalid: "双端关联配置不完整",
collect_pair_missing: "尚无完整同轮样本",
collect_pair_pending: "等待两侧同轮采集完成",
collect_pair_failed: "本轮采集失败,不能复用旧样本代替",
collect_round_mismatch: "两侧样本不属于同一轮次",
sample_start_skew: "两侧实际启动时差过大",
latestSnapshot: "最新快照",
steadyOutside: "范围外稳定 {{n}} 条",
"followLive": "实时跟随",
@ -844,6 +867,10 @@ const zh = {
tabBoard: "判定看板",
saveBaseline: "保存配置",
baselineSaved: "基线已保存",
errPairCapacity: "双端关联采集至少需要两个采集并发槽位,请检查任务并发、采集线程和 CLI 预算配置。",
errPairBusy: "该指标的两侧仍在采集或排队,请等待本轮结束。",
errPairInvalid: "双端采集关联不完整,请重新保存配置建立关联。",
errPairSameDevice: "割接监控需要选择两台不同设备。",
pickExpectPorts: "本批预期",
portFilterPh: "筛选",
emptyBaselinePorts: "基线无数据",