1. 介绍
  2. 通知投递流程
  3. 通知渠道
    1. 渠道列表
    2. 新建/编辑渠道
  4. 事件类型
  5. 平台公告
  6. 通知记录
  7. 用户通知偏好
  8. 项目通知
  9. 常见问题
    1. 渠道显示 Secret Missing
    2. 测试消息发送失败
    3. 用户收不到通知
    4. 通知记录显示跳过
  10. 相关链接

介绍

通知中心用于把平台事件(构建成功/失败、部署完成、告警、审批、环境异常等)按规则推送到企业微信、钉钉、飞书或 Webhook,并记录每次投递结果,便于追踪与补偿。

通知中心包含两部分:

  • 管理员配置:通知渠道、事件类型、平台公告、通知记录,入口为 管理员界面 → Notifications(/notification-admin)。
  • 用户偏好:每个用户绑定自己的 IM 账号,选择接收哪些事件,入口为右上角用户菜单 → Notification settings,或编辑用户弹窗中的通知设置。

通知中心依赖 KDO 通知服务与 KUBEDO_ENABLED 特性标志。标准 Kubernetes 环境未部署通知服务时,入口不会显示。

通知投递流程

flowchart TD
    A[平台事件<br/>构建 / 部署 / 应用 / 告警 / 审批] --> B[事件类型与分类]
    B --> C[项目通知规则]
    C --> D{用户是否绑定 IM 账号}
    D -->|否| E[跳过推送<br/>记录跳过原因]
    D -->|是| F[按事件类别 / 类型 / 渠道类型 / 严重级别过滤]
    F --> G{是否处于静默时段}
    G -->|是| H[只记录 / 不推送]
    G -->|否| I[按投递模式发送<br/>企业微信 / 钉钉 / 飞书 / Webhook]
    I --> J{投递结果}
    J -->|成功| K[写入通知记录]
    J -->|失败| L[记录失败原因]
    L --> M[管理员 Resend 重新入队]
    M --> I
    E --> K
    H --> K

投递结果会保留在通知记录中,便于排查凭据过期、网络不通或渠道配置错误等问题。

通知渠道

Notification channels 标签页管理所有通知出口。

渠道列表

列 说明
Name 渠道名称
Provider 企业微信、钉钉、飞书、Webhook
Delivery mode 机器人(Bot)或应用(App)投递方式
Scope Platform(平台级)或 Project(项目级)
Secret 凭据状态:Ready / Missing
Status 渠道启用状态
Last test 最近一次测试结果
Actions Send test / Edit / Delete
  • 默认渠道会显示 Default 徽标;平台级渠道不能设为默认渠道。
  • 删除渠道前会弹出确认框;删除后引用该渠道的规则需要重新选择。
  • 点击 Send test 会向该渠道发送一条测试消息,用于验证凭据与网络连通性。

新建/编辑渠道

表单根据 Provider 与 Delivery mode 动态展示凭据字段:

Provider 常见凭据
企业微信(WeCom) wechat_api_url、wechat_api_secret,或机器人 Webhook URL
钉钉(DingTalk) 机器人 Webhook、加签 Secret;或应用 AppKey/AppSecret/AgentId
飞书(Feishu/Lark) 机器人 Webhook、签名校验;或应用 App ID/App Secret
Webhook 目标 URL、可选认证头/Token、TLS 校验选项

凭据保存在 kubedo-notification 命名空间下由 Console 管理的 Secret 中,界面只显示 Secret 状态,不会回显密钥。修改渠道时留空密钥字段表示保持原值。

事件类型

Event types 标签页展示通知服务提供的事件类型及其分类,当前包括:

类别 事件类型
流水线 build.started、build.succeeded、build.failed、build.cancelled、deploy.started、deploy.succeeded、deploy.failed、deploy.cancelled
应用 application.alerting、application.resolved
系统 platform.announcement、maintenance.scheduled、system.test
安全 security.alert、security.vulnerability
配额 quota.warning、quota.exceeded
审批 approval.pending、approval.approved、approval.rejected

该页面为只读视图,事件类型由通知服务定义。规则和用户偏好中可引用的事件以此列表为准。

平台公告

Platform announcements 用于发布平台级公告,并按通知渠道推送给用户。适合维护通知、版本升级、策略变更等场景。

通知记录

Notification records 记录每一次通知投递,可按项目、类别、事件类型、状态筛选,也支持按关键字搜索。

列 说明
Time 触发时间
Status 投递状态(成功、失败、部分失败、跳过等)
Severity 事件严重级别
Event type 事件类型
Project / Application / Environment 关联的项目、应用与环境
Branch / commit 关联的分支与提交
Recipients 接收人
Delivery 渠道投递结果
Failure reason 失败原因
  • 点击记录可打开详情抽屉,查看渠道、投递明细、失败投递数、跳过原因、标题等完整信息。
  • Resend 会把通知重新入队,用于失败重试或补发。
  • 通知内容中的链接会跳转到对应的项目、应用、流水线或资源页面。

用户通知偏好

每个用户可以配置自己的接收方式:

配置项 说明
IM binding status 绑定状态(Bound / Not bound),显示 User ID、Open ID、Mobile、Email 等
Enable notifications 是否接收通知
Event categories 接收的事件类别;留空表示接收全部类别
Event types 接收的具体事件类型;无匹配时显示提示
Channel types 允许使用的渠道类型
Severity threshold 最低严重级别(No filter 表示不过滤)
Quiet hours 静默时段(HH:MM),静默期内只记录不推送
Digest 汇总方式:Real time / No digest / Daily / Weekly
Send test 向已绑定账号发送测试消息

编辑用户弹窗中也提供通知设置入口,管理员可协助用户完成绑定。

项目通知

项目详情页的 Notifications 标签页提供项目维度的通知健康度:

  • 已启用规则数 / 总规则数;
  • 最近 24 小时投递数与失败投递数;
  • Ready 渠道数 / 总渠道数;
  • 默认通知规则说明;
  • 失败投递与渠道凭据的排查入口。

项目管理员可以在这里维护项目级通知规则;规则未命中时会回落到平台的默认规则。

常见问题

渠道显示 Secret Missing

表示该渠道引用的 Secret 不存在或缺少必需字段。重新编辑渠道并填写凭据,或检查 kubedo-notification 命名空间中的 Secret 是否被删除。

测试消息发送失败

依次检查:Webhook URL 是否可达、Token/Secret 是否正确、目标群机器人是否启用、TLS 证书是否受信任、集群是否允许访问外部网络。

用户收不到通知

检查用户偏好中的 Enable notifications、事件类别/类型、渠道类型、严重级别阈值与静默时段;再确认项目通知规则是否命中,以及通知记录中的投递状态。

通知记录显示跳过

常见原因是用户未绑定 IM 账号、事件被用户偏好过滤、处于静默时段,或规则未匹配到接收人。详情抽屉中会给出具体的跳过原因。

相关链接