The Cloud Native Computing Foundation (CNCF) hosts 100+ projects. Whether you're evaluating where to contribute, benchmarking your project's health, or just curious about the ecosystem, this guide shows you where to look and how to run the tools yourself.
1. DevStats — The Core Tool
DevStats (github.com/cncf/devstats) is CNCF's primary tool for analyzing developer contributions. It pulls from GitHub's Archive (GHA), the GitHub API, and git itself to track commits, PRs, issues, and per-developer/per-company stats.
⚠️ Key requirement: the project must be on a public GitHub repo.
Running DevStats Locally (Quick Start)
You need Go, PostgreSQL, and a GitHub OAuth token.
# 1. Clone the repos
mkdir -p ~/dev/go/src/github.com/cncf
cd ~/dev/go/src/github.com/cncf
git clone https://github.com/cncf/devstats.git
git clone https://github.com/cncf/devstatscode.git
# 2. Build the binaries
cd devstatscode
make
sudo mkdir -p /etc/gha2db && sudo chmod 777 /etc/gha2db
sudo -E make install
# 3. Install scripts & config
cd ../devstats
make install
Set up PostgreSQL:
# macOS (Homebrew)
brew install postgresql
brew services start postgresql
createdb gha
createdb devstats
# Create a user with privileges
psql gha -c "CREATE USER gha_admin WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE gha TO gha_admin; ALTER USER gha_admin CREATEDB;"
psql devstats -c "CREATE USER gha_admin WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE devstats TO gha_admin;"
psql devstats < util_sql/devstats_log_table.sql
Sync data:
# Requires a GitHub OAuth token
export GHA2DB_GITHUB_OAUTH="your_token_here"
export PG_PASS="your_password"
# Run all CNCF projects
GHA2DB_PROJECTS_OVERRIDE="+cncf" devstats
# Or target a single project (e.g. Kubernetes)
ONLY=kubernetes PG_PASS=... ./devel/reinit.sh
💡 Tip: schedule it hourly via
crontab -e— GHA files are refreshed roughly every hour at :08.
Running via Helm on Kubernetes
For a full deployment (what CNCF runs in production):
# Dry-run to validate
helm install --dry-run --debug ./devstats-helm \
--set namespace='devstats-prod',skipSecrets=1,skipPVs=1,skipBackupsPV=1,skipVacuum=1,skipBackups=1,skipBootstrap=1,skipProvisions=1,skipCrons=1,skipAffiliations=1,skipGrafanas=1,skipServices=1,skipPostgres=1,skipIngress=1,skipStatic=1,skipAPI=1,skipNamespaces=1,runTests=1
# Full install
helm install devstats-prod ./devstats-helm --set namespace='devstats-prod'
You'll need secrets for Postgres credentials, a GitHub OAuth token, and Grafana admin access (see secrets/*.secret.example in the repo).
Running Reports
Once data is in the database:
# List available reports
ls sql/
# Contributors for a project in a time range
PG_DB=kubernetes PG_PASS=... ./sh/run.sh contributors 2024-01-01 2025-01-01
# Per-company affiliation quality
PG_DB=kubernetes PG_PASS=... ./sh/run.sh contributors_affiliations_quality_percent 2024-01-01 2025-01-01 "Google" company_name
2. Velocity — Growth Over Time
cncf/velocity (github.com/cncf/velocity) generates the periodic CNCF Projects Velocity reports, charting commit and contributor growth over time. Data flows from BigQuery CSVs into charts. Great for answering "which projects are accelerating?"
3. LFX Insights — Per-Project Health
Each project page on cncf.io displays an LFX Insights Health Score (e.g., "Fair (60)") across four dimensions:
| Dimension | What it measures |
|---|---|
| Contributors | Bus factor, new vs. returning |
| Development | PR/issue throughput, review time |
| Popularity | Stars, forks, watchers trend |
| Security | CVE response time, patch cadence |
4. The Landscape — Ecosystem Map
The CNCF Cloud Native Landscape (landscape.cncf.io) categorizes every project by maturity and category, surfacing GitHub stars, contributor counts, and commit recency. Community-maintained on GitHub.
5. Maturity Levels — Why the Numbers Matter
Projects progress: Sandbox → Incubating → Graduated (or Archived). Promotion requires:
- Demonstrated adoption
- Healthy rate of change (velocity!)
- Committers from multiple organizations
- CII Best Practices Badge
Contribution metrics aren't vanity numbers — they literally gate a project's status.
Quick Reference
| Tool | Best For | URL |
|---|---|---|
| DevStats | Raw contribution & per-company metrics | devstats.cncf.io |
| cncf/velocity | Growth/velocity over time | github.com/cncf/velocity |
| LFX Insights | Per-project health score | cncf.io project pages |
| CNCF Landscape | Ecosystem-wide map | landscape.cncf.io |
Looking for projects to contribute to? Pair any of the above with CLOTributor, which aggregates "good first issues" across all CNCF projects in one place.
Happy tracking! If you found this helpful, leave a ❤️ on dev.to.
Top comments (0)