This dashboard tracks WINC test pass rates over time by pulling data directly from Prow's GCS buckets.
✅ Direct access to all Prow test histories ✅ No authentication needed (public bucket) ✅ Includes OTP jobs (openshift-tests-private) that Sippy might miss ✅ Complete data - JUnit XMLs with individual test results
cd dashboard
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtThe config.yaml is pre-configured for WINC tests with Prow GCS:
collector:
type: "prow-gcs" # Using Prow GCS collector
prow_gcs:
job_names:
# 4.21 WINC jobs
- "periodic-ci-openshift-openshift-tests-private-release-4.21-amd64-aws-winc-e2e"
- "periodic-ci-openshift-openshift-tests-private-release-4.21-amd64-gcp-winc-e2e"
# 4.22 WINC jobs
- "periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-aws-winc-e2e"
- "periodic-ci-openshift-openshift-tests-private-release-4.22-amd64-gcp-winc-e2e"./test_prow_gcs.pyExpected output:
✓ PASS - Health Check
✓ PASS - List Job Runs
✓ PASS - Fetch Metadata
🎉 All tests passed!
# Dry run first to see what will be collected
./dashboard.py collect --days 14 --dry-run
# Collect real data (this may take a few minutes)
./dashboard.py collect --days 14./dashboard.py serveOpen: http://localhost:8080
-
Summary Cards
- Average pass rate over the selected period
- Total test runs
- Trend indicator (improving/declining/stable)
-
Pass Rate Trend Chart
- Daily pass rates over time
- Filter by time range (7/14/30/60/90 days)
- Filter by version (4.21, 4.22, or all)
-
Version Comparison
- Bar chart comparing pass rates across versions
- See which version is performing better
-
Lowest Performing Tests
- Table of tests with lowest pass rates
- Visual progress bars
- Helps identify flaky or consistently failing tests
# Collect test results from last 14 days
./dashboard.py collect --days 14
# View quick stats in terminal
./dashboard.py stats --days 7
# Start web dashboard
./dashboard.py serve --port 8080Prow GCS Buckets (gs://origin-ci-test/logs/)
↓
Fetch finished.json (job status)
Fetch JUnit XMLs (test results)
↓
Parse and normalize data
↓
Store in SQLite database (data/dashboard.db)
↓
Calculate metrics and trends
↓
Display in web dashboard
The job name might not exist or have recent runs. Check job names at: https://prow.ci.openshift.org/?job=periodic-ci-openshift-openshift-tests-private-release-*
- Check internet connectivity
- Verify GCS bucket is accessible:
curl -I https://storage.googleapis.com/origin-ci-test/
Run ./dashboard.py collect first to populate the database.
To switch back to ReportPortal or try Sippy later, just edit config.yaml:
collector:
type: "reportportal" # or "prow-gcs" or "sippy"-
Schedule daily collection: Add to crontab
0 9 * * * cd /path/to/dashboard && ./venv/bin/python dashboard.py collect --days 7 -
Customize job list: Edit
config.yamlto add/remove jobs -
Adjust time ranges: Modify
lookback_daysin config -
Share dashboard: Deploy Flask app to internal server
| Feature | Sippy | This Dashboard |
|---|---|---|
| Data source | Aggregated from multiple sources | Direct from Prow GCS |
| OTP coverage | Limited/Unknown | Full coverage |
| UI | Dense, complex | Clean, focused |
| Customization | Fixed views | Fully customizable |
| Authentication | None needed | None needed |
| Team focus | All OpenShift | WINC-specific |
- Check
README.mdfor full documentation - Review
src/collectors/prow_gcs.pyto understand data collection - Modify
config.yamlto customize behavior