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

如何使用GCP的MQL计算API请求失败百分比

GCP MQL计算API请求失败百分比解决方案

问题背景

需要通过MQL计算API请求的失败百分比,逻辑为(5XX错误总数 ÷ 总请求数) × 100。GCP无法直接通过日志型指标实现该计算,自行编写部分MQL后遇到瓶颈。相关信息:

  • 日志指标:logging.googleapis.com/user/my_apis
  • 过滤字段:URL(目标API为https://example.com/myapi/services/myapi)、STATUS(包含2XX、5XX状态码)
  • 已编写的部分查询代码:
fetch l7_lb_rule
| metric logging.googleapis.com/user/my_apis
| { t_0:
    filter (metric.URL
     =~ 'https://example.com/myapi/services/myapi' && metric.STATUS='200')
| align 

完整解决方案

最终MQL查询代码

fetch l7_lb_rule
| metric logging.googleapis.com/user/my_apis
| filter metric.URL =~ 'https://example.com/myapi/services/myapi'
| {
    # 统计所有5XX错误请求数
    errors: filter metric.STATUS matches '5..' | sum;
    # 统计该API的总请求数
    total: sum;
  }
| ratio errors / total
| multiply 100
| align rate(1m)  # 按1分钟窗口聚合,可根据需求调整时间粒度
| every 1m

代码逻辑说明

  • 锁定目标API:先通过filter metric.URL =~ 'https://example.com/myapi/services/myapi'过滤出指定API的所有请求,排除无关数据。
  • 分支统计数据:用花括号拆分两个统计分支:
    • errors分支:通过metric.STATUS matches '5..'匹配所有5XX状态码,再用sum统计错误请求总数;若STATUS是数值类型,替换为metric.STATUS >= 500 && metric.STATUS < 600。
    • total分支:直接用sum统计该API的全部请求数,自动包含2XX、5XX等所有状态。
  • 计算百分比:通过ratio errors / total得到错误请求占比,再用multiply 100转换为百分比格式。
  • 时间聚合设置:align rate(1m)和every 1m设置时间聚合窗口,可根据业务需求调整为5分钟、1小时等粒度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:52:13