jenkins发布k8s信息入库、报表统计展示
好久没写博客,今天整理一篇关于jenkins发布信息统计的统计信息包括:发布的项目、版本号、发布人、发布状态、发布次数等
好久没写博客,今天整理一篇关于发布信息统计入库以及展示、报表等
统计信息包括:微服务数量、发布的项目、版本号、发布人、发布状态、发布次数等,发布信息放入mysql,灾备集群发布直接获取mysql信息(灾备一键发布下次再分享)
先上图
接下来讲下发布信息获取以及如何入库
一:首先设计表结构,即都有哪些属性需要统计展示的
例如我这里统计发布namespaces、服务名、用户、版本、发布状态、发布类型等,然后表结构设计完之后就是实现了,这里重点讲下
1.1、发布之后需要统计发布状态,就需要等待发布结果,我们使用helm发布,状态信息获取是通过kubectl rollout status获取的 需要加个 --watch=false ,不加的话io会一直等待,我们是循环判断以及设置timeout,还有判断deadline信息,当然简单通过这一结果判断明显有些差强人意,我还加了kubectl get deployment 相关统计目标 当前 更新数量是否一致 来增加判断正确性。相关命令如下:
kubectl rollout status deployment deployment_name -n group --watch=false
kubectl get deployment -n group deployment_name |awk ‘$1 ~ /deployment_name/ {print $0}’|awk '{if ($2==$3 && $3==$4 && $5==$4) {print ‘0’} else {print ‘1’}}
1.2、发布时候还需要统计 发布人,获取当前build_user_id即可
1.3、版本号肯定是发布时候选择的。。其他属性就不一一说明了
1.4、发布、入库。我是通过python把相关信息获取之后传入参数的形式放入数据库的,部分代码如下:(简化版)
#根据deployment_name获取type类型,我们一般类型是开头字段所以取第一段,其他也有判断(比如是否只有一段)
循环验证结果:status成功就为0,失败1,插入数据库为int类型(方便统计状态信息)
最后放入元组中:value = (group, service, version, user, status, now_time, type),如果你有其他属性需要插入,就需要放在一起传给数据库
1.5、插入数据
我们需要写一个插入数据库的方法,当我们获取到value之后,直接执行该插入方法即可
例如:
get_insert_sql(value)
数据库插入过程异常以及错误还是需要处理的,这些都交给get_insert_sql方法去处理,最后插入成功关闭操作、库连接。
接下来就是统计展示了
1.6、grafana展示我们统计数据(就如上面刚开始图片一样)
首先我们需要把数据源加上,之后就开始我们展示了
发布失败次数:(就是统计status=1的总数)
发布总次数就是id的总数
服务发布统计报表都是通过sql语句生成的,这样发布情况一览无余。
就讲到这里吧。。。
下篇讲讲如何一键发布灾备环境(前提是你所有发布相关的参数已经放到了数据库下)
更多推荐
所有评论(0)