警报和规则编辑

APM 应用程序允许您定义 规则 来检测 APM 数据中的复杂条件,并在满足这些条件时触发内置的 操作

支持以下 规则

  • 阈值规则: 当延迟或失败事务率异常时发出警报。阈值规则可以像您想要的那样广泛或细粒度,使您能够准确地定义何时发出警报 - 无论是在环境级别、服务名称级别、事务类型级别和/或事务名称级别。
  • 异常规则: 当服务的延迟异常时发出警报。异常规则可以在环境级别、服务级别和/或事务类型级别设置。
  • 错误计数规则: 当服务中的错误数量超过定义的阈值时发出警报。错误计数规则可以在环境级别、服务级别和错误组级别设置。
Create an alert in the APM app

下面,我们将逐步介绍创建两个 APM 规则的过程。

有关 创建规则 悬浮面板的完整演练,包括每个可配置属性的详细信息,请参阅 Kibana 的 创建和编辑规则

示例:创建延迟异常规则编辑

当服务的延迟异常时,延迟异常规则会触发。由于应用程序的某些部分比其他部分更重要,并且对延迟的容忍度不同,因此我们将针对服务中的特定事务。

在继续之前,请确定您要为其创建延迟异常规则的服务名称、事务类型和环境。本指南将根据以下条件为所有服务创建警报

  • 服务:{your_service.name}
  • 事务:{your_transaction.name}
  • 环境:{your_service.environment}
  • 严重性级别:严重
  • 每五分钟检查一次
  • 当规则状态更改时,向 Slack 频道发送警报

在 APM 应用程序中的任何页面上,选择 警报和规则 > 创建异常规则。更改规则的名称,但不要编辑标签。

根据上述条件,定义以下规则详细信息

  • 服务 - {your_service.name}
  • 类型 - {your_transaction.name}
  • 环境 - {your_service.environment}
  • 具有严重性的异常 - 严重
  • - 5 分钟

接下来,添加连接器类型。可以选择多个连接器,但在此示例中,我们对 Slack 感兴趣。选择 Slack > 创建连接器。输入连接器的名称,并粘贴您的 Slack Webhook URL。如果您需要创建一个,请参阅 Slack 的 Webhook 文档。

默认消息作为警报的起点提供。您可以使用 Mustache 模板语法,即 {{variable}} 在检测到条件时将其他警报值传递给操作。可以通过选择 添加变量 按钮 添加变量按钮 访问可用变量列表。

单击 保存。您的规则已创建,现在处于活动状态!

示例:创建错误计数阈值警报编辑

当服务中的错误数量超过定义的阈值时,错误计数阈值警报会触发。由于某些错误比其他错误更重要,因此本指南将重点关注特定的错误组 ID。

在继续之前,请确定您要为其创建延迟异常规则的服务名称、环境名称和错误组 ID。查找错误组 ID 的最简单方法是选择您感兴趣的服务,然后导航到 错误 选项卡。

本指南将根据以下条件为错误组 ID 创建警报

  • 服务:{your_service.name}
  • 环境:{your_service.environment}
  • 错误分组键:{your_error.ID}
  • 错误率在过去五分钟内超过 25 个错误
  • service.nameservice.environment 分组警报
  • 每 1 分钟检查一次
  • 通过电子邮件将警报发送给网站可靠性团队

在 APM 应用程序中的任何页面上,选择 警报和规则 > 创建错误计数规则。更改警报的名称,但不要编辑标签。

根据上述条件,定义以下规则详细信息

  • 服务: {your_service.name}
  • 环境: {your_service.environment}
  • 错误分组键: {your_error.ID}
  • 高于 - 25 个错误
  • 在过去 - 5 分钟
  • - service.name service.environment
  • - 1 分钟

或者,您可以使用 KQL 过滤器来限制警报的范围

  1. 打开 使用 KQL 过滤器
  2. 添加过滤器,例如,要实现与上述示例相同的效果

    service.name:"{your_service.name}" and service.environment:"{your_service.environment}" and error.grouping_key:"{your_error.ID}"

使用 KQL 过滤器来限制范围适用于延迟阈值失败事务率阈值错误计数阈值规则。

选择 电子邮件 连接器,然后单击 创建连接器。填写所需的详细信息:发件人、主机、端口等,然后单击 保存

默认消息作为警报的起点提供。您可以使用 Mustache 模板语法,即 {{variable}} 在检测到条件时将其他警报值传递给操作。可以通过选择 添加变量 按钮 添加变量按钮 访问可用变量列表。

单击 保存。警报已创建,现在处于活动状态!

查看活动警报编辑

活动警报在 APM 应用程序中以多种方式显示和分组。

按服务组查看警报编辑

如果您使用的是 服务组 功能,则可以按服务组查看警报。从服务组概述页面,单击红色警报指示器以打开 警报 选项卡,其中包含与创建服务组时使用的过滤器匹配的预定义过滤器。

Example view of service group in the APM app in Kibana

按服务查看警报编辑

可以在任何服务的上下文中查看警报。选择服务后,转到 警报 选项卡以查看为所选服务处于活动状态的任何警报。

View active alerts by service

管理警报和规则编辑

在 APM 应用程序中,选择 警报和规则 > 管理规则 以转到 Kibana 规则 页面。在此页面上,您可以禁用、静音和删除 APM 警报。

更多信息编辑

有关更多信息,请参阅 警报

如果您使用的是具有安全性的 本地 Elastic Stack 部署,则 Elasticsearch 和 Kibana 之间的通信必须配置 TLS。有关更多信息,请参阅警报 先决条件