# Dev Lake
**Repository Path**: yingmingzongyu/lake
## Basic Information
- **Project Name**: Dev Lake
- **Description**: Data lake for dev.
- **Primary Language**: Go
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 16
- **Created**: 2021-11-23
- **Last Updated**: 2021-11-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Dev Lake
[](http://makeapullrequest.com)
[](https://discord.gg/83rDG6ydVZ)

| [English](README.md) | [中文](README-zh-CN.md) |
| --- | --- |
### 什么是 Dev Lake?
Dev Lake 是一个研发效能分析平台,它通过对软件开发生命周期(SDLC)中产生的数据进行 _**整合、分析和可视化**_ ,提升研发效能。
数据面板截图
用户使用流程
### 为什么选择 Dev Lake?
1. 在一个个性化的、统一的视图中可视化和分析你的整个SDLC过程。
2. 提供统一的标准化的度量体系和分析方法,帮助你分析团队研发效能,提高交付速度和质量。
### Dev Lake 可以完成什么?
1. 收集和关联不同来源的数据(Jira、Gitlab、Github、Jenkins等),打破数据孤岛。
2. 提供行业标准指标来识别工程问题,比如交付周期过长、Bug太多等。
3. 高度定制化的图表、指标和仪表盘,用户根据自己的需求分析数据,发现洞见。
## 目录
目录 |
子目录 |
描述 |
文档链接 |
数据源 |
当前支持的数据源 |
链接到具体的插件使用和细节 |
查看本节 |
安装手册 |
用户安装 |
以用户身份运行项目的步骤 |
查看本节 |
开发者安装 |
如何设置开发环境 |
查看本节 |
云端安装 |
使用 Tin 进行云端安装 |
查看本节 |
测试 |
测试 |
运行测试的命令 |
查看本节 |
贡献 |
添加一个插件 |
如何制作自己的插件的详细信息 |
查看本节 |
添加新的指标 |
如何给插件添加指标 |
查看本节 |
代码规范 |
如何进行贡献 |
查看本节 |
用户使用手册,帮助文档等 |
Grafana |
如何将数据进行可视化 |
查看本节 |
帮助 |
在 Discord 上联系我们 |
查看本节 |
FAQ |
常见问题 |
查看本节 |
许可证 |
Dev Lake 许可证 |
查看本节 |
## 我们目前支持的数据源
下面是一个 _数据源插件(data source plugins)_ 的列表,用于收集和处理特定来源的数据。每个插件都有一个 `README.md` 文件,包含基本设置、故障排除和指标信息。
关于建立一个新的 _data source plugins_ 的更多信息,请参见[添加一个插件](plugins/README-zh-CN.md)。
目录 | 内容 | 文档
------------ | ------------- | -------------
Jira | 概述,数据和指标,配置,API | [Link](plugins/jira/README-zh-CN.md)
Gitlab | 概述,数据和指标,配置,API | [Link](plugins/gitlab/README-zh-CN.md)
Jenkins | 概述,数据和指标,配置,API | [Link](plugins/jenkins/README-zh-CN.md)
GitHub | 概述,数据和指标,配置,API | [Link](plugins/github/README-zh-CN.md)
## 安装手册
一共有 3 种方式来安装 Dev Lake。
### 用户安装
**注意:如果你只打算运行 Dev Lake,你只需要阅读这一小节**
**注意:写成 `这样` 的命令需要在你的终端中运行**
### 需要安装的软件包
- [Docker](https://docs.docker.com/get-docker)
- [docker-compose](https://docs.docker.com/compose/install/)
**NOTE:** 安装完 Docker 后,你可能需要运行 Docker 应用程序并重新启动你的终端
#### 在你的终端中运行以下命令
1. 克隆仓库。
```sh
git clone https://github.com/merico-dev/lake.git devlake
cd devlake
cp .env.example .env
```
2. 启动 Docker,然后运行 `docker-compose up -d` 启动服务。
3. 访问 `localhost:4000` 来设置 Dev Lake 的配置文件
>- 在 "Integration"页面上找到到所需的插件页面
>- 你需要为你打算使用的插件输入必要的信息
>- 请参考以下内容,以了解如何配置每个插件的更多细节
>-> Jira
>-> GitLab
>-> Jenkins
>-> GitHub
4. 访问 `localhost:4000/triggers`,触发数据收集
> 请参考这篇Wiki [How to trigger data collection](https://github.com/merico-dev/lake/wiki/How-to-use-the-triggers-page)。对于大型项目,这可能需要20分钟。 (Gitlab 10k+ commits 或 Jira 5k+ 事务)
> - 如果要收集这个 repo 以进行,你可以使用以下 JSON
> ```json
> [
> [
> {
> "Plugin": "github",
> "Options": {
> "repositoryName": "lake",
> "owner": "merico-dev"
> }
> }
> ],
> [
> {
> "plugin": "github-domain",
> "options": {}
> }
> ]
> ]
> ```
5. 完成后,点击 *Go to grafana* (用户名: `admin`, 密码: `admin`)。当数据收集完成后,该按钮将显示在触发收集页面。
### 设置 Cron job
通常情况下,我们有定期同步数据的要求。我们提供了一个叫做 `lake-cli` 的工具来满足这个要求。请在 [这里](./cmd/lake-cli/README.md) 查看 `lake-cli` 的用法。
除此之外,如果你只想使用 Cron job,请在 [这里](./devops/sync/README.md) 查看 `docker-compose` 版本。
### 开发者安装
#### 前期准备
- Docker
- Golang
- Make
- Mac (Already installed)
- Windows: [Download](http://gnuwin32.sourceforge.net/packages/make.htm)
- Ubuntu: `sudo apt-get install build-essential`
#### 如何设置开发环境
1. 进入你想安装本项目的路径,并克隆资源库
```sh
git clone https://github.com/merico-dev/lake.git
cd lake
```
2. 安装 go packages
```sh
make install
```
3. 将样本配置文件复制到新的本地文件
```sh
cp .env.example .env
```
在`.env`文件中找到以`DB_URL`开头的那一行,把`mysql:3306`替换为`127.0.0.1:3306`
4. 启动 Docker
> 确保在此步骤之前 Docker 正在运行。
```sh
make compose
```
5. 运行项目
```sh
make dev
```
6. 访问 `localhost:4000` 来设置 Dev Lake 的配置文件
>- 在 "Integration"页面上找到到所需的插件页面
>- 你需要为你打算使用的插件输入必要的信息
>- 请参考以下内容,以了解如何配置每个插件的更多细节
>-> Jira
>-> GitLab
>-> Jenkins
>-> GitHub
7. 访问 `localhost:4000/triggers`,触发数据收集
> 请参考这篇Wiki [How to trigger data collection](https://github.com/merico-dev/lake/wiki/How-to-use-the-triggers-page)。对于大型项目,这可能需要20分钟。 (Gitlab 10k+ commits 或 Jira 5k+ 事务)
> - 如果要收集这个 repo 以进行,你可以使用以下 JSON
> ```json
> [
> [
> {
> "Plugin": "github",
> "Options": {
> "repositoryName": "lake",
> "owner": "merico-dev"
> }
> }
> ],
> [
> {
> "plugin": "github-domain",
> "options": {}
> }
> ]
> ]
> ```
8. 在Grafana仪表板中实现数据的可视化
_从这里你可以看到丰富的图表,这些图表来自于收集和处理后的数据_
- 导航到 http://localhost:3002 (用户名: `admin`, 密码: `admin`)
- 你也可以创建/修改现有的/保存到 `Dev lake` 中的仪表板
- 关于在Dev Lake中使用Grafana的更多信息,请看 [Grafana 文档](docs/GRAFANA.md)
### 云端安装
如果你想在云端安装Dev Lake,你可以使用 Tin 来进行. [查看详细信息](https://github.com/merico-dev/lake/wiki/How-to-Set-Up-Dev-Lake-with-Tin-zh-CN)
**声明:**
> 对于使用 Tin 在云端托管 Dev Lake 的用户,设置密码来保护实例下配置信息的安全是至关重要的。Dev Lake作为一个自我托管的产品,部分是为了确保用户对数据有完全的保护和所有权,对于 Tin 托管来说也是如此,这个风险点需要由终端用户来消除。
## 测试
运行测试:
```sh
make test
```
## 贡献
本节列出了所有的文件,以帮助你快速为 repo 做出贡献。
### 添加一个插件
[plugins/README.md](/plugins/README.md)
### 添加新的指标
[plugins/HOW-TO-ADD-METRICS.md](/plugins/HOW-TO-ADD-METRICS.md)
### 代码规范
[CONTRIBUTING.md](CONTRIBUTING.md)
## 用户使用手册,帮助文档及其他
### Grafana
我们使用 Grafana 作为可视化工具,为存储在我们数据库中的数据建立图表。可以使用SQL查询,添加面板来构建、保存和编辑自定义仪表盘。
关于配置和定制仪表盘的所有细节可以在 [Grafana 文档](docs/GRAFANA.md) 中找到。
### 需要帮助?
在 Discord 上给我们发消息
### FAQ
问:当我运行```docker-compose up -d ```时,得到这个错误: "qemu: uncaught target signal 11 (Segmentation fault) - core dumped"。如何解决这个问题?
答:Mac M1用户需要在他们的机器上下载一个特定版本的docker。你可以在这里找到它。
https://docs.docker.com/desktop/mac/apple-silicon/
### License
此项目的许可证为 Apache License 2.0 - 查看 [`许可证`](LICENSE) 详情。