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

如何在Grafana中合并查询计算Loki日志的任务执行耗时

合并表格并计算任务执行耗时的方案

一、用Grafana Transform功能关联两个查询结果

  1. 在面板中保留你已有的两个PromQL查询(分别对应START、END状态),确保两者都包含threadId、keyID、task、epoch字段。
  2. 点击面板顶部的Transform按钮,添加第一个转换规则:
    • 选择「Add field from calculation」,将第一个查询的epoch字段重命名为start_epoch;对第二个查询执行同样操作,把epoch重命名为end_epoch。
  3. 添加第二个转换规则:
    • 选择「Join」类型,设置关联键为threadId、keyID、task三个字段,让两个查询结果通过这组唯一标识精准匹配。
    • 根据需求选择关联方式:「Inner join」只保留同时有START和END记录的任务;「Outer join」会包含缺失对应状态的任务。

二、计算任务执行耗时

合并数据后,继续添加转换规则完成耗时计算:

  1. 添加「Add field from calculation」类型的转换,设置:
    • 计算方式选「Binary operation」
    • 第一个字段选end_epoch,第二个字段选start_epoch
    • 操作符选「Subtract」(减法)
    • 新字段命名为duration(耗时单位由你的EPOCH精度决定,比如秒/毫秒)
  2. 可选:如果需要转换单位(如毫秒转秒),再添加一次「Add field from calculation」,用duration除以对应系数(如1000),命名为duration_seconds。

三、优化面板展示

  1. 切换到「Panel options」,选择表格展示模式,调整列顺序,把task、threadId、keyID、duration放在显眼位置。
  2. 给duration列设置格式化规则:比如指定单位(秒/毫秒),或添加条件格式化(耗时超过阈值时标红)。
  3. 可选:如果需要按任务维度统计,添加「Group by」类型的转换,分组字段选task,对duration计算平均值、最大值等聚合结果。

四、关键注意事项

  • 确保两个查询的threadId、keyID、task字段格式完全一致(包括大小写、数据类型),否则关联会失败。
  • 若同一任务组合存在多条START/END记录,先通过「Reduce」类型转换去重:分组字段选三个关联键,对epoch取最大值(最新时间)或最小值(最早时间)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 20:22:09