首页 > 解决方案 > 如何在 Jenkins 中制作自定义报告?

问题描述

在 Jenkins 中,我想获取诸如在给定时期内构建失败的次数、在连续构建中多次失败的测试、每次失败的测试是否由于相同或不同的原因而失败、多次失败的测试等信息环境或仅某些环境等。

如何从 Jenkins 获得此类信息?

标签: jenkins

解决方案


你的问题有点含糊。所以我会给你我用来解决这个问题的解决方案,使用jenkins的influxDB插件,InfluxDB作为数据库,Grafana作为仪表板工具。

  1. 设置 InfluxDB

我使用泊坞窗图像:influxdb:1.7-alpine

挂载的卷/docker-entrypoint-initdb.d/var/lib/influxdb 在文件夹中/docker-entrypoint-initdb.d我添加了一个文件db.iql来创建我的数据库

CREATE DATABASE "jenkins" WITH DURATION 24w REPLICATION 1 SHARD DURATION 1d NAME "jenkins_retention_6month"
  1. 设置 InfluxDB 插件

请参阅插件页面的部分配置 https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin

  1. 使用插件

InfluxDbPublisher 步骤可用于使用 Metrics Plugin 等插件收集数据,但我将其与 customDataMap 一起使用

influxDbPublisher(
    selectedTarget: 'myTarget',
    customDataMap: [
        myMeasure: [
            field: value
        ]
    ],
    customDataMapTags: [
        myMeasure: [
            tag: 'someTag'
        ]
    ]
])

一切都记录在 https://wiki.jenkins.io/display/JENKINS/InfluxDB+Plugin

  1. 设置 Grafana

我使用泊坞窗图像:grafana/grafana:6.4.3

我安装了音量/var/lib/grafana

当 grafana 实例运行时,添加你的 influxdb 数据库作为数据源

我使用以下环境变量配置了 grafana:

GF_SERVER_DOMAIN=grafana.mydomain.com
GF_SECURITY_ADMIN_PASSWORD=MyPassword
GF_SMTP_ENABLED=true
GF_SMTP_HOST=smtp:25
GF_SMTP_FROM_ADDRESS=grafana@grafana.mydomain.com

我使用 docker imagenamshi/smtp来获取一个 smtp 服务器

  1. 创建 Grafana 仪表板

使用 grafana 的自动完成功能创建新仪表板非常容易。您肯定需要对使用 influxDbPublisher 步骤发送的数据进行几次调整。现在您有了仪表板,您可以设置警报,以便在您的 CI 发生异常情况时提前通过电子邮件收到通知


推荐阅读