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

如何统计对比正则匹配数量 实现Sumo Logic下API调用频次统计

Sumo Logic API调用频次统计优化方案

问题原因

你当前的查询是将每个API单独解析为独立字段,按多字段分组统计后自然会生成多列表格,API数量越多表格越宽。

优化方案

方案1:统一解析API路径(推荐)

用单个正则匹配所有API路径,统一存入同个字段后分组统计,最终只会生成两列表格:

_sourceCategory="my_category"
// 匹配所有API路径前缀,剥离尾部的数字参数
| parse regex "GET.+443 (?<api_path>/user/v1(?:/userNumber)?)\d+"
// 路径映射为业务层面的API名称,新增API只需在此添加映射规则
| case(
    api_path = "/user/v1/", "getUserByUserId",
    api_path = "/user/v1/userNumber", "getUserByUserNumber",
    "未匹配API"
  ) as api_name
// 按API名称分组统计调用次数
| count by api_name
// 可选:按调用次数降序排列
| sort _count desc

方案2:已有解析逻辑不变,用unpivot转列成行

如果已经写了大量独立parse语句不想修改,可以用unpivot操作把多列结果转为行格式:

_sourceCategory="my_category"
| parse regex "GET.+443 (?<getUserByUserId>/user/v1/)\d+" nodrop
| parse regex "GET.+443 (?<getUserByUserNumber>/user/v1/userNumber)\d+" 
| count by getUserByUserId, getUserByUserNumber
// 多列转成行
| unpivot api_name, api_value for getUserByUserId, getUserByUserNumber
// 过滤空值
| where !isEmpty(api_value)
| sum(_count) as 调用次数 by api_name

效果说明

两种方案最终输出都只有API名称和调用次数两列,后续新增统计API也不会增加列数,可读性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:57:03