• Stars
    star
    350
  • Rank 117,710 (Top 3 %)
  • Language
    Kotlin
  • License
    MIT License
  • Created about 3 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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 an ECR Docker repository public.ecr.aws/j2s5d3z8/4-key-metrics. 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 public.ecr.aws/j2s5d3z8/4-key-metrics: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 public.ecr.aws/j2s5d3z8/4-key-metrics:latest or public.ecr.aws/j2s5d3z8/4-key-metrics 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. public.ecr.aws/j2s5d3z8/4-key-metrics:1.1.10

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" public.ecr.aws/j2s5d3z8/4-key-metrics:${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!

More Repositories

1

build-your-own-radar

A library that generates an interactive radar, inspired by https://thoughtworks.com/radar/.
CSS
2,061
star
2

talisman

Using a pre-commit hook, Talisman validates the outgoing changeset for things that look suspicious — such as tokens, passwords, and private keys.
Go
1,846
star
3

cruisecontrol.rb

CruiseControl for Ruby. Keep it simple.
Ruby
614
star
4

pacto

Pacto settles disputes between JSON providers and consumers
Ruby
401
star
5

mlops-platforms

Compare MLOps Platforms. Breakdowns of SageMaker, VertexAI, AzureML, Dataiku, Databricks, h2o, kubeflow, mlflow...
371
star
6

dadoware

Brazilian-Portuguese word list and instructions booklet for Diceware
Jupyter Notebook
147
star
7

epirust

An agent-based epidemiology simulation framework built in Rust
Rust
97
star
8

HeartBeat

HeartBeat is a tool for tracking project delivery metrics that can help you get a better understanding of delivery performance. This product allows you easily get all aspects of source data faster and more accurate to analyze team delivery performance which enables delivery teams and team leaders focusing on driving continuous improvement and enhancing team productivity and efficiency.
TypeScript
79
star
9

maeve-csms

MaEVe is an experimental EV Charge Station Management System (CSMS)
Go
66
star
10

dancing-glyphs

Two screen savers for macOS that show ThoughtWorks glyphs dancing around.
Swift
60
star
11

twde-datalab

Onboarding to data science by ThoughtWorks
Jupyter Notebook
55
star
12

Arium

Automation Testing Framework for XR(Unity) Applications.
C#
46
star
13

tw2021-screensaver

A screen saver based on an illustration that was part of the 2021 Thoughtworks brand refresh
Swift
39
star
14

PipelinePatterns

Community library of software delivery pipeline patterns
38
star
15

p2-old

The P2 Magazine
JavaScript
35
star
16

voto-como-vamos

Ruby
31
star
17

hardposit-chisel3

Chisel library for Unum Type-III Posit Arithmetic
Scala
28
star
18

what_they_say

Accessibility product to help people with hear disability
JavaScript
28
star
19

GilgaMesh

An open-source Bluetooth Low Energy self-healing mesh implementation for the nRF51/52 series.
C
26
star
20

letshelp.it

Ruby
18
star
21

tramchester

tramchester - a simple travel planning app for Manchester's tram system
Java
18
star
22

runes

Building the `runes` command with TDD in Go.
Go
18
star
23

byor-voting-web-app

TypeScript
15
star
24

dashy

A Dashboard for managing app's services requests
CSS
13
star
25

simplebandit

lightweight contextual bandit library for ts/js
TypeScript
12
star
26

vila-pinto-website

CEA – Centro de Educação Ambiental da Vila Pinto official website repository
Ruby
12
star
27

cruisecontrol.rb-contrib

Plugins of various kinds for CruiseControl.rb.
Ruby
12
star
28

metricating-api

A system that collects issue tracker data to visualize agile team metrics
JavaScript
10
star
29

inSpac

An SDK and a Keycloak plugin for fast integrating with Singpass Single Sign-on auth scheme (modified OpenID-Connect 1.0)
Java
10
star
30

billbo

Help an institution that helps other people. They got a lot of bills to pay and we got a lot of ideas to share.
JavaScript
9
star
31

candouble

Test doubles for the CAN bus
Rust
9
star
32

byor-voting-infrastructure

TypeScript
8
star
33

byor-voting-server

TypeScript
7
star
34

clojure-bootstrap

Collection of templates for Clojure apps
Clojure
6
star
35

sbteo

Compile server for sbt
Scala
6
star
36

voto-como-vamos-2

New Voto Como Vamos platform
Ruby
6
star
37

murmurs.air

A desktop client for Mingle murmurs
JavaScript
5
star
38

winston_wolfe

A best-of-breed, harm-minimisation testing tool (in Java)
Java
5
star
39

pii-anonymizer

data anonymization project
Python
4
star
40

pacto-demo

A demo of Pacto, with consumers for iOS, Android, and Web
Ruby
4
star
41

PandoraRL

PandoraRL defines an RL algorithm for predicting optimal binding pose of a ligand for a given protein. The protein and ligand molecules are represented using generalized graph convolution where nodes define the residues and ligand-atoms, and the edges define the atomic interactions.
Jupyter Notebook
4
star
42

rosetta-jvm

Demo project for working with multiple JVM languages in one code base
Groovy
3
star
43

corpos-percussivos

CSS
3
star
44

ghc_voting_app

JavaScript
3
star
45

common-ci-tasks

Common CI tasks for Ruby (Rails, Sinatra, Gem) projects
Ruby
3
star
46

arthritiscampaign

Ruby
2
star
47

connections-hubot

Hubot repository for connections team
CoffeeScript
2
star
48

dashy4r

dashy4r is a gem that helps you use ruby to integrate with Dashy
Ruby
2
star
49

anonymizer

Simple proxy to anonymize e-mails to remove a barrier to providing feedback.
Python
2
star
50

antiviral-peptide-predictions-using-gan

PandoraGAN: Generating antiviral peptides using generative models
Python
2
star
51

mingle

Mingle: Agile Project Management [Archived]
2
star
52

YouthZoneApp

A simple java open source android application orginally built to the support activities of Onside Youth Zone
Java
1
star
53

mic-predictor

Python
1
star
54

lcm-sayu-infra

1
star
55

lcm-sayu

1
star