拓扑处理器是 Keep 的核心组件,通过基于基础设施拓扑关联告警来帮助创建有意义的事件,反映服务与应用程序之间的关系。 它自动分析传入告警及其与基础设施拓扑的关系,当多个相关服务或应用程序组件受到影响时创建事件。
阅读更多关于服务拓扑的信息。
TIP
拓扑处理器默认禁用。要启用它,请设置环境变量 KEEP_TOPOLOGY_PROCESSOR=true。
工作原理
服务发现:处理器维护基础设施拓扑的映射,包括:
- 服务及其关系
- 应用程序及其组成服务
- 不同组件之间的依赖关系
告警处理:每隔几秒钟,处理器:
- 分析最近告警
- 将告警映射到拓扑中的服务
- 基于应用程序级别影响创建或更新事件
事件创建:当应用程序内的多个服务有活动告警时:
- 创建类型为"拓扑"的新事件
- 将相关告警分组在此事件下
- 提供有关受影响应用程序及其服务的上下文
配置
环境变量
| 变量 | 描述 | 默认 |
|---|---|---|
KEEP_TOPOLOGY_PROCESSOR | 启用/禁用拓扑处理器 | false |
KEEP_TOPOLOGY_PROCESSOR_INTERVAL | 处理告警的间隔(秒) | 10 |
KEEP_TOPOLOGY_PROCESSOR_LOOK_BACK_WINDOW | 告警关联的回顾窗口(分钟) | 15 |
事件管理
创建
当处理器检测到影响应用程序内多个服务的告警时:
- 创建类型为"topology"的新事件
- 将其命名为"Application incident: {application_name}"
- 自动确认事件
- 将所有相关告警链接到事件
解决
可以配置事件在以下情况下自动解决:
- 所有相关告警都已解决
- 满足特定解决条件
最佳实践
服务映射
- 确保告警中的服务与拓扑定义匹配
- 保持拓扑信息最新
应用程序定义
- 将相关服务分组为逻辑应用程序
- 定义清晰的服务边界
告警配置
- 在告警中包含服务信息
- 在监控工具中使用一致的服务命名
示例
如果您有一个由多个微服务组成的"payment-service"应用程序:
json
{
"application": "payment-service",
"services": ["payment-api", "payment-processor", "payment-database"]
}当 payment-api 和 payment-database 的告警传入时,拓扑处理器将:
- 识别这些服务属于同一应用程序
- 为"payment-service"创建单个事件
- 将两个告警分组在此事件下
- 在事件描述中提供应用程序级别上下文
限制
- 目前仅支持基于应用程序的事件创建
- 每次只能有一个活动事件
- 需要告警中的服务信息进行关联