DevOps 开源工具-Dev Lake

Dev Lake是一款开源的 DevOps 开发工具,可将 DevOps 数据以实用、个性化、可扩展的视图呈现,完成数据的收集、分析和可视化。基于Golang语言开发,遵守Apache2.0开源协议。


    jira: 需求,bug 等的信息收集

    gitlab:code 收集

    github:code 收集

    jenkins:CICD 的数据收集

DevLake 提供了 20+常见研发效能指标,即开即用,节省了治理数据和定义指标的成本,可应用于交付效率、质量、成本、能力等不同领域。同时支持自定义 SQL 查询,用户自行拖拽搭建数据面板。




Developer Setup


How to setup dev environment

The following guide will walk through how to run DevLake's frontend (config-ui) and backend in dev mode.

Navigate to where you would like to install this project and clone the repository:

git clone
cd incubator-devlake

Install dependencies for plugins:

RefDiff (

Install Go packages:

cd backend
go get
cd ..


Copy the sample config file to new local file:

cp .env.example .env

Update the following variables in the file .env:

DB_URL: Replace mysql:3306 with

Start the MySQL and Grafana containers:

Make sure the Docker daemon is running before this step.

docker-compose up -d mysql grafana

Run devlake and config-ui in dev mode in two separate terminals:

# run devlake
make dev
# run config-ui
make configure-dev

For common errors, please see Troubleshooting.

  1. Config UI is running at localhost:4000

    • For how to use Config UI, please refer to our tutorial

Running Tests:

# install mockery
go install
# generate mocking stubs
make mock
# run tests
make test

DB migrations

Please refer to the Migration Doc.

Using DevLake API

All DevLake APIs (core service + plugin API) are documented with swagger. To see API doc live with swagger:

- Install [swag](
- Run `make swag` to generate the swagger documentation.
- Visit `http://localhost:8080/swagger/index.html` while `devlake` is running.

Developing dashboards

To access Grafana, click View Dashboards button in the top left corner of Config UI, or visit localhost:3002 (username: admin, password: admin).

For provisioning, customizing, and creating dashboards, please refer to our Grafana Doc.


Q: Running `make dev` yields error: ` cannot open share object file: No such file or directory`

A: `` is required by the gitextractor plugin and should be . Make sure your program can find ``. `LD_LIBRARY_PATH` can be assigned like this if your `` is located at `/usr/local/lib`:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Note that the version has to be pinned to 1.3.0. If you don't have it, you may need to build it manually with CMake from [source](


- Compile all plugins: `make build-plugin`
- Compile specific plugins: `PLUGIN=<PLUGIN_NAME> make build-plugin`
- Compile server: `make build`
- Compile worker: `make build-worker`


To dig deeper into developing and utilizing our built-in functions and have a better developer experience, feel free to dive into our godoc reference.