Skip to content

关于本页

本页介绍更夫所基于的开源内核 Keep 的通用能力。更夫在其上提供国内化增强:钉钉/企业微信/飞书通知、国产大模型接入、LDAP 认证与值班管理。部署与上手请看快速上手。

拓扑处理器是 Keep 的核心组件,通过基于基础设施拓扑关联告警来帮助创建有意义的事件,反映服务与应用程序之间的关系。 它自动分析传入告警及其与基础设施拓扑的关系,当多个相关服务或应用程序组件受到影响时创建事件。

阅读更多关于服务拓扑的信息。

TIP

拓扑处理器默认禁用。要启用它,请设置环境变量 KEEP_TOPOLOGY_PROCESSOR=true。

工作原理 ​

  1. 服务发现:处理器维护基础设施拓扑的映射,包括:

    • 服务及其关系
    • 应用程序及其组成服务
    • 不同组件之间的依赖关系
  2. 告警处理:每隔几秒钟,处理器:

    • 分析最近告警
    • 将告警映射到拓扑中的服务
    • 基于应用程序级别影响创建或更新事件
  3. 事件创建:当应用程序内的多个服务有活动告警时:

    • 创建类型为"拓扑"的新事件
    • 将相关告警分组在此事件下
    • 提供有关受影响应用程序及其服务的上下文

配置 ​

环境变量 ​

变量描述默认
KEEP_TOPOLOGY_PROCESSOR启用/禁用拓扑处理器false
KEEP_TOPOLOGY_PROCESSOR_INTERVAL处理告警的间隔(秒)10
KEEP_TOPOLOGY_PROCESSOR_LOOK_BACK_WINDOW告警关联的回顾窗口(分钟)15

事件管理 ​

创建 ​

当处理器检测到影响应用程序内多个服务的告警时:

  • 创建类型为"topology"的新事件
  • 将其命名为"Application incident: {application_name}"
  • 自动确认事件
  • 将所有相关告警链接到事件

解决 ​

可以配置事件在以下情况下自动解决:

  • 所有相关告警都已解决
  • 满足特定解决条件

最佳实践 ​

  1. 服务映射

    • 确保告警中的服务与拓扑定义匹配
    • 保持拓扑信息最新
  2. 应用程序定义

    • 将相关服务分组为逻辑应用程序
    • 定义清晰的服务边界
  3. 告警配置

    • 在告警中包含服务信息
    • 在监控工具中使用一致的服务命名

示例 ​

如果您有一个由多个微服务组成的"payment-service"应用程序:

json
{
  "application": "payment-service",
  "services": ["payment-api", "payment-processor", "payment-database"]
}

当 payment-api 和 payment-database 的告警传入时,拓扑处理器将:

  1. 识别这些服务属于同一应用程序
  2. 为"payment-service"创建单个事件
  3. 将两个告警分组在此事件下
  4. 在事件描述中提供应用程序级别上下文

限制 ​

  • 目前仅支持基于应用程序的事件创建
  • 每次只能有一个活动事件
  • 需要告警中的服务信息进行关联

基于 MIT 协议开源的 Keep · 由更夫社区维护