⚠️ This is a Proof of concept and is not an application that Operations Engineering currently operate or support
The purpose of the KPI Dashboard is to enable Operations Engineering to easily track the value of systems and processes over time to make data-driven decisions about their future.
.
├── app
│ ├── app.py # 👈 Where all application code is held at the moment
│ └── run.py # 👈 Entrypoint for Gunicorn to run the app
├── data # 👈 Ignored by git - use this directory to store sensitive data you want to load locally (copy `example_data` for a starting point)
│ └── support-stats.csv
│ └── ...
├── example-data # 👈 example data set, rename to data to so that app can use it
└── grafana # 👈 Where all grafana configuration lives
└── docker-compose.yaml
The current solution is composed of two components, the Dashboard UI and a Database 📈 💿
- UI
- Dash and Plotly - for creating dashboards from data with no JavaScript 😱
- Pandas - for reading in data from CSV, JSON, SQL etc. and converting it into a readable format by Dash/Plotly 🐼
- Grafana UI Alternative - for creating dashboards from data 📊
- Dash and Plotly - for creating dashboards from data with no JavaScript 😱
- Data Sources
- PostgresDB - for storing data (that can be auto-populated by systems when/if this goes live 🙈)
- CSV files - example CSV files stored in example-data though the application reads from ./data 💿
To develop, deploy or run this app, you will need to install the following:
The application is currently composed of a Python Web Server and Postgres Database, that can be run locally through Docker Compose with the following command:
docker compose up --build
Sometimes this command can fail on the first run - if it does, spin down compose with docker compose down
and re-launch! 🚀
You can then go to the UI to see graphs for the given data sets:
Name | URL |
---|---|
Dash/Plotly | http://localhost:4567 |
As an alternative dashboarding option - you can chose to also spin up a Grafana Dashboard locally using the following command:
docker compose -f docker-compose-grafana.yaml up --build
You can then go to the following UIs to see graphs for the given data sets:
Name | URL |
---|---|
Grafana | http://localhost:3000 |
Dash/Plotly | http://localhost:4567 |