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.
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
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
./mvnw clean install
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>"
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