如何计算 MQL 中两个 Stackdriver 指标之间的差异和比率?
这个问题有两个部分,但如果您能帮助我解决一个问题,我将不胜感激:
- 计算两个时间序列之间的差异
- 计算两个时间序列之间的比率。如果可能,附加组件:应该优雅地处理分母为 null 的情况。
我到目前为止,但它没有产生预期的结果(结果时间序列始终为零):
fetch global
| { t_0:
metric 'custom.googleapis.com/http/server/requests/count'
| filter
(metric.service == 'service-a' && metric.uri =~ '/api/started')
| align next_older(1m);
t_1:
metric 'custom.googleapis.com/http/server/requests/count'
| filter
(metric.service == 'service-a' && metric.uri =~ '/api/completed')
| align next_older(1m)
}
| outer_join 0
| div
显然,代码已被匿名化。我想要完成的是跟踪已启动和已完成的进程之间是否存在差异。
编辑/附加信息 2021-11-18
我使用projects.timeSeries v3 API进行进一步调试。显然,outer_join 操作假定两个时间序列之间的标签相同,但在我的示例中并非如此。
有谁知道,如何删除标签,所以我可以执行连接和聚合?
编辑/附加信息 2021-11-19
聚合现在可以正常工作,因为我设法使用map drop[...]
maplet 删除了标签。
挑战确实是标签,因为这些标签是由 Micrometer 的 Spring Boot 实现生成的。由于这两个指标之间的标签不同,因此连接操作始终为空join
,或者只有第二个时间序列outer_join
。