You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ElastAlert中配置过滤器实现API请求占比阈值告警?

ElastAlert 告警配置实现方案

要实现你需求的比例告警,需使用ElastAlert的percentage_match规则类型,该类型专门用于统计符合特定条件的事件在总事件中的占比,当占比超出阈值时触发告警。以下是完整的配置示例:

# 规则名称
name: API 400状态占比过高告警
# 规则类型:比例匹配
type: percentage_match
# 替换为你的ElasticSearch实际索引名称
index: your_api_log_index
# 日志时间字段,根据实际字段调整,通常为@timestamp
timestamp_field: "@timestamp"

# 基础过滤:仅处理目标API的所有请求事件
filter:
- term:
    api_url: "/v1/myapi.com"

# 统计时间窗口:10分钟
timeframe:
  minutes: 10

# 比例判断逻辑:超过阈值时触发告警
match_condition: ">"
# 告警触发阈值:5%
percentage_threshold: 5

# 定义需要统计比例的目标事件:api_status为400的请求
match_filter:
- term:
    api_status: 400

# 告警配置,根据实际需求调整
alert:
- "email"
email:
- "your-alert-email@example.com"
alert_subject: "API 400状态占比超过5%告警"
alert_text: |
  过去10分钟内,API /v1/myapi.com的请求中,400错误占比为{match_percentage}%,已超过5%阈值。
  总请求数:{total_events}
  400错误请求数:{match_events}

关键配置说明

  • percentage_match:核心规则类型,负责计算match_filter匹配事件在总过滤事件中的占比
  • filter:先圈定统计范围,只处理api_url=/v1/myapi.com的事件
  • timeframe:设置统计的时间窗口为10分钟
  • percentage_threshold:设置触发告警的比例阈值为5
  • match_filter:指定需要统计比例的目标事件(即api_status=400的请求)

只需将配置中的索引名、时间字段、告警方式等替换为你的实际环境参数即可使用。

内容的提问来源于stack exchange,提问作者Vaibhav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 18:13:31