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
今天我们有两个查询 运行
第一个查询: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