# Dev-Lake **Repository Path**: MTV168168/Dev-Lake ## Basic Information - **Project Name**: Dev-Lake - **Description**: Dev Lake 可将所有的 DevOps 数据以实用、个性化、可扩展的视图呈现 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: https://www.oschina.net/p/dev-lake - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2022-01-07 - **Last Updated**: 2022-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

# Dev Lake

[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat&logo=github&color=2370ff&labelColor=454545)](http://makeapullrequest.com) [![Discord](https://img.shields.io/discord/844603288082186240.svg?style=flat?label=&logo=discord&logoColor=ffffff&color=747df7&labelColor=454545)](https://discord.gg/83rDG6ydVZ) ![badge](https://github.com/merico-dev/lake/actions/workflows/test.yml/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/merico-dev/lake)](https://goreportcard.com/report/github.com/merico-dev/lake) | [English](README.md) | [中文](README-zh-CN.md) | | --- | --- |


### 什么是 Dev Lake? DevLake 将你所有的 DevOps 数据以实用、个性化、可扩展的视图呈现。通过 DevLake,从不断增加的开发者工具列表中收集、分析和可视化数据。 DevLake 适用于希望更好地通过数据了解其开发过程的开发团队,以及希望以数据驱动提升自身实践的开发团队。有了 DevLake,你可以向你的开发过程提出任何问题,只要连接数据并查询。 #### 一键体验 Dev Lake
在本地运行 Teamcode 查看手册

Dev Lake Grafana Dashboard

数据面板截图


User Flow

用户使用流程


### 为什么选择 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 的架构 ![devlake-architecture](https://user-images.githubusercontent.com/14050754/143292041-a4839bf1-ca46-462d-96da-2381c8aa0fed.png)

架构图

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