Skip to main content
腾讯云直播(CSS)在推流开始和推流中断时向回调地址发送事件通知。本集成把回调地址指向 Flashduty:每路直播流对应一条 Flashduty 告警,推流异常中断时触发,同一路流重新推流时自动关闭。主播正常停播不会产生告警。 本集成只处理 推流回调 和 断流回调 两类事件。回调模板中的其他事件(推流异常、录制、截图、审核、拉流转推等)即使发到 Flashduty,也会被接收并忽略,不会产生告警。

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 腾讯云直播,点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 腾讯云直播,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在腾讯云直播中配置


回调通过「回调模板」配置,模板需要绑定到推流域名后才会生效。
1

创建回调模板

  1. 登录 云直播控制台,选择 功能配置 > 直播回调
  2. 点击 创建模板,填写 模板名称
  3. 回调密钥 可以留空,也可以沿用已有设置。Flashduty 通过推送地址中的 integration_key 识别集成,不校验回调中的 sign 字段
  4. 在 回调类型 中,在 推流回调 和 断流回调 两项填写 Flashduty 的推送地址。两项都要填写:只填断流回调时,告警不会在推流恢复后自动关闭
  5. 点击 保存
如果推流域名已经绑定了回调模板(例如用于录制回调),可以直接在该模板的推流回调和断流回调中填写 Flashduty 推送地址。这两项已填写业务系统的地址时,需要由业务系统把回调转发给 Flashduty。
2

把模板绑定到推流域名

  1. 在模板创建成功的提示中点击 去绑定域名,或在模板列表中点击 绑定域名
  2. 选择上一步的回调模板,勾选需要告警的推流域名
  3. 点击 确定
绑定后约 5 到 10 分钟生效。也可以在 域名管理 中打开推流域名的 管理 页,在 模板配置 中查看或更换该域名绑定的回调模板。
3

验证生命周期

云直播没有「发送测试回调」按钮。用 OBS 等推流工具向该推流域名推一路测试流:
  1. 开始推流:Flashduty 收到推流回调,此时没有告警需要关闭,不会产生告警
  2. 在推流过程中断开推流端的网络:Flashduty 收到断流回调并触发告警
  3. 恢复网络后重新推流:原告警自动关闭
  4. 在推流工具中点击停止推流:这是正常停播,不会产生告警

Alert Key


Flashduty 用账号 APPID appid、推流域名 app、推流路径 appname 和流名称 stream_id 计算 Alert Key。同一路流的推流回调和断流回调携带相同的这四个字段,因此落在同一条告警上。 错误码、错误描述、推流节点、推流端 IP、推流时长和 sequence 的变化都不会改变 Alert Key。sequence 标识一次推流活动,重新推流时会变化,因此不用于计算 Alert Key。 推流回调或断流回调缺少 appid、app、appname 或 stream_id,或回调没有 event_type 时,Flashduty 会拒绝该请求并返回错误,云直播会按回调重试规则重试。

告警生命周期


云直播本身不区分「告警」和「恢复」,只通知推流开始和推流中断。上表是 Flashduty 对这两类通知的约定:异常断流视为故障,同一路流重新推流视为恢复。
一路流异常断流后如果不再推流(例如当天的直播已经结束),云直播不会再发送回调,告警会一直保持触发,需要在 Flashduty 中手动关闭。

告警等级


回调中没有等级字段。异常断流触发的告警一律为 Critical。errcode 表示断流原因,会写入标签和描述,含义请参阅云直播文档中的错误码表。

告警内容


  • 标题:异常断流时为 Live stream interrupted: <推流域名>/<推流路径>/<流名称>
  • 描述:错误描述 errmsg,后附错误码、推流节点 IP、推流端 IP 和推流时长(毫秒)
  • 标签:resource(<推流域名>/<推流路径>/<流名称>)、appid、app、appname、stream_id、event_type、errcode、errmsg、node、user_ip、sequence、push_duration
回调中的 stream_param(推流 URL 参数,可能包含推流鉴权的 txSecret)、sign 和 t 不会写入标签。

排查问题


  • Flashduty 没有收到回调:确认回调模板已绑定到实际推流的域名,且绑定后已等待 5 到 10 分钟;确认模板中的推流回调和断流回调填写的是完整推送地址,包含 integration_key
  • 主播停播后产生了告警:只有推流端主动停止推流时 errcode 才为 1。推流端被强制结束(例如进程退出或网络中断)时,断流回调的 errcode 通常不为 1,Flashduty 按异常断流触发告警。可以在告警标签 errcode 和 errmsg 中查看云直播给出的断流原因
  • 告警没有自动关闭:确认模板中填写了推流回调;确认重新推流时推流域名、推流路径和流名称都与断流前一致
  • 云直播重复发送同一条回调:Flashduty 没有返回 HTTP 200 时,云直播每隔 1 分钟重试,最多 12 次。检查推送地址是否正确,以及集成是否已被删除
回调字段和错误码的含义请参阅腾讯云文档 推流/断流事件通知,回调模板的配置请参阅 回调配置。