Home - X-lab2017/grimoirelab GitHub Wiki
GrimoireLab 是一个隶属于Linux基金会CHAOSS社区的一个开源项目,用于项目指标数据分析,提供了数据获取、数据存储与分析、可视化的一站式解决方案。
跟数据获取相关的组件:
- Perceval:一个Python library,作用是采集数据,数据来源可以是 git/github/gitlab/slcak/jira 等,输出是 JSON 格式的数据。
- Arthur:对数据采集任务进行并行调度管理。
-
由 Elk组件将获取到的数据存储到Elasticsearch。有两种indexes:
- Raw indexes:Perceval 采集下来的原始数据。
- Enriched indexes:由Raw indexes处理后的数据。
-
SortingHat组件用于管理个人标识和元数据。
-
Graal组件用于源代码相关指标分析。
将Elasticsearch中的Enriched indexes进行可视化,相关组件:
- Kibiter: 一个可交互、高可配的 dashboards。
- Kidash:用于上传、下载 dashboards。
- Sigils:已定义好的一些默认的panels。
- Manuscripts:用于导出pdf形式的报表。
GrimoireLab 的大部分组件是用 Python 写的,各个组件对外单独提供Python API,可以单独使用。
核心模块数据流向如下:
上图为整体架构图。绿框为组件,箭头表示数据流:
Perceval 从数据源提取数据,给Arthur,Arthur把结果存到Redis,GrimoireELK把原始数据存到ElasticSearch(为raw indexes),并把raw indexes中与身份相关的信息传给SortingHat,SortingHat把个人标识元数据存在MariaDB,并进行合并处理,之后再传回GrimoireELK,GrimoireELK生成enriched indexes存到ElasticSearch,供Reports或Kibiter消费。Mordred负责对所有模块进行统一配置和调度。
更详细流程可查看:https://chaoss.github.io/grimoirelab-tutorial/basics/scenarios.html
- CHAOSS
- GrimoireLab