Draft: Add dependency health dashboard (MVC implementation)
Summary
Implements the basic dependency health dashboard as requested in #194. This MVC version provides visibility into GitLab's 6 most critical dependencies with manual configuration for easy updates.
Changes
New Files
-
dashboards/general/dependency-health.dashboard.jsonnet- Main dashboard implementation -
dashboards/general/dependency-versions.jsonnet- Separate policy/configuration file for easy version management
Features Implemented
-
✅ Tracks 6 major dependencies (Ruby, Rails, PostgreSQL, Vue.js, Vue Apollo, Node.js) -
✅ Shows current vs expected versions -
✅ Basic health indicators (good/warning/critical) -
✅ Days since last update calculations -
✅ Summary statistics (total, up-to-date, outdated, security warnings) -
✅ Separate backend and frontend dependency sections -
✅ Action items and recommendations -
✅ Easy-to-update configuration separate from dashboard code
Dashboard Structure
- Overview Panel - Introduction and usage instructions
- Summary Stats - High-level metrics (total, current, outdated, warnings)
- Dependency Details - Detailed status table
- Backend Dependencies - Ruby, Rails, PostgreSQL status
- Frontend Dependencies - Vue.js, Vue Apollo, Node.js status
- Action Items - Priority recommendations and next steps
Configuration Design
The dependency-versions.jsonnet file allows contributors to easily update:
- Current and expected versions
- Last update dates
- Security status (good/warning/critical)
- Dependency descriptions
No need to modify dashboard code - just update the configuration file.
Testing
- Dashboard follows project conventions (
.jsonnetformat,dashboards/general/location) - Uses existing Grafana infrastructure patterns
- Configuration is cleanly separated from presentation logic
- Includes helper functions for calculations (days since update, version lag severity)
Future Enhancements
This MVC implementation sets the foundation for:
- Automated data collection from package managers
- Integration with security vulnerability databases
- Prometheus metrics integration
- Alerting for critical updates
Screenshots
The dashboard will display:
- Summary statistics showing 6 total dependencies, 2 up-to-date, 4 outdated, 3 security warnings
- Detailed breakdown of each dependency with version information
- Clear action items for Vue.js migration and Node.js updates
Closes #194