Debian metrics portal
Description of the project: To improve, one needs to measure, apply changes, and see how the changes affect the observed quality. In Debian, we have a lot of project-wide metrics, statistics, and graphs. Unfortunately they are scattered and maintained in a non-coordinated manner, resulting in recurrent shortages, and the lack of a uniform interface to view, add, and query Debian metrics. This project aims at building a Debian Metrics Portal with a uniform (Web) interface to peruse Debian metrics, as well as a uniform (declarative) interface to add and maintain metrics.
Confirmed Mentor: StefanoZacchiroli
Confirmed co-mentors: Stuart Prescott
Deliverables of the project:
- database structure to store all historical data points of all metrics
- standardized declarative interface to add/remove metrics to be graphed. The interface should allow for both "local" metrics (e.g. data generated by scripts run on the machines hosting the metrics portal) and "remote" metrics (e.g. data generated by remote data sources which are then periodically gathered by the metrics portal)
- cron jobs to periodically fetch new data and generate graphs
- proof of concept: integration of (some of the) existing graphs in the metrics infrastructure
- web interface to show updated graphs of the various metrics
- client-side dynamic web interface to graph, on demand, specific metrics (possibly more than one at a time to look for correlations) over the desired time periods
- (optional) produce a Debian Package of the portal code to ease deployment on Debian-based machines
some Python templating engine (e.g. jinjia2) might be useful (name one you like in your application!)
What the student will learn: deal with live legacy data and code; consolidate into a single, well-designed architecture existing functionalities; this will help Debian in monitoring its strength and deficiencies, and evaluate the usefulness of changes to project processes.