Skip to content

An easy-to-use, cross-platform measurement tool that pulls data out of CD pipelines and analysis the four key metrics for you.

License

Notifications You must be signed in to change notification settings

thoughtworks/metrik

Repository files navigation

All Contributors Issues Licnece

Backend test Frontend test codecov

Release

Maintained by SEA team, ThoughtWorks Inc.

Read this in other languages: English, 简体中文

Table of Contents

About the Project

For development teams who wants to measure their software delivery and operational (SDO) performance, this is a tool that helps them collect data from CD pipelines and visualize the key metrics in a friendly format.

The key differentiators:

  • One page configuration, quick and easy.
  • The ability to work across different CD platforms.
  • User can select the environment in which the analysis runs via a environment filter (Yes, production env is not the only one that matters)

Don't know what are those four key metrics?

Integration roadmap

List of CD tools the product supports now/plan to support

  • Jenkins

  • Bamboo

  • GitHub Actions

  • Buddy

  • CircleCI

    ...and more on the way

Usage

Follow the two steps below to run the tool, and measure the four key metrics of your projects.

Install and run

The product is released to a public repository hosted on Docker Hub docker.io/wszzwpshh1/metrik. Please follow the steps:

  1. Ensure Docker has already installed on your OS.
  2. Find available release versions in the release page.
    Or, you can find all history versions from our image repository
  3. Run the container locally via the following command:
docker run -d -p 80:80 --name metrik wszzwpshh1/metrik:latest

⚠️ We use port 80 to access the app. You may switch to any other port in case port 80 is occupied by other apps running on your machine.
⚠️ The latest tag matches the most recent version of this repository. Thus using wszzwpshh1/metrik:latest or wszzwpshh1/metrik will ensure you are running the most up to date version of this image.
If you want to stick to a specific version tag, remember there no "v" in version name. e.g. wszzwpshh1/metrik:latest: 1.6.5

Configure your projects

After the container is running on your machine. Go to your favourite browser and open the app. If running in local that would be http://localhost:80/.

  1. Start the configuration:
  1. And the charts for each key metric will be available at the main page:
  1. Also the full screen view if you want to put it on big screens:

Advanced usage

If you would like to keep the 4-key-metrics data to avoid losing any data when remove container, you can mount the database folder /data/db out. And logs are also available if you mount the log folder /app/logs. As shown in the example below:

docker run -d -p 80:80 --name metrik -v "/path/to/local/directory:/data/db" -v "/path/to/another/directory:/app/logs" wszzwpshh1/metrik:${release_version}

How to Compute, FAQs

See our Wiki page

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

Please check our contributing guideline form HERE

Getting Started

The codebase comprises of three major components frontend, backend, ci.

  • Frontend app is a web application built with:

    • TypeScript
    • ReactJS
    • ReCharts

    Go to frontend folder to find more details.

  • Backend app is built with:

    • Kotlin
    • Spring Boot Web
    • MongoDB

    Go to backend folder to find more details.

  • Build/Package scripts lives in ci folder

More

You might also like:

  • Buildvis, transparency for your build pipeline's results and runtime
  • HeartBeat, calculates delivery metrics from CI/CD build data, revision control and project planning tools.
  • GoCD Analytics Plugin, provides insights into your GoCD instance.

License

Distributed under the MIT License. See LICENSE for more information

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Zhe ZHAO
Zhe ZHAO

💻
Hao Yang
Hao Yang

💻
Jason Zhang
Jason Zhang

🚇
橘子小睿
橘子小睿

💻
HUANG Binfang
HUANG Binfang

💻
HeZhuConnie
HeZhuConnie

💻
Mengqiu PENG
Mengqiu PENG

💻
Kiky
Kiky

💻
Rong
Rong

💻
Piaopiao-TW
Piaopiao-TW

💻
zydxt
zydxt

💻
ifeelcold1824
ifeelcold1824

💻
快乐心情
快乐心情

💻
Taiyu Guo
Taiyu Guo

💻
sasasakuna
sasasakuna

💻
Chen
Chen

💻
ivy-pugai
ivy-pugai

💻
ZengXiaoXing
ZengXiaoXing

💻
HeyWen
HeyWen

💻
yong-wang1
yong-wang1

💻
Paula Ferreira
Paula Ferreira

🚇
twpei
twpei

💻
Henning S.
Henning S.

💻
Prateek
Prateek

💻
Karuppiah Natarajan
Karuppiah Natarajan

💻
Fabio Formosa
Fabio Formosa

📖
Zhongwen Lian
Zhongwen Lian

💻
Devonzhang
Devonzhang

💻
Ashish Soni
Ashish Soni

💻
Marco Hutzsch
Marco Hutzsch

💻
Ikko Ashimine
Ikko Ashimine

📖
HE00L
HE00L

💻
ATPEEE
ATPEEE

💻
Sun Lixing
Sun Lixing

💻
RoujingLiu
RoujingLiu

💻
Ingridwyh090
Ingridwyh090

💻
xloypaypa
xloypaypa

💻
razu
razu

💻
Wildan S. Nahar
Wildan S. Nahar

💻

This project follows the all-contributors specification. Contributions of any kind welcome!