Data lake for dev.

Overview

Dev Lake

PRs Welcome Discord badge

What is Dev Lake?

Dev Lake is the one-stop solution that integrates, analyzes, and visualizes the development data throughout the software development life cycle (SDLC) for engineering teams.

Why choose Dev Lake?

  1. Supports various data sources and quickly growing
  2. Comprehensive dev metrics built-in
  3. Customizable visualizations and dashboard
  4. Easy-to-setup via docker
  5. Extensible plugin system to add your own data collectors
  6. Designed to process enterprise-scale data

Contents

Section Description Link
Requirements Underlying software used View Section
Installation Getting all the required files View Section
Setup Steps to get up and running View Section
Core Usage Using core lake features View Section
Plugin Usage Links to specific plugin usage & details View Section
Configuration Local file config settings info Link
Contributing How to contribute to this repo Link

Requirements

How to run this application

NOTE: If you only plan to run the product, this is the only section you should need

  1. Clone this repository and cd into it
  2. Configure settings for services & plugins with cp config/docker.sample.js config/docker.js and edit the newly created file
  3. Start the service with npm run compose-prod
  • you can see the logs with npm run compose-logs
  • you can stop all docker containers with npm run compose-down-prod
  1. Send a post request to the service
curl -X POST "http://localhost:3001/" -H 'content-type: application/json' \
    -d '{"jira":{"boardId": 29}, "gitlab": {"projectId": 24547305}}'
  1. Check the console logs for docker-compose to see when the logs stop collecting your data. This can take up to 30 minutes for large projects. (gitlab 10k+ commits or jira 10k+ issues)
  2. Navigate to Grafana Dashboard https://localhost:3002 (Username: admin, password: admin)

Installation

  1. Clone this repository

    git clone https://github.com/merico-dev/lake.git
  2. Install dependencies with

    npm i
    
  3. Configure local settings for services & plugins, see CONFIGURATION.md

Setup

  1. From the root directory, run

    npm run docker

    NOTE: If you get an error like this: "Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /tmp/rabbitmq/etc/"

    You can fix it by creating the directories in the terminal:

    mkdir -p ./rabbitmq/logs/ ./rabbitmq/etc/ ./rabbitmq/data/

  2. In another tab run

    npm run all
  3. Create a collection job to collect data. See that the:

    • collection job was published
    • lake plugin collection ran
    • enrichment job was published
    • lake plugin enrichment ran

    This process will run through each lake plugin, collecting data from each

    From Postman (or similar), send a request like (branch is optional):

    POST http://localhost:3001/
    
     {
         "jira": {
             "boardId": 8
         },
         "gitlab": {
             "projectId": 8967944,
             "branch": "<your-branch-name>",
         }
     }

    Or, by using curl

    # ee
    curl -X POST "http://localhost:3001/" -H 'content-type: application/json' \
        -d '{"jira":{"boardId": 8}, "gitlab": {"projectId": 8967944}}'
    
    # small data set for test
    curl -X POST "http://localhost:3001/" -H 'content-type: application/json' \
        -d '{"jira":{"boardId": 29}, "gitlab": {"projectId": 24547305}}'
  4. Visualize data in Grafana dashboard

    From here you can see existing data visualized from collected & enriched data

Migrations

  • Revert all current migrations npx sequelize-cli db:migrate:undo:all
  • Run migration with npx sequelize-cli db:migrate

Core Usage

Section Section Info
Collections Create a Collection Job
Grafana Logging In
Grafana Provisioning a Dashboard

Collections: Create a Collection Job

Details
  1. From the terminal, execute npm run all
  2. From Postman (or similar), send a request like:
POST http://localhost:3001/

{
    "jira": {
        "boardId": 8
    },
    "gitlab": {
        "projectId": 8967944,
        "branch": "<your-branch-name>", // branch is optional, we fetch Gitlab default branch if this arg is absent
    }
}

Or, by using curl

# ee
curl -X POST "http://localhost:3001/" -H 'content-type: application/json' \
    -d '{"jira":{"boardId": 8}, "gitlab": {"projectId": 8967944}}'

# small data set for test
curl -X POST "http://localhost:3001/" -H 'content-type: application/json' \
    -d '{"jira":{"boardId": 29}, "gitlab": {"projectId": 24547305}}'
  1. See that the:
    • collection job was published
    • jira collection ran
    • enrichment job was published
    • jira enrichment ran

Grafana: Logging In

Details Once the app is up and running, visit http://localhost:3002 to view the Grafana dashboard.

Default login credentials are:
  • Username: admin
  • Password: admin

Grafana: Provisioning a Dasboard

