feat: upload alarm snapshots to webhook payloads

This commit is contained in:
2026-06-09 13:01:15 +08:00
parent 523f928303
commit 04729a0fd1
14 changed files with 853 additions and 23 deletions

View File

@@ -184,6 +184,15 @@ diagnostics_path = "logs/runtime_diagnostics.jsonl"
[case_sink]
path = "logs/cases.jsonl"
[alarm_snapshot_upload]
enabled = true
service_url = "https://ota.zhengxinshipin.com"
secret = "change-me-in-production"
object_key_prefix = "cold-display-guard/alarms"
connect_timeout_seconds = 5
read_timeout_seconds = 20
encode_timeout_seconds = 10
[webhook_retry_sink]
path = "logs/webhook_retry.jsonl"
@@ -206,6 +215,20 @@ retry_max_backoff_seconds = 1800
- `logs/webhook_retry.jsonl`Webhook 重试队列状态快照
- `logs/webhook_delivery.jsonl`Webhook 投递结果审计
当某一轮识别结果里出现 `severity=alarm``severity=warning` 的事件时,运行时会直接复用当前检测帧:
1.`ffmpeg` 把当前 RGB 帧编码成 JPEG
2. 通过 `https://ota.zhengxinshipin.com` 的 chunk-upload API 上传
3. 把上传返回的 `object_key` 追加到对应 webhook payload
相关 webhook 字段:
- `snapshot_upload_status``uploaded``error`
- `snapshot_object_key`:上传成功后的 OSS 路径
- `snapshot_file_name`:上传文件名
- `snapshot_captured_at`:抓帧时间
- `snapshot_upload_error`:上传失败原因,仅失败时返回
## 本地测试
```bash