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

如何将离散事件转换为兼容Grafana State Timeline的表格?

适配Grafana State Timeline面板的KQL数据转换方案求助

需求说明

我正在使用Grafana的State Timeline面板,需要将现有日志数据转换为适配该面板的格式:

源数据格式

TimeGeneratedplaybook_namestatusruntime
11:02config_backupsuccess3600
12:33update_inventorysuccess52
13:04config_backuppartial_success3600
14:31update_inventorysuccess47

目标数据格式

TimeGeneratedconfig_backupupdate_inventory
11:00success
11:15success
11:30success
11:45success
12:00
12:15
12:30success
12:45
13:00partial_success
13:15partial_success
13:30partial_success
...

核心需求:在任务开始时间+运行时长覆盖的时间范围内,对应任务列需标记其状态。例如config_backup任务11:02开始,运行3600秒(1小时),则11:00-12:00的每个15分钟时间块的config_backup列都标记为success。

已实现步骤

已完成15分钟间隔时间块的生成,KQL代码如下:

let _start=ago(1d);
let _end=now();
let interval = 15m;
let timetable = range TimeGenerated from ago(1d) to now() step 15m;
log_ansible_playbook_stats_CL
| union timetable

我也了解用make_series进行行列转置的方法,但卡在根据运行时长填充状态的环节。

遇到的问题

  • 尝试用以下代码计算剩余运行时长,仅对单一行有效,因为KQL是整体评估而非逐行执行:
    | extend runtime_s = toint(prev(runtime_s)) - 900
    
  • fillforward()函数不支持条件判断,无法在超出任务运行时长后停止填充状态。
  • 考虑过生成任务起止日志再用fillforward()填充中间状态,但希望找到更优的实现方案,寻求帮助。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:02:10