You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算Loki日志行中两个时间戳之间的时间间隔值?

计算Loki日志行中两个时间戳的时长

目标日志内容

2022-07-28 00:19:44 Ana-Utils279
{"message": "Loaded ana_model", "timestamp": "2022-07-27T18:49:44.682875Z", "level": "INFO", "module": "Ana-Utils", "process": 279}
2022-07-28 00:19:44 Topo-Utils279
{"message": "Filtering out small font text from LW", "timestamp": "2022-07-27T18:49:44.326452Z", "level": "INFO", "module": "Topo-Utils", "process": 279}
2022-07-28 00:19:44 Topology-Inference279
{"message": "topology processing doc..", "timestamp": "2022-07-27T18:49:44.289498Z", "level": "INFO", "module": "Topology-Inference", "process": 279}
2022-07-28 00:19:44 Topo-Utils279
{"message": "Subscribed to Topo Update channel", "timestamp": "2022-07-27T18:49:44.260830Z", "level": "INFO", "module": "Topo-Utils", "process": 279}

手动计算时长

1. 提取目标时间戳

从日志中选取需要对比的两个时间戳,比如取该进程下最早和最晚的日志时间:

  • 最早时间:2022-07-27T18:49:44.260830Z(对应"Subscribed to Topo Update channel"日志)
  • 最晚时间:2022-07-27T18:49:44.682875Z(对应"Loaded ana_model"日志)

2. 计算时间差

将时间戳转换为纳秒级数值后相减:

  • 最早时间纳秒值:1658957384260830000
  • 最晚时间纳秒值:1658957384682875000
  • 时长:1658957384682875000 - 1658957384260830000 = 422045000 纳秒,即 422.045毫秒

Loki中用LogQL自动计算

如果要直接在Loki中批量计算指定进程的日志时间跨度,可使用以下LogQL查询:

sum by (process) (
  max_over_time({process="279"} | json | unwrap timestamp [1m])
  -
  min_over_time({process="279"} | json | unwrap timestamp [1m])
)

该查询会提取进程279的所有日志时间戳,计算最大值与最小值的差值,得到该进程这段时间内的日志时间跨度。

内容的提问来源于stack exchange,提问作者Aniket Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:54:19