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

如何在Elasticsearch与Kibana中关联索引,可视化GitHub失败工作流任务

在Kibana中关联GitHub Actions Webhook数据实现失败任务统计可视化的方法

一、确认关联字段

先找到workflow_run和workflow_job之间的唯一关联键(比如GitHub Actions体系里,workflow_job中的run_id对应workflow_run里的id),这是数据关联的核心依据。

二、用Transform合并两个索引的数据(对应SQL的JOIN操作)

为了长期高效做统计分析,提前把关联数据合并成单个索引是最优方案:

  • 打开Kibana左侧菜单→Stack Management→Transform→点击Create transform
  • 选择源索引为workflow_job,添加关联规则:基于确认好的关联字段,关联workflow_run索引
  • 选择需要保留的字段:workflow_job中的任务名称、状态(status),加上workflow_run中的path字段
  • 设置定时更新(适配实时采集的Webhook数据),创建并启动Transform,生成新的合并索引(比如命名为github_actions_combined)

三、创建合并索引的Data View

  • 进入Stack Management→Data Views→Create data view
  • 选择刚才生成的github_actions_combined索引,确认status、任务名称、path等字段被正确识别,完成创建

四、构建失败任务统计可视化

  • 进入Visualize Library→Create visualization,选择Horizontal Bar Chart(适合排序展示)
  • Metrics配置:选择Count作为统计指标,添加过滤条件status: failed(只统计失败任务)
  • Buckets配置:
    • Y轴选择Terms聚合,字段选任务名称(比如name),排序方式设为Descending,按Count排序,设置显示Top N(比如Top 10)
    • 可选添加子Bucket:比如Split Bars,选择Terms聚合字段path,这样能同时展示每个失败任务对应的关联文件
  • 调整图表标题、标签后保存,可添加到Dashboard中查看

类比SQL逻辑参考

如果用SQL实现相同需求,逻辑如下:

SELECT wj.name, wr.path, COUNT(*) AS fail_count
FROM workflow_job wj
JOIN workflow_run wr ON wj.run_id = wr.id
WHERE wj.status = 'failed'
GROUP BY wj.name, wr.path
ORDER BY fail_count DESC
LIMIT 10;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:00:12