0

截至今天,我们有两个正在运行的查询 

第一个查询:按 apiName 和状态分组的 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

它显示了一个如下所示的表格

=====================================
| 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   |

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

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

它显示了一个类似下面的表格

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

问题:

如果您看到上面的表格,这两个表格都使用apiName分组。有没有办法组合这些查询,以便我得到一个类似这样的结果

|=================================================== =================| | 接口名称 || 成功 || 错误 || 空|| RT_最快|| RT_最慢 | ==================================================== ================| | 测试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. |

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

4

1 回答 1

2

这里的挑战是两个查询使用不同的分组 - query1 中的 apiName 和 status 和 query2 中的单独 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
于 2022-02-18T17:50:39.643 回答