创建失败事务率阈值规则
您可以创建失败事务率阈值规则,以便在服务中的事务错误率超过定义阈值时向您发出警报。阈值规则可以在不同级别进行设置:环境、服务、事务类型和事务名称。添加操作以通过服务或第三方集成(例如邮件、Slack、Jira)引发警报。
要创建失败事务率阈值规则,您需要具备以下条件
此规则查询来自 APM 索引设置的指标索引(当 xpack.apm.searchAggregatedTransactions 不为 never 时)或来自 APM 索引设置的事务索引。默认索引模式为 metrics-apm*、apm-* 和 metrics-*.otel-*。您不能在每个规则的基础上覆盖这些索引。
这些步骤展示了如何使用警报 UI。您也可以直接从应用程序中的任何页面创建失败事务率阈值规则。点击警报和规则按钮,选择创建阈值规则,然后选择失败事务率。当您通过这种方式创建规则时,名称和标签字段将预先填充,但您仍然可以更改它们。
要创建您的失败事务率阈值规则
- 从可观测性 UI,转到警报。
- 从警报页面中选择管理规则,然后选择创建规则。
- 为您的规则输入名称,以及用于更精细报告的任何可选标签(如果不确定,请留空)。
- 从 APM 用例中选择失败事务率阈值规则类型。
- 选择适当的服务、类型、环境和名称(或保留为 ALL 以包含所有选项)。或者,您可以选择使用 KQL 过滤并输入 KQL 表达式以限制规则的作用域。
- 在高于中输入失败率(默认为 30%)。
- 在最近中定义要评估的时间段(默认为最近 5 分钟)。
- 选择如何按以下项对警报分组。每个唯一值都将创建一个警报。
- 定义检查规则的时间间隔(例如,每 1 分钟检查一次)。
- (可选)设置操作。
- 保存您的规则。
您可以使用与第三方系统交互、写入日志或索引或发送用户通知的操作来扩展您的规则。您可以随时向规则添加操作。您可以在不添加操作的情况下创建规则,也可以为单个规则定义多个操作。
要向规则添加操作,您必须首先为该服务(例如电子邮件或外部事件管理系统)创建一个连接器,然后您可以将其用于不同的规则,每个规则都可以有其自己的操作频率。
连接器类型
连接器为存储服务连接信息以及与第三方系统集成提供了一个中心位置。在为警报规则定义操作时,可以使用以下连接器
- 案例 (Cases)
- D3 Security
- 电子邮件
- IBM Resilient
- 索引
- Jira
- Microsoft Teams
- 可观测性 AI 助手
- Opsgenie
- PagerDuty
- 服务器日志
- ServiceNow ITOM
- ServiceNow ITSM
- ServiceNow SecOps
- Slack
- Swimlane
- Torq
- Webhook
- xMatters
部分连接器类型是付费商业功能,而其他则是免费的。有关 Elastic 订阅级别的比较,请前往订阅页面。
有关创建连接器的更多信息,请参考连接器。
操作频率
操作变量
使用默认通知消息或对其进行自定义。您可以通过点击“添加变量”图标 并从可用变量列表中进行选择,为消息添加更多上下文。
以下变量特定于此规则类型。您也可以指定适用于所有规则的通用变量。
context.alertDetailsUrl- 链接到警报故障排除视图以获取更多上下文和详细信息。如果未配置
server.publicBaseUrl,则此项将为空字符串。 context.environment- 为其创建警报的事务类型。
context.grouping- 包含正在报告数据的组的对象。
context.interval- 满足警报条件的时间段的长度和时间单位。
context.reason- 告警原因的简要说明。
context.serviceName- 为其创建警报的服务。
context.threshold- 高于此值的任何触发值都会导致警报触发。
context.transactionName- 为其创建警报的事务名称。
context.transactionType- 为其创建警报的事务类型。
context.triggerValue- 突破阈值并触发警报的值。
context.viewInAppUrl-
链接到警报源。
当服务中的事务错误数量超过定义的阈值时,失败事务率阈值警报会被触发。
在继续之前,请确定您要为其创建失败事务率阈值规则的服务名称、环境名称和事务类型。
本指南将根据以下标准为错误组 ID 创建警报
- 服务:
{your_service.name} - 事务:
{your_transaction.name} - 环境:
{your_service.environment} - 最近五分钟内的错误率高于 30%
- 按
service.name和service.environment对警报进行分组 - 每 1 分钟检查一次
- 通过电子邮件将警报发送给站点可靠性团队
从应用程序中的任何页面,选择警报和规则 → 创建阈值规则 → 失败事务率。更改警报的名称(如果您愿意),但不要编辑标签。
根据上述标准,定义以下规则详细信息
- 服务:
{your_service.name} - 类型:
{your_transaction.name} - 环境:
{your_service.environment} - 高于:
30% - 最近:
5 分钟 - 警报分组依据:
service.nameservice.environment - 检查频率:
1 分钟
接下来,选择电子邮件连接器并点击创建连接器。填写所需详细信息:发件人、主机、端口等,然后选择保存。
提供了一条默认消息作为警报的起点。您可以使用 Mustache 模板语法 ({{variable}}) 在检测到条件时将附加警报值传递给操作。点击“添加变量”图标 可以访问可用变量列表。
选择保存。警报已创建,现已处于活动状态!