feat(platform): add alert policy escalation
This commit is contained in:
@@ -77,19 +77,25 @@ const notificationPolicies = [
|
||||
name: 'P0 实时中断',
|
||||
target: '接入运维 + 业务责任人',
|
||||
channel: '站内告警 / 邮件 / 企业微信',
|
||||
condition: '无来源、VIN 缺失、存储不可写'
|
||||
condition: '无来源、VIN 缺失、存储不可写',
|
||||
escalationMinutes: 30,
|
||||
acceptanceCriteria: '来源恢复并持续 10 分钟,车辆服务可查到实时与历史证据'
|
||||
},
|
||||
{
|
||||
name: 'P1 数据质量',
|
||||
target: '协议解析 + 数据治理',
|
||||
channel: '站内告警 / 每日汇总邮件',
|
||||
condition: '字段缺失、链路间断、容量风险'
|
||||
condition: '字段缺失、链路间断、容量风险',
|
||||
escalationMinutes: 120,
|
||||
acceptanceCriteria: '核心字段恢复解析,影响车辆可通过 RAW 与历史证据复核'
|
||||
},
|
||||
{
|
||||
name: 'P2 趋势关注',
|
||||
target: '数智中心',
|
||||
channel: '周报 / 趋势看板',
|
||||
condition: '单源车辆、档案缺项、来源覆盖下降'
|
||||
condition: '单源车辆、档案缺项、来源覆盖下降',
|
||||
escalationMinutes: 1440,
|
||||
acceptanceCriteria: '趋势原因已归档,责任人和后续治理动作明确'
|
||||
}
|
||||
];
|
||||
|
||||
@@ -377,6 +383,11 @@ function formatDuration(minutes: number) {
|
||||
return rest > 0 ? `${hours} 小时 ${rest} 分钟` : `${hours} 小时`;
|
||||
}
|
||||
|
||||
function formatEscalationMinutes(minutes?: number) {
|
||||
if (!Number.isFinite(minutes) || Number(minutes) <= 0) return '';
|
||||
return `${formatDuration(Number(minutes))}升级`;
|
||||
}
|
||||
|
||||
function parseIssueTime(value?: string) {
|
||||
const raw = String(value ?? '').trim();
|
||||
if (!raw) return Number.NaN;
|
||||
@@ -770,8 +781,12 @@ export function Quality({
|
||||
<strong>{item.target}</strong>
|
||||
</Space>
|
||||
<div className="vp-alert-policy-detail">{item.condition}</div>
|
||||
{item.acceptanceCriteria ? <div className="vp-alert-policy-detail">验收:{item.acceptanceCriteria}</div> : null}
|
||||
</div>
|
||||
<Tag color="blue">{item.channel}</Tag>
|
||||
<Space wrap>
|
||||
{formatEscalationMinutes(item.escalationMinutes) ? <Tag color="red">{formatEscalationMinutes(item.escalationMinutes)}</Tag> : null}
|
||||
<Tag color="blue">{item.channel}</Tag>
|
||||
</Space>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user