Skip to content

处置与归并 ​

一条告警从发生到关闭,虹元记三样东西:任务上的处置记录,按时间拼起来的处置时间线,把一串告警归成一件事的归并组。三样都只记事实。派不派单、归不归组由智悟算,确认、拆分、合并由人在工作台做,虹元把每一步留下来。

处置记录 ​

任务原来只有状态流转。到场、采取了什么措施、结果如何,现在都可以逐条记在任务上:

POST /api/uancore/objects/tasks/{id}/steps
字段说明
tenant_code必填,要和任务所属租户一致
kind必填。arrive 到场、measure 处置措施、result 处置结果、handover 交接、note 备注
text必填,一条最多 2000 字
at事情发生的时刻,不给就是现在。可以补录,不能晚于当前 5 分钟以上。带时区按 RFC3339;没写时区的按北京时间
by必填,经办人,最多 64 字

记录追加在任务体的 steps 数组末尾,只追加不覆盖。每条另记虹元收到的时刻与记录时任务所处的状态,补录的一眼看得出来。记录不改任务状态,写审计。一条任务最多 200 条记录。

办结结果 ​

任务转到已完成时可带 result_code:

值含义
eliminated已消除
controlled已控制
false_alarm误报
to_hazard转隐患
other其他

结果代码只在办结时记。带在别的流转上(取消、接手)照常流转,只是不记,回包 resultCodeIgnored=true。不认识的值回 400,任务不动。

处置留痕不许改写 ​

任务体里的 history(流转)、steps(处置记录)、result_code(结果)、edge_notes(推给现场的说明)四项是处置留痕。建单时不能预填,POST /objects/tasks/{id}/body 也不能碰,带了就回 400。预填等于凭空写出接手、到场、办结,时间线会把它当成事实排进去。

推给现场的超时提醒(/edge_note)推完会追加进 edge_notes,送没送到现场事后查得到。

两个人同时办结 ​

流转写库时带着读到的原状态。两个人同时点完成,先写成的那个生效,后到的回 409,history 里只多一条。调用方收到 409 或 changed=false,一律当"已经有人办了",刷新任务看结果,不要原样重发。

不是处置的任务 ​

复盘请求(postmortem_request)是给智悟的内部待办,不是现场处置。这类任务照常流转、照常留痕,但有三处不同:

  • 流转不推给现场节点,现场告警不会因为复盘写完被改成已确认。
  • /edge_note 回 400。
  • 现场值守确认真警、裁定误报时会批量改事件上的任务,这类任务不在其中。

流转回包里推没推现场分三种,调用方按字段认,不用认文字:

情况pushedToEdgepushSkippedpushError
推到了true空空
有意不推:不是处置的任务falsenon_disposal空
有意不推:任务不挂事件falsenot_on_event空
该推没推到false空说明文字

处置时间线 ​

GET /api/uancore/events/{id}/timeline?tenant_code=<租户码>

复盘要回答"这条告警从发生到关闭,每一步是什么时候、谁做的"。事实原本分散在事件、审计、任务、误报案例里,时间线按时间把它们拼成一张步骤表,只读不写。凭据同事件查询,tenant_code 必填,客户会话只能取自己租户。可选 exclude_kind,排除某几类知识,比如复盘时排除自己上一版复盘。

回包:

字段内容
event事件摘要:类型、来源(视频或随手拍)、严重度、发生与收到时刻、裁定、机器判定、溯源
steps按时刻升序的步骤。每步有时刻、类型、操作者、一句中文说明、来源表与主键
undated时刻解析不出的条目,正常为空
moments发生、收到、裁定、判定、建单、接手、办结、闭环八个时刻,没有的为空
durations各段用时(秒):收到、裁定、建单、接手、办结、总时长,算不出为空
sla规则时限与是否超时
tasks挂在事件上的任务,带结果代码、接手与办结时刻、记录条数
truncated任务、审计、知识读到上限时为真,这时复盘不能当成拿全了
asOf出数时刻,判开着的任务超没超时以它为准

步骤类型覆盖发生、收到、机器判定、裁定、派整改、待验收、闭环、建单、通知、接手、办结、取消、处置记录、现场说明、升级、误报案例。

几条口径:

  • 缺的时刻给空,不拿别的时刻顶。
  • 复盘请求这类不是处置的任务列在 tasks 里,不参与时刻与用时。
  • 谁下的结论写清楚。模型自动确认的裁定与判定,说明里写"未经人工复核",标 basis=machine;人工裁定标 basis=human。模型成文的知识标 machineGenerated=true。这几类只说明模型判过、写过,不能当复盘依据引用。
  • 裁定理由取裁定当时写进审计的那一句。事件行上的备注后来会被处置推进覆盖,两者不一致时另列。
  • 通知只出各通道的状态,不带收件号码;模型摘要只出成败,不带正文。

归并组 ​

值班员要处理的是一件事,进来的是一条条报警。归并组把它们归成一件,分三层:

层含义首出
L1同一点位同一类反复报有
L2同一点位同时出现或连锁出现的一串有
L3同场站不同来源(智眸、智营、随手拍等)的关联不设,只标关联

归哪些由智悟按登记在虹元的归并口径算,回写到虹元。虹元只存结果与人工确认、拆分、合并的痕迹。归并不改事件,不碰事件裁定,不建单。

接口作用
POST /api/uancore/incidents/upsert智悟回写一组。按来源键幂等,成员只增不删
GET /api/uancore/incidents列表,按最后一条的时刻倒序
GET /api/uancore/incidents/{id}详情:组、成员带事件摘要、同一批事件在别的层所属的组
POST /api/uancore/incidents/{id}/confirm人工确认
POST /api/uancore/incidents/{id}/split人工拆分,拆出去的成员另成一组
POST /api/uancore/incidents/{id}/merge人工合并,把另一组的成员并进来

凭据同任务接口。客户租户的门户会话只能动自己租户,看别家的组一律 404。

几条规矩 ​

  • 事实数由虹元算。 首末时刻、事件类型、来源、最高严重度、成员数都按成员事件重算,智悟报的只拿来比对,对不上的列在回包里。
  • 一条事件在同一层只属一个组。 已在同层别的组里的成员跳过,回包说明在哪一组。人工拆出去的事件,智悟下次重放不会拉回原组。
  • 测试与真实分开数。 成员全是测试流才算测试组。组上分开记测试成员数,统计真实件数只看真实成员。
  • 人定过的首出锁住。 确认、拆分、合并以后首出由人定,智悟再提别的首出不算数。L3 组不设首出。
  • 被并走的组关闭。 状态为 closed,指向并入的那组。智悟再往里加成员,顺着指向加到活着的那组。

组的状态:auto 智悟算的,confirmed 人确认过,split 人工拆出来的,closed 被并走。对已关闭的组做确认、拆分、合并回 409。

列表缺省只回活着的真实组:不回被并走的组(统计归并后件数时数进去就重了),不回测试组。要看测试组带 include_test=true,要看被并走的组显式带 state=closed。

并发与 409 ​

几路同时写同一组撞了,虹元整个事务重来,三次都撞回 409,回包 retryable: true,原样再发一次即可。别的 409(状态已经变了)回 retryable: false,先重新读再决定。全站所有 409 回包都带这个字段。

保留期 ​

成员随事件一起清。清完按剩下的成员重算,一条不剩的组删掉。只有人确认过的真实组留作记录;测试组确认过也删,测试数据的派生物不比测试事件活得长。

相关文档 ​

沅虹科技 · 智建管建设,智安保稳产,智觉察现场,智悟定行动