本文作者:@ warrenchen
GitHub 地址:https://github.com/warren830
DevLake 是一个DevOps数据收集和整合工具,通过 Grafana
为开发团队呈现出不同阶段的数据,让团队能够以数据为驱动改进开发流程。
1. DevLake 架构概述
- 左边是可集成的 DevOps 数据插件,目前已有的插件包括 Github,Gitlab,JIRA,Jenkins,Tapd,Feishu 以及思码逸主打的代码分析引擎
- 中间是主体框架,通过主体框架运行插件中的子任务,完成数据的收集,扩展,并转换到领域层,用户可以通过 config-ui 或者 api 调用的形式来触发任务
- RMDBS 目前支持 Mysql 和 PostgreSQL,后期还会继续支持更多的数据库
- Grafana 可以通过sql语句生成团队需要的各种数据

接下来我们就详细聊一聊系统是怎么跑起来的。
2. 系统启动
在我们的 golang 程序启动之前,首先会自动调用各个 package 的 init() 方法,我们主要看看services 包的载入,下面的代码有详细注释:
go
func init() {
var err error
// 获取配置信息
cfg = config.GetConfig()
// 获取到数据库
db, err = runner.NewGormDb(cfg, logger.Global.Nested("db"))
// 配置时区
location := cron.WithLocation(time.UTC)
// 创建定时任务管理器
cronManager = cron.New(location)
if err != nil {
panic(err)
}
// 初始化数据迁移
migration.Init(db)
// 注册

本文介绍了DevLake,一个DevOps数据收集和整合工具,通过Grafana展示开发流程数据。文章详细讨论了DevLake的架构,系统启动过程,任务执行原理,包括Pipeline、Task的运行流程,以及插件子任务的执行步骤。DevLake支持Github、Gitlab、JIRA等数据源,并使用Mysql和PostgreSQL作为RMDBS。文章还强调了DevLake中重要的接口和类,如PluginMeta、PluginTask、SubTaskMeta等。
最低0.47元/天 解锁文章
872

被折叠的 条评论
为什么被折叠?



