Splunk:组合多个图表查询以获得单个 table

Splunk: Combining multiple chart queries to get a single table

今天我们有两个查询 运行

第一个查询:api 的计数按api姓名和状态

分组
index=aws* api.metaData.pid="myAppName"
| rename api.p as apiName
| chart count BY apiName "api.metaData.status"
| multikv forceheader=1
| table apiName success error NULL

显示 table 如下所示

=====================================
| apiName|| success || error || NULL|
=====================================
| Test1  || 10      || 20    || 0   |
| Test2  || 10      || 20    || 0   |
| Test3  || 10      || 20    || 0   |
| Test4  || 10      || 20    || 0   |
| Test5  || 10      || 20    || 0   |
| Test6  || 10      || 20    || 0   |

第二个查询: api 的延迟按 apiName

分组
index=aws* api.metaData.pid="myAppName" 
| rename api.p as apiName 
| rename api.measures.tt as Response_Time 
| chart min(Response_Time) as RT_fastest max(Response_Time) as RT_slowest by apiName
| table apiName RT_fastest RT_slowest

显示 table 如下所示

======================================
| apiName || RT_fastest || RT_slowest|
======================================
| Test1   || 141        || 20        |
| Test2   || 10         || 20        |
| Test3   || 10         || 20        |
| Test4   ||  0         || 20        |
| Test5   || 10         || 20        |
| Test6   || 10         || 20        |

问题:

如果您看到上面的 table,则两个 table 都与 apiName 分组。有没有一种方法可以组合这些查询,以便我得到一个类似这样的结果

|============================================ =====================| | api姓名||成功 ||错误 ||空 || RT_fastest|| RT_slowest | ================================================ =============== | |测试1 || 10 || 20. || 20. || 20. || 20. | |测试2 || 10 || 20. || 20. || 20. || 20. | |测试3 || 10 || 20. || 20. || 20. || 20. | |测试4 || 10 || 20. || 20. || 20. || 20. | |测试5 || 10 || 20. || 20. || 20. || 20. | |测试6 || 10 || 20. || 20. || 20. || 20. |

我找不到任何关于将多个图表查询合并为一个的文档。有人可以帮我解决这个问题吗?谢谢:)

这里的挑战是两个查询使用不同的分组 - 查询 1 中的 apiName 和状态以及查询 2 中单独的 apiName。简单地组合两个 chart 命令是不可能的。

但是,我们可以将第二个查询附加到第一个查询,然后合并结果。试试这个:

index=aws* api.metaData.pid="myAppName"
| rename api.p as apiName
| chart count BY apiName "api.metaData.status"
| multikv forceheader=1
| table apiName success error NULL
| append [ search index=aws* api.metaData.pid="myAppName" 
  | rename api.p as apiName 
  | rename api.measures.tt as Response_Time 
  | chart min(Response_Time) as RT_fastest max(Response_Time) as RT_slowest by apiName
  | table apiName RT_fastest RT_slowest ]
| stats values(*) as * by apiName
| table apiName success error NULL RT_fastest RT_slowest