### 什么是 Dev Lake?
DevLake 将你所有的 DevOps 数据以实用、个性化、可扩展的视图呈现。通过 DevLake,从不断增加的开发者工具列表中收集、分析和可视化数据。
DevLake 适用于希望更好地通过数据了解其开发过程的开发团队,以及希望以数据驱动提升自身实践的开发团队。有了 DevLake,你可以向你的开发过程提出任何问题,只要连接数据并查询。
#### 一键体验 Dev Lake
数据面板截图
用户使用流程
### 为什么选择 Dev Lake?
1. 全面了解软件研发生命周期,挖掘工作流瓶颈
2. 及时回顾团队迭代表现,快速反馈,敏捷调整
3. 快速搭建场景化数据仪表盘,下钻分析洞察问题根因
### Dev Lake 可以完成什么?
1. 归集 DevOps 全流程效能数据
2. 同类工具共用抽象层,输出标准化效能数据
3. 内置20+效能指标与下钻分析能力
4. 支持自定义 SQL 分析及拖拽搭建场景化数据视图
5. 灵活架构与插件设计,支持快速接入新数据源
### 查看 Demo
[点击这里](https://app-259373083972538368-3002.ars.teamcode.com/d/0Rjxknc7z/demo-homepage?orgId=1) 查看 Demo. Demo里呈现的数据来自此仓库。
用户名/密码: test/test
## 目录
| 目录 |
子目录 |
描述 |
文档链接 |
| 数据源 |
当前支持的数据源 |
链接到具体的插件使用和细节 |
查看本节 |
| 安装手册 |
用户安装 |
以用户身份运行项目的步骤 |
查看本节 |
| 开发者安装 |
如何设置开发环境 |
查看本节 |
| 云端安装 |
使用 Tin 进行云端安装 |
查看本节 |
| 测试 |
测试 |
运行测试的命令 |
查看本节 |
| 贡献 |
了解 DevLake 的架构 |
查看系统架构图 |
查看本节 |
| 添加一个插件 |
如何制作自己的插件的详细信息 |
查看本节 |
| 添加新的指标 |
如何给插件添加指标 |
查看本节 |
| 代码规范 |
如何进行贡献 |
查看本节 |
| 用户使用手册,帮助文档等 |
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/)
注:安装完 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
>- 提交表单,通过点击每个表单页面上的**Save Connection**按钮来更新数值。
>- `devlake`需要一段时间才能完全启动。如果`config-ui`提示 API 无法访问,请等待几秒钟并尝试刷新页面。
>- 如果想收集一个 Repo 进行快速预览,请在**数据集成/Github**页面提供一个 Github 的个人 Token。
4. 访问 `localhost:4000/triggers`,触发数据收集
> 请参考这篇Wiki [How to trigger data collection](https://github.com/merico-dev/lake/wiki/How-to-use-the-triggers-page)。数据收集可能需要一段时间,取决于你想收集的数据量。
> - 如果要收集这个 repo 以进行,你可以使用以下 JSON
> ```json
> [
> [
> {
> "Plugin": "github",
> "Options": {
> "repositoryName": "lake",
> "owner": "merico-dev"
> }
> }
> ]
> ]
> ```
5. 完成后,点击 *Go to grafana* (用户名: `admin`, 密码: `admin`)。当数据收集完成后,该按钮将显示在触发收集页面。
#### 设置 Cron job
为了定期同步数据,我们提供了[`lake-cli`](./cmd/lake-cli/README.md)以方便发送数据收集请求,我们同时提供了[cron job](./devops/sync/README.md)以定期触发 cli 工具。
****
### 开发者安装
#### 前期准备
-
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. 启动 MySQL 和 Grafana
> 确保在此步骤之前 Docker 正在运行。
```sh
docker-compose up mysql grafana
```
5. 在 2 个终端种分别以开发者模式运行 lake 和 config UI:
```sh
# run lake
make dev
# run config UI
make configure-dev
```
6. 访问 config-ui `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"
> }
> }
> ]
> ]
> ```
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 做出贡献。
### 了解 DevLake 的架构

架构图
### 添加一个插件
[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) 详情。