Details

To save a dashboard in the lake repo and load it:

  1. Create a dashboard in browser (visit /dashboard/new, or use sidebar)
  2. Save dashboard (in top right of screen)
  3. Go to dashboard settings (in top right of screen)
  4. Click on JSON Model in sidebar
  5. Copy code into a new .json file in /grafana/dashboards

Plugin Usage

Section Section Info Docs
Jira Metrics, Generating API Token, Find Project/Board ID Link
Gitlab Metrics, Generating API Token Link

Contributing

CONTRIBUTING.md

Comments
  • Fix GitHub jira connection

    Fix GitHub jira connection

    Summary

    fix bug: when we save settings from config-ui, if there is no key in .env, it will not be saved in .env

    Screenshots

    image

    Other Information

    Any other information that is important to this PR.

    opened by warren830 1
  • fix(github): github connection properties are saved with error

    fix(github): github connection properties are saved with error

    Summary

    the way we used mapstructure has some problems. In this pr, we moved mapstructure:",squash"to under Config in GithubConnection

    Does this close any open issues?

    closes #1888

    Current Behavior

    Describe the current behaviour of this issue, if relevant.

    New Behavior

    Describe the new behaviour updated in this issue, if relevant.

    Screenshots

    modified successfully image

    Other Information

    Any other information that is important to this PR.

    bug 
    opened by warren830 1
  • Release v0.14

    Release v0.14

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by abeizn 0
  • Release v0.14

    Release v0.14

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by abeizn 0
  • Release v0.14

    Release v0.14

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by abeizn 0
  • feat(deploy): add helm chart

    feat(deploy): add helm chart

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by warren830 0
  • helfeat(deploy): add helm chart

    helfeat(deploy): add helm chart

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by warren830 0
  • feat(deploy): add helm chart

    feat(deploy): add helm chart

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by warren830 0
  • fix: github record not found

    fix: github record not found

    ⚠️   Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation & PR Template
    • [ ] This PR is using a label (bug, feature etc.)
    • [ ] My code is has necessary documentation (if appropriate)
    • [ ] I have added any relevant tests
    • [ ] This section (⚠️   Pre Checklist) will be removed when submitting PR

    Summary

    Does this close any open issues?

    Please mention the issues here.

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by abeizn 0
  • feat: team feature domain and github (#2424)

    feat: team feature domain and github (#2424)

    • feat: create tables

    • fix: remove OrgId field

    • refactor: rename users to accounts

    • feat: team feature update users to account on tool layer step2:github

    • feat: team feature update users to account on tool layer step2:github

    • feat: team feature update users to account on tool layer step2:github

    Co-authored-by: zhangliang [email protected]

    ⚠️   Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation & PR Template
    • [ ] This PR is using a label (bug, feature etc.)
    • [ ] My code is has necessary documentation (if appropriate)
    • [ ] I have added any relevant tests
    • [ ] This section (⚠️   Pre Checklist) will be removed when submitting PR

    Summary

    Does this close any open issues?

    Please mention the issues here.

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by abeizn 0
  • fix(github): fix unicode for pg

    fix(github): fix unicode for pg

    Summary

    As of #1870, pg cannot support unicode \u0000, we have to drop json as field type in the table. We use text to store json data

    In addition, this pr modified an error log as it print the location of err not msg

    Does this close any open issues?

    close #1870

    Current Behavior

    Describe the current behaviour of this issue, if relevant.

    New Behavior

    Describe the new behaviour updated in this issue, if relevant.

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by warren830 0
  • test

    test

    ⚠️ Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation.
    • [ ] I have added relevant tests.
    • [ ] I have added relevant documentation.
    • [ ] I will add labels to the PR, such as pr-type/bug-fix, pr-type/feature-development, etc.

    Summary

    Does this close any open issues?

    Closes xx

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by likyh 0
  • Fix modify story bug

    Fix modify story bug

    ⚠️   Pre Checklist

    Please complete ALL items in this checklist, and remove before submitting

    • [ ] I have read through the Contributing Documentation & PR Template
    • [ ] This PR is using a label (bug, feature etc.)
    • [ ] My code is has necessary documentation (if appropriate)
    • [ ] I have added any relevant tests
    • [ ] This section (⚠️   Pre Checklist) will be removed when submitting PR

    Summary

    Does this close any open issues?

    Please mention the issues here.

    Screenshots

    Include any relevant screenshots here.

    Other Information

    Any other information that is important to this PR.

    opened by warren830 0
Releases(v0.10.1)
Owner
Merico
Merico
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
LunaSec - Open Source Security Software built by Security Engineers. Scan your dependencies for Log4Shell, or add Data Tokenization to prevent data leaks. Try our live Tokenizer demo: https://app.lunasec.dev

Our Software We're a team of Security Engineers on a mission to make awesome Open Source Application Security tooling. It all lives in this repo. Here

LunaSec 1.2k Jan 7, 2023
JSON Visio is data visualization tool for your json data which seamlessly illustrates your data on graphs without having to restructure anything, paste directly or import file.

JSON Visio is data visualization tool for your json data which seamlessly illustrates your data on graphs without having to restructure anything, paste directly or import file.

Aykut Saraç 20.6k Jan 4, 2023
It shows an effective way to correct bus arrival information using data analytics based on Amazon Serverless such as Kiness Data Stream, Kinesis Data Firehose, S3, and Lambda.

Amazon Serverless를 이용한 실시간 버스 정보 수집 및 저장 본 github repository는 버스 정보를 주기적으로 수집하여 분석할 수 있도록, Amazon Serverless인 Amazon Kinesis Data Stream, Kinesis Data

John Park 4 Nov 13, 2022
A table component for your Mantine data-rich applications, supporting asynchronous data loading, column sorting, custom cell data rendering, row context menus, dark theme, and more.

Mantine DataTable A "dark-theme aware" table component for your Mantine UI data-rich applications, featuring asynchronous data loading support, pagina

Ionut-Cristian Florescu 331 Jan 4, 2023
Tool to sign data with a Cardano-Secret-Key // verify data with a Cardano-Public-Key // generate CIP-8 & CIP-36 data

Tool to sign data with a Cardano-Secret-Key // verify data with a Cardano-Public-Key // generate CIP-8 & CIP-36 data

Martin Lang 11 Dec 21, 2022
Japanese translation of vitejs.dev

Vite Docs JA Vite ドキュメントの日本語翻訳レポジトリです。現状、本レポジトリは翻訳作業用のものとして一時的に用意されています。将来的に、本レポジトリは別場所に移動される可能性があります。 貢献ガイド Vite 日本語翻訳ガイド を一読お願いします! はじめかた 本ドキュメントは V

vite 50 Dec 14, 2022
Solana blockchain candy machine app boilerplate on top of Metaplex Candy Machine. NextJS, Tailwind, Anchor, SolanaLabs.React, dev/mainnet automation scripts.

NFT Candy Factory NOTE: This repo will prob only work on unix-based environments. The NFT Candy Factory project is designed to let users fork, customi

Kevin Faveri 261 Dec 30, 2022
Small (fragile) script for migrating comments from dev.to posts to Wordpress format (WXR/XML)

dev-to-wxr Small (fragile) script for migrating comments from dev.to posts to Wordpress format (WXR/XML). Useful for importing in tools like disqus. U

Fahad Hossain 2 Jan 29, 2022
Personal repository for adventjs.dev

?? My adventjs commented solutions ?? adventjs.dev is a platform developed by where you can practice your JavaScript skills via challenges as an adven

Álvaro Rivas 12 Dec 3, 2022
Dev Guide for Archival Node & Indexer Setup

Algorand - The Undocumented Docs Dev Notes for Archival Node, Indexer Setup (and more) Archival Node FAQ [ ? ] How much space will I need? See -> http

null 5 May 23, 2022
Unstyled, dev error overlays for SolidJS

solid-error-overlay Unstyled, headless Error Overlay for SolidJS Install npm i solid-error-overlay yarn add solid-error-overlay pnpm add solid-error-o

Alexis H. Munsayac 20 Dec 29, 2022
vota.dev - Vote the best web development trends of the year

vota.dev Welcome to vota.dev! This is a work in progress! Development GitHub - Set-Up an OAuth Application Using Railway Development Install the proje

Miguel Ángel Durán 97 Dec 28, 2022
Tool for publishing posts to mitchinson.dev from a Notion database

Notion Publish Tool - publish.mitchinson.dev A publishing API for mirroring Notion posts to mitchinson.dev Includes: Asset uploading to Cloudinary CDN

Ben Mitchinson 6 Dec 23, 2022
In game dev, generative art, and creative coding, sine is a ubiquitous function that is often used as a spring-like oscillator for a given parameter.

In game dev, generative art, and creative coding, sine is a ubiquitous function that is often used as a spring-like oscillator for a given parameter.

Mark Racette 3 Feb 22, 2022
Our project for The Microsoft Azure Trial Hackathon on Dev.to

Moodflix your mood, our suggestions. ?? About Overview of our project We have started this project with the purpose of participating to the Microsoft

Emanuele Bartolesi 37 Dec 22, 2022