在持续交付标准中度量与反馈很重要,通过度量平台能够度量当前项目的交付情况开发效率等。今天给大家分享的内容是关于如何收集Jenkins流水线中的构建数据并进行分析。
本文分为3个部分,可能需要5-9分钟阅读
- 整体的架构与方案
- 技术方案
- K8S中安装部署Influxdb
- 流水线中采集发送数据
- 使用Grafana展示度量数据
1.整体架构及方案简介
整个过程:在Jenkins流水线中通过Pipeline脚本收集当前项目的构建数据(项目构建时间、单元测试结果、项目构建详细信息等指标),然后将数据通过HTTP API 存入Influxdb中,最后Grafana导入我们的数据模板进行展示。
2.在Kubernetes中部署InfluxDB
编写yaml文件Deployment,创建一个持久化存储卷,暴露8086端口。文件已经存储在了Github中 。https://github.com/zeyangli/devops-on-k8s/blob/master/devops/influxdb.yml
3.Jenkins Pipeline采集数据
使用influxdb Http API,写入数据。
4.导入Grafana模板展示数据
在grafana官方找到了一个不错的模板 id为10557, 根据这个模板最终找到了作者发现是用于Github + Jenkins stage plugin使用的。具体没有深入研究,我是直接将此模板导入然后根据自己当前influxdb中的数据结构更改Select语句。最终实现相同的效果。
官方的图如下
最终我模仿的如下,主要是修改了SQL语句。