awconstable / teamdashboard

A DevOps team performance collection and visualisation PoC aligned to The Four Keys and the DORA metrics.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Team Dashboard

A proof of concept DevOps Performance dashboard

Awareness of team performance is important to enable data-driven continuous improvement. Accelerate, DORA and the State of DevOps report has had a massive impact on DevOps transformations around the world providing guidance on what to measure to retain focus on the key DevOps outcomes - continuously improving Value Throughput and Stability.

Google Cloud's The Four Keys, is a fantastic tool for teams using GCP - but what if you're on-premise, or have many teams or use another cloud provider?

The Team Dashboard is here to help by providing a simple set of containerised services to enable your teams to easily measure and visualise Lead Time for Change, Deployment Frequency, Change Failure Rate and Mean Time to Recover.


CircleCI CodeQL codecov Libraries.io dependency status for GitHub repo dockerhub

Dashboard Screenshot Team Explorer Screenshot Deployments Screenshot

Limitations

This application is a proof of concept, it is not production ready. A non-exhaustive list of known limitations:

  • Metrics can be submitted multiple times within a period allowing the results to be intentionally or unintentionally skewed
  • No security whatsoever - anonymous users can easily delete or alter all data

Dependencies

  1. Consul
  2. MongoDB
  3. Team Service
  4. Deployment Service
  5. Incident Service
  6. Change Service
  7. Team Happiness App

Quick start guide

Add some metrics

 curl -H "Content-Type: application/json" -X POST -d '[{"teamMetricType":"cycletime","value":23.0,"date":"2019-05-01"},{"teamMetricType":"lead_time","value":45.0,"date":"2019-05-01"}]' http://localhost:8080/metrics/team1

View team dashboard

http://localhost:8080/


Developer guide

Compile

./mvnw clean install

Run in development

docker-compose up
./mvnw spring-boot:run -Dspring-boot.run.arguments=--spring.data.mongodb.host=<mogo host>,--spring.data.mongodb.port=<mongo port>,--spring-data.mongodb.database=<mongo db> --team.service.url=http://localhost:8082 --spring.cloud.discovery.enabled=true --spring.cloud.service-registry.auto-registration.enabled=true --spring.cloud.consul.config.enabled=true --spring.cloud.consul.host=<consul host> --spring.cloud.consul.port=<consul port>"

Run app as a Docker container

See docker-library/openjdk#135 as to why spring.boot.mongodb.. env vars don't work

docker stop dashboard_app
docker rm dashboard_app
docker pull awconstable/teamdashboard
docker run --name dashboard_app -d -p 8080:8080 --network <mongo network> -e spring_data_mongodb_host=<mongo host> -e spring_data_mongodb_port=<mongo port> -e spring_data_mongodb_database=<mondo db> awconstable/teamdashboard:latest

About

A DevOps team performance collection and visualisation PoC aligned to The Four Keys and the DORA metrics.

License:GNU General Public License v3.0


Languages

Language:Java 78.7%Language:JavaScript 11.6%Language:HTML 8.6%Language:CSS 0.7%Language:Shell 0.4%