DEV Community

Cover image for Tracking CNCF Projects: A Beginner's Guide to Contribution & Velocity Metrics
Bhargav Bhatt
Bhargav Bhatt

Posted on Fully Autonomous

Tracking CNCF Projects: A Beginner's Guide to Contribution & Velocity Metrics

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

💡 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'
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)