Skip to content

Jenkins - 指标与趋势

了解 Jenkins 构建的性能和趋势以及 Jenkins 实例本身的健康状况对于维护高效的 CI/CD 平台至关重要。Jenkins 提供了几种跟踪指标和可视化趋势的方法。

  • 构建历史: 作业页面上的构建历史列表显示了最近的构建状态(成功、不稳定、失败)、持续时间以及控制台日志/构建产物的链接。
  • 测试结果趋势: 如果使用 junit 步骤,作业页面和测试结果页面会显示通过、失败和跳过的测试随时间变化的趋势图。
  • 代码覆盖率趋势: 代码覆盖率插件(通过 Coverage API 集成的 JaCoCo、Cobertura)通常会显示最近构建的代码覆盖率百分比趋势图。
  • 静态分析趋势: ‘Warnings Next Generation’ 插件显示分析工具检测到的问题数量趋势图。
  • 流水线阶段视图 (经典 UI): 这是流水线作业的默认视图,显示每个阶段的持续时间,有助于识别工作流中的瓶颈。
  • Blue Ocean 插件: 提供更复杂的流水线执行图形视图,包括阶段持续时间、并行步骤耗时以及便捷的各阶段日志访问。
  • Pipeline: Stage Step Measures 插件: 为经典阶段视图添加关于阶段持续时间的指标。

该插件直接在作业页面上计算并显示简单的可靠性指标:

  • 平均无故障时间 (MTTF): 构建保持成功状态直到失败的平均时间。
  • 平均恢复时间 (MTTR): 作业在失败后恢复成功状态所需的平均时间。
  • 构建时间标准差: 构建所需时间的变化性。
  • 安装: 通过 管理 Jenkins → 插件 安装 ‘Build History Metrics 插件’。
  • 使用: 安装并进行后续构建后,指标会自动显示在作业页面上。

可通过 管理 Jenkins → 负载统计 访问。提供显示以下内容的基本图表:

  • 构建队列长度: 有多少作业正在等待执行器。
  • 忙碌的执行器: 当前有多少执行器(在控制器和代理上)正在运行构建。
  • 响应时间: UI 响应能力的基本度量。

对于快速健康检查和识别长期资源短缺非常有用。

(前身为 Hudson global-build-stats 插件)此插件聚合实例上所有作业的构建结果,并允许创建自定义图表。

  • 安装: 安装 ‘Global Build Stats’ 插件。
  • 配置: 前往 管理 Jenkins → Global Build Stats。点击 ‘Initialize stats’ 以收集历史数据。点击 ‘Create new chart’。
  • 图表创建: 定义图表标题、大小、时间刻度(每日、每周)、时间长度,并选择要包含的作业(或所有作业)。
  • 查看: 图表显示选定周期内所选作业的构建成功/失败/不稳定趋势。

Monitoring 插件 (Prometheus 集成 - 推荐)

Section titled “Monitoring 插件 (Prometheus 集成 - 推荐)”

对于全面的监控,强烈推荐使用 ‘Monitoring’ 插件。它以与 Prometheus 等监控系统兼容的格式暴露详细的 Jenkins 内部指标。

  • 安装: 安装 ‘Monitoring’ 插件。
  • 配置: 提供一个 Prometheus 可以抓取的端点(通常是 /prometheus 或 /metrics/<api_key>)。
  • 暴露的指标: 包括 JVM 指标(内存、垃圾回收、线程)、执行器使用情况、代理状态、队列长度、作业健康状况、构建持续时间、插件统计等更多内容。
  • 可视化: 使用带有 Prometheus 数据源的 Grafana 创建强大的仪表盘,可视化 Jenkins 的健康状况和性能随时间的变化。
  • 优点: 提供深入的洞察,允许基于指标设置警报(例如,队列长度超过阈值时发出警报),并将 Jenkins 集成到您的标准基础设施监控中。

从内置指标和流水线可视化开始。要获得更详细的作业可靠性洞察,请使用 ‘Build History Metrics’ 插件。对于实例范围的趋势,‘Global Build Stats’ 提供简单的图表。对于健壮的、生产级别的监控和警报,请使用 Prometheus 和 Grafana 实施 ‘Monitoring’ 插件。