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

如何在AWS CloudWatch创建按SOAP操作分组的HTTP状态统计监控小部件?

按SOAP操作分组统计HTTP状态码的监控小部件实现方案

可行方案步骤

通过日志解析+时间窗口关联的方式,能实现你需要的统计效果,具体操作如下:

  • 提取HTTP状态码字段
    先用正则解析从日志中提取状态码,生成独立可统计的字段:

    parse @message '"HTTP/1.1 *"' as status_code
    | fields @IngestionTime, status_code
    
  • 提取SOAP操作名
    根据SOAP请求体的XML结构,用正则提取操作名,同时保留关联用的 ingestion 时间:

    parse @message '<soap:Body>.*<([a-zA-Z0-9]+)Request>.*</[a-zA-Z0-9]+Request>.*</soap:Body>' as soap_operation
    | fields @IngestionTime, soap_operation
    

    注:请根据实际SOAP请求的标签结构调整正则表达式,确保能准确匹配到操作名。

  • 时间窗口关联两类日志
    利用@IngestionTime做时间窗口匹配,将同一次请求的SOAP操作日志和HTTP状态日志关联,假设两类日志的时间误差在1秒内:

    // 定义SOAP日志数据集
    soap_data = parse @message '<soap:Body>.*<([a-zA-Z0-9]+)Request>.*</[a-zA-Z0-9]+Request>.*</soap:Body>' as soap_operation
    | fields @IngestionTime, soap_operation
    
    // 定义HTTP状态日志数据集
    http_data = parse @message '"HTTP/1.1 *"' as status_code
    | fields @IngestionTime, status_code
    
    // 按1秒时间窗口关联日志
    join soap_data, http_data on abs(soap_data.@IngestionTime - http_data.@IngestionTime) <= 1000
    | fields soap_operation, status_code
    
  • 分组统计生成目标结果
    关联完成后,按需求生成统计数据:

    • 按SOAP操作+状态码分组统计:
      | stats count() as count by soap_operation, status_code
      
    • 仅统计所有状态码的总数(即你给出的表格样式):
      | stats count() as count by status_code
      

关键注意事项

  • 时间窗口阈值需根据实际日志的生成延迟调整,若日志时间误差更大,可增大时间差的毫秒值。
  • 若MDC字段未在Logs Insight显示,检查日志采集配置是否正确输出MDC字段(比如Logback配置中需明确指定将MDC字段作为日志字段输出)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:03:24