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

Splunk关联两次搜索按平台统计错误运行数方案咨询

Splunk查询修改方案

问题原因

你之前的查询存在两处核心问题:

  1. 第一个查询提前执行stats count by Platform丢弃了RUNID字段,后续关联时没有主键,无法区分哪些RUNID存在错误
  2. 使用left join会保留全部平台的RUNID记录,就算没有匹配到错误日志也会留存,统计时自然会把无错误的运行也计入总数

实现方案

方案1:JOIN关联实现(适合数据量较小的场景)

先提取所有RUNID和对应平台的映射关系,再和有错误的RUNID做内连接,仅保留存在错误的RUNID后按平台统计:

index="myIndex" "started with profile" BD_L*
| rex "Discovery run, (?<RUNID>.+) started with profile"
| eval Platform=case(searchmatch("LINUX"),"LINUX",searchmatch("AIX"),"AIX",searchmatch("DB2"),"DB2", searchmatch("SQL"),"SQL", searchmatch("WEBSPHERE"),"WEBSPHERE", searchmatch("SYBASE"),"SYBASE", searchmatch("WINDOWS"),"WINDOWS", true(),"ZLINUX") 
| stats values(Platform) as Platform by RUNID
| join type=inner RUNID 
    [ search index="myIndex" source="/*/RUNID/*" CASE("ERROR") CTJT* 
    | rex "Run ID: (?<RUNID>\d+)"
    | dedup RUNID
    | fields RUNID ]
| stats count by Platform
| rename count AS "错误运行总量"

方案2:单查询聚合实现(性能更优,适合大数据量场景)

一次性拉取两类日志,按RUNID聚合判断是否同时存在启动记录和错误记录,再统计各平台的错误运行数:

index="myIndex" 
(("started with profile" BD_L*) OR (source="/*/RUNID/*" CASE("ERROR") CTJT*))
| rex "Discovery run, (?<RUNID>.+) started with profile"
| rex "Run ID: (?<RUNID>\d+)"
| eval is_start_log=if(searchmatch("started with profile"),1,0)
| eval is_error_log=if(searchmatch("ERROR") AND searchmatch("CTJT"),1,0)
| eval Platform=case(searchmatch("LINUX"),"LINUX",searchmatch("AIX"),"AIX",searchmatch("DB2"),"DB2", searchmatch("SQL"),"SQL", searchmatch("WEBSPHERE"),"WEBSPHERE", searchmatch("SYBASE"),"SYBASE", searchmatch("WINDOWS"),"WINDOWS", true(),"ZLINUX") 
| stats max(is_start_log) as has_start, max(is_error_log) as has_error, values(Platform) as Platform by RUNID
| where has_start=1 AND has_error=1
| stats count by Platform
| rename count AS "错误运行总量"

逻辑说明

两种方案的核心逻辑一致:

  • 先建立RUNID和对应平台的唯一映射
  • 提取所有存在错误的RUNID并去重,保证每个有错误的运行只计数1次
  • 仅保留同时存在启动记录和错误记录的RUNID,最后按平台统计数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:06:02