Home - X-lab2017/grimoirelab GitHub Wiki

GrimoireLab 是一个隶属于Linux基金会CHAOSS社区的一个开源项目,用于项目指标数据分析,提供了数据获取、数据存储与分析、可视化的一站式解决方案。

实例1:http://chaoss.biterg.io

实例2:http://cauldron.io/

1、模块总览

image.png

1.1 数据获取

跟数据获取相关的组件:

  • Perceval:一个Python library,作用是采集数据,数据来源可以是 git/github/gitlab/slcak/jira 等,输出是 JSON 格式的数据。
  • Arthur:对数据采集任务进行并行调度管理。

1.2 数据存储与分析

  • Elk组件将获取到的数据存储到Elasticsearch。有两种indexes:

    • Raw indexes:Perceval 采集下来的原始数据。
    • Enriched indexes:由Raw indexes处理后的数据。
  • SortingHat组件用于管理个人标识和元数据。

  • Graal组件用于源代码相关指标分析。

1.4 可视化

将Elasticsearch中的Enriched indexes进行可视化,相关组件:

  • Kibiter: 一个可交互、高可配的 dashboards。
  • Kidash:用于上传、下载 dashboards。
  • Sigils:已定义好的一些默认的panels。
  • Manuscripts:用于导出pdf形式的报表。

2、模块架构图

GrimoireLab 的大部分组件是用 Python 写的,各个组件对外单独提供Python API,可以单独使用。

核心模块数据流向如下:

image.png

上图为整体架构图。绿框为组件,箭头表示数据流:

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

资料链接

⚠️ **GitHub.com Fallback** ⚠️