Dev Lake

PRs Welcome Discord badge Go Report Card

English中文

什么是 Dev Lake?

Dev Lake 将你所有的 DevOps 数据以实用、个性化、可扩展的视图呈现。通过我们免费的开源产品,从不断增加的开发者工具列表中收集、分析和可视化数据。

Dev Lake 对于希望更好地了解其开发数据的管理者来说是最激动人心的,除此以外,它对于任何希望通过数据驱动提升自身实践的开发者来说都是有用的。有了Dev Lake,你可以向你的程序提出任何问题,只要连接和查询。

一键体验 Dev Lake

为什么选择 Dev Lake?

  1. 全面了解软件研发生命周期,挖掘工作流瓶颈
  2. 及时回顾团队迭代表现,快速反馈,敏捷调整
  3. 快速搭建场景化数据仪表盘,下钻分析洞察问题根因

Dev Lake 可以完成什么?

  1. 归集 DevOps 全流程效能数据
  2. 同类工具共用抽象层,输出标准化效能数据
  3. 内置20+效能指标与下钻分析能力
  4. 支持自定义 SQL 分析及拖拽搭建场景化数据视图
  5. 灵活架构与插件设计,支持快速接入新数据源

查看 Demo

点击这里 查看 Demo. Demo里呈现的数据来自此仓库。
用户名/密码: test/test

目录

我们目前支持的数据源

下面是一个 数据源插件(data source plugins) 的列表,用于收集和处理特定来源的数据。每个插件都有一个 README.md 文件,包含基本设置、故障排除和指标信息。

关于建立一个新的 data source plugins 的更多信息,请参见添加一个插件

目录内容文档
Jira概述,数据和指标,配置,APILink
Gitlab概述,数据和指标,配置,APILink
Jenkins概述,数据和指标,配置,APILink
GitHub概述,数据和指标,配置,APILink

安装手册

一共有 3 种方式来安装 Dev Lake:用户安装,开发者安装和云端安装。

用户安装

  • 如果你只打算运行 Dev Lake,你只需要阅读这一小节
  • 写成 这样 的命令需要在你的终端中运行

需要安装的软件包

注:安装完 Docker 后,你可能需要运行 Docker 应用程序并重新启动你的终端

在你的终端中运行以下命令

  1. 克隆仓库。

    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。数据收集可能需要一段时间,取决于你想收集的数据量。

  • 如果要收集这个 repo 以进行,你可以使用以下 JSON
    [
      [
        {
          "Plugin": "github",
          "Options": {
            "repositoryName": "lake",
            "owner": "merico-dev"
          }
        }
      ]
    ]
    
  1. 完成后,点击 Go to grafana (用户名: admin, 密码: admin)。当数据收集完成后,该按钮将显示在触发收集页面。

设置 Cron job

为了定期同步数据,我们提供了lake-cli以方便发送数据收集请求,我们同时提供了cron job以定期触发 cli 工具。


开发者安装

前期准备

  • Docker
  • Golang
  • Make
    • Mac (Already installed)
    • Windows: Download
    • Ubuntu: sudo apt-get install build-essential

如何设置开发环境

  1. 进入你想安装本项目的路径,并克隆资源库

    git clone https://github.com/merico-dev/lake.git
    cd lake
    
  2. 安装 go packages

    make install
    
  3. 将样本配置文件复制到新的本地文件

    cp .env.example .env
    

    .env文件中找到以DB_URL开头的那一行,把mysql:3306替换为127.0.0.1:3306

  4. 启动 MySQL 和 Grafana

    确保在此步骤之前 Docker 正在运行。

    docker-compose up mysql grafana
    
  5. 在 2 个终端种分别以开发者模式运行 lake 和 config UI:

    # 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。对于大型项目,这可能需要20分钟。 (Gitlab 10k+ commits 或 Jira 5k+ 事务)

    • 如果要收集这个 repo 以进行,你可以使用以下 JSON
      [
        [
          {
            "Plugin": "github",
            "Options": {
              "repositoryName": "lake",
              "owner": "merico-dev"
            }
          }
        ]
      ]
      
  8. 在Grafana仪表板中实现数据的可视化

    从这里你可以看到丰富的图表,这些图表来自于收集和处理后的数据

    • 导航到 http://localhost:3002 (用户名: admin, 密码: admin)
    • 你也可以创建/修改现有的/保存到 Dev lake 中的仪表板
    • 关于在Dev Lake中使用Grafana的更多信息,请看 Grafana 文档

云端安装

如果你想在云端安装Dev Lake,你可以使用 Tin 来进行. 查看详细信息

声明:

对于使用 Tin 在云端托管 Dev Lake 的用户,设置密码来保护实例下配置信息的安全是至关重要的。Dev Lake作为一个自我托管的产品,部分是为了确保用户对数据有完全的保护和所有权,对于 Tin 托管来说也是如此,这个风险点需要由终端用户来消除。

测试

运行测试:

make test

贡献

本节列出了所有的文件,以帮助你快速为 repo 做出贡献。

了解 DevLake 的架构

devlake-architecture

添加一个插件

plugins/README.md

添加新的指标

plugins/HOW-TO-ADD-METRICS.md

代码规范

CONTRIBUTING.md

用户使用手册,帮助文档及其他

Grafana

我们使用 Grafana 作为可视化工具,为存储在我们数据库中的数据建立图表。可以使用SQL查询,添加面板来构建、保存和编辑自定义仪表盘。

关于配置和定制仪表盘的所有细节可以在 Grafana 文档 中找到。

需要帮助?

在 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 - 查看 许可证 详情。