我有包含一些时间戳字段的日志行。下面是我正在筛选的日志行的一个示例,以便对其进行处理:
{
"time": "2022-06-22T10:33:08.710037238Z",
"@version": "1",
"message": "Duration at response processing ends",
"logger_name": "com.mks.cloud.filters.MainFilter",
"thread_name": "reactor-http-epoll-1",
"level": "INFO",
"level_value": 20000,
"rqst_id_ts": "b65c37d9284584e71b1dcd84b6a74075",
"rqst_end_ts": "1655893988698",
"rqst_start_ts": "1655893988698",
"rsp_start_ts": "1655893988709",
"rsp_end_ts": "1655893988709"
}我想要做的是计算一个值,该值表示日志行中两个时间戳之间的持续时间,这样我就可以将获得的范围放入quantile_over_time()或任何其他聚合函数中。
例如,以下工作:
quantile_over_time(0.99, {app="myapp"} |~ "rsp_end_ts"
| json
| __error__ = ""
| unwrap rsp_end_ts | __error__="" [5m]) by (tsNs)然而,这不是我想要做的,因为计算时标的分位数是没有意义的。我要计算的是p99 of (rsp_end_ts - rqst_start_ts)。
我尝试了以下当然不起作用的方法,但给出了我试图做什么的想法:
quantile_over_time(0.99, {app="myapp"} |~ "rsp_end_ts"
| json
| __error__ = ""
| unwrap (rsp_end_ts - rqst_start_ts) | __error__="" [5m]) by (tsNs)如果有一种方法可以创建像rqst_duration=(rsp_end_ts - rqst_start_ts)这样的新标签
下面就是我要找的东西:
quantile_over_time(0.99, {app="myapp"} |~ "rsp_end_ts"
| json
| __error__ = ""
| unwrap rqst_duration | __error__="" [5m]) by (tsNs)我找不到关于这方面的任何文档,这让我很惊讶,我认为(但似乎我可能错了)这是一个常见的用例。任何帮助都将不胜感激:)。
https://stackoverflow.com/questions/72720466
复制相似问题