GithubHelp home page GithubHelp logo

hartl3y94 / lake Goto Github PK

View Code? Open in Web Editor NEW

This project forked from benkerwang/lake

0.0 0.0 0.0 9.64 MB

DevLake: the open source data lake & dashboard for your DevOps tools.

License: Apache License 2.0

JavaScript 38.48% Shell 1.27% Dockerfile 0.18% Makefile 0.12% Go 35.88% HTML 0.14% SCSS 19.13% PLpgSQL 4.80%

lake's Introduction


What is DevLake?

DevLake brings all your DevOps data into one practical, personalized, extensible view. Ingest, analyze, and visualize data from an ever-growing list of developer tools, with our free and open source product.

DevLake is most exciting for developer teams looking to make better sense of their development process and to bring a more data-driven approach to their own practices. With DevLake you can ask your process any question, just connect and query.

Get started with just a few clicks

Run Locally Teamcode See the Guide

Dev Lake Grafana Dashboard

Dashboard Screenshot


User Flow

User Flow

Why DevLake?

  1. Comprehensive understanding of software development lifecycle, digging workflow bottlenecks
  2. Timely review of team iteration performance, rapid feedback, agile adjustment
  3. Quickly build scenario-based data dashboards and drill down to analyze the root cause of problems

What can be accomplished with DevLake?

  1. Collect DevOps performance data for the whole process
  2. Share abstraction layer with similar tools to output standardized performance data
  3. Built-in 20+ performance metrics and drill-down analysis capability
  4. Support custom SQL analysis and drag and drop to build scenario-based data views
  5. Flexible architecture and plug-in design to support fast access to new data sources

See Demo

Click here to see demo. The demo is based on data from this repo.
Username/Password: test/test


Contents

Section Sub-section Description Documentation Link
Data Sources Supported Data Sources Links to specific plugin usage & details View Section
Setup Guide User Setup Set up Dev Lake locally as a user View Section
Developer Setup Set up development environment locally View Section
Cloud Setup Set up DevLake in the cloud with Tin View Section
Tests Tests Commands for running tests View Section
Make Contribution Understand the architecture of DevLake See the architecture diagram View Section
Build a Plugin Details on how to make your own plugin View Section
Add Plugin Metrics Guide to add metrics View Section
Contribution specs How to contribute to this repo View Section
User Guide, Help, and more Grafana How to visualize the data View Section
Need Help Message us on Discord View Section
FAQ Frequently asked questions by users View Section
License The project license View Section

Data Sources We Currently Support

Below is a list of data source plugins used to collect & enrich data from specific sources. Each has a README.md file with basic setup, troubleshooting, and metrics info.

For more information on building a new data source plugin, see Build a Plugin.

Section Section Info Docs
Jira Summary, Data & Metrics, Configuration, Plugin API Link
GitLab Summary, Data & Metrics, Configuration, Plugin API Link
Jenkins Summary, Data & Metrics, Configuration, Plugin API Link
GitHub Summary, Data & Metrics, Configuration, Plugin API Link


Setup Guide

There're 3 ways to set up DevLake: user setup, developer setup and cloud setup.

User setup

  • If you only plan to run the product locally, this is the ONLY section you should need.
  • Commands written like this are to be run in your terminal.

Required Packages to Install

NOTE: After installing docker, you may need to run the docker application and restart your terminal

Commands to run in your terminal

  1. Clone repository:

    git clone https://github.com/merico-dev/lake.git devlake
    cd devlake
    cp .env.example .env
  2. Start Docker on your machine, then run docker compose up -d to start the services.

  3. Visit localhost:4000 to setup configuration files.

    • Navigate to desired plugins pages on the Integrations page
    • You will need to enter the required information for the plugins you intend to use.
    • Please reference the following for more details on how to configure each one: -> Jira -> GitLab -> Jenkins -> GitHub
    • Submit the form to update the values by clicking on the Save Connection button on each form page
    • devlake takes a while to fully boot up. if config-ui complaining about api being unreachable, please wait a few seconds and try refreshing the page.
    • To collect this repo for a quick preview, please provide a Github personal token on Data Integrations / Github page.
  4. Visit localhost:4000/triggers to trigger data collection.

    • Please refer to this wiki How to trigger data collection. Data collection can take a while depending on the amount of data you'd like to collect.
    • To collect this repo for a quick preview, you can use the following JSON
      [
        [
          {
            "Plugin": "github",
            "Options": {
              "repositoryName": "lake",
              "owner": "merico-dev"
            }
          }
        ]
      ]
  5. Click View Dashboards button when done (username: admin, password: admin). The button will be shown on the Trigger Collection page when data collection has finished.

Setup cron job

To synchronize data periodically, we provide lake-cli for easily sending data collection requests along with a cron job to periodically trigger the cli tool.




Developer Setup

Requirements

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

How to setup dev environment

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

    git clone https://github.com/merico-dev/lake.git
    cd lake
  2. Install Go packages:

    make install
  3. Copy the sample config file to new local file:

    cp .env.example .env
  4. Update the following variables in the file .env:

    • DB_URL: Replace mysql:3306 with 127.0.0.1:3306
    • COMPOSE_PROFILES: Change user to dev
  5. Start the MySQL and Grafana containers:

    Make sure the Docker daemon is running before this step.

    docker compose up
  6. Run lake and config UI in dev mode in two seperate terminals:

    # run lake
    make dev
    # run config UI
    make configure-dev
  7. Visit config UI at localhost:4000 to configure data sources.

    • Navigate to desired plugins pages on the Integrations page
    • You will need to enter the required information for the plugins you intend to use.
    • Please reference the following for more details on how to configure each one: -> Jira -> GitLab, -> Jenkins -> GitHub
    • Submit the form to update the values by clicking on the Save Connection button on each form page
  8. Visit localhost:4000/triggers to trigger data collection.

    • Please refer to this wiki How to trigger data collection. Data collection can take up to 20 minutes for large projects. (GitLab 10k+ commits or Jira 5k+ issues)
  9. Click View Dashboards button when done (username: admin, password: admin). The button is shown in the top left.




Cloud setup

If you want to run DevLake in a clound environment, you can set up DevLake with Tin. See detailed setup guide

Disclaimer:

To protect your information, it is critical for users of the Tin hosting to set passwords to protect DevLake applications. We built DevLake as a self-hosted product, in part to ensure users have total protection and ownership of their data, while the same remains true for the Tin hosting, this risk point can only be eliminated by the end-user.


Tests

To run the tests:

make test

Make Contribution

This section list all the documents to help you contribute to the repo.

Understand the Architecture of DevLake

devlake-architecture

Architecture Diagram

Add a Plugin

plugins/README.md

Add Plugin Metrics

plugins/HOW-TO-ADD-METRICS.md

Contributing Spec

CONTRIBUTING.md


User Guide, Help and more

Grafana

We use Grafana as a visualization tool to build charts for the data stored in our database. Using SQL queries, we can add panels to build, save, and edit customized dashboards.

All the details on provisioning and customizing a dashboard can be found in the Grafana Doc.

Need help?

Message us on Discord

FAQ

Q: When I run docker-compose up -d I get this error: "qemu: uncaught target signal 11 (Segmentation fault) - core dumped". How do I fix this?

A: M1 Mac users need to download a specific version of docker on their machine. You can find it here.

License

This project is licensed under Apache License 2.0 - see the LICENSE file for details.

lake's People

Contributors

basicthinker avatar e2corporation avatar ggcannard avatar hezyin avatar ironcore864 avatar juneezee avatar kevin-kline avatar klesh avatar liangjingyang avatar likyh avatar maximdub avatar mindlesscloud avatar narrowizard avatar nitinvasanth avatar oddscenes avatar startrekzky avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.