From 9ee721f549eae57833bfcb72bcb1a061694e1906 Mon Sep 17 00:00:00 2001 From: Alexa Amundson Date: Fri, 13 Mar 2026 01:21:12 -0500 Subject: [PATCH] kpi: auto-update metrics 2026-03-13 RoadChain-SHA2048: 7d1e0cfc6629c916 RoadChain-Identity: alexa@sovereign RoadChain-Full: 7d1e0cfc6629c9167f684e32fb2d124af231a8f31c35701f24ef4ad94126564c352bbacebac51a7f53ae9144bf7f3595e2ecf1b87f1023dd3a92a35682276ca136f787a67adaaf2733e93a624c17da4a68624f1a62ee0e86ad932d5dcbc4190797b2c530bfc7d2d5b37bb50ab46fd611ba053c97acf5d428f9903c474a6ec232f9ce78a3e2700d913fdfe0d6648105757116c068173ae36abe1d7777eef53ca9adbea0366110863a0415479954e8a9a57a7af0d538ffebddef3d8f0206eb758c21d782b2c1c9c5d08c5151c37dd227ce7f2b7ff9e21eea33f00764bfa8b961386247acf3c4a400cc21c6a2d8924048acd9a745f6452effc49901b8fc8b53fb51 --- README.md | 4 +-- VERIFIED-METRICS.md | 6 ++-- src/index.js | 75 ++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 73 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 507b42f..dbacbcc 100644 --- a/README.md +++ b/README.md @@ -42,13 +42,13 @@ All numbers collected by [blackroad-os-kpis](https://github.com/blackboxprogramm ``` CODE Lines of code 7,212,717 - Commits/day 327 + Commits/day 330 PRs merged (all time) 4,019 GitHub repos 1,603 (306 active, 17 orgs) Gitea repos 207 (7 orgs) Total repos 1,810 Languages 20 - GitHub size 8086.0 GB + GitHub size 8174.9 GB INFRASTRUCTURE Fleet nodes 4 diff --git a/VERIFIED-METRICS.md b/VERIFIED-METRICS.md index 71ebaea..963cd89 100644 --- a/VERIFIED-METRICS.md +++ b/VERIFIED-METRICS.md @@ -4,12 +4,12 @@ Source: blackroad-os-kpis automated collection + full GitHub API scan across all ## Code - 7,212,717 lines of code -- 327 commits/day, 4,019 PRs merged all-time +- 330 commits/day, 4,019 PRs merged all-time - **1,603 GitHub repositories** across 17 owners (306 active, 1,297 archived) - **207 Gitea repositories** across 7 organizations (self-hosted) - **1,810 total repositories** -- 20 languages: Python (470), HTML (314), Shell (160), JavaScript (114), TypeScript (85), Dockerfile (24), C++ (5), CSS (3), Go (2), C (2), MDX (1), Apex (1), Ruby (1), Go Template (1), HCL (1) -- 7.9 GB total GitHub repo size +- 20 languages: Python (470), HTML (314), Shell (160), JavaScript (115), TypeScript (85), Dockerfile (23), C++ (5), CSS (3), Go (2), C (2), MDX (1), Apex (1), Ruby (1), Go Template (1), HCL (1) +- 8.0 GB total GitHub repo size - 11 stars, 17 organizations ## GitHub Organizations (17 owners) diff --git a/src/index.js b/src/index.js index aa0b8f5..730de4c 100644 --- a/src/index.js +++ b/src/index.js @@ -491,6 +491,49 @@ const KPI_LABELS = { systems_registered: 'Systems Registered', }; +const KPI_SOURCES = { + total_loc: 'loc.sh — cloc + fleet SSH', + commits_today: 'github.sh — gh api events', + prs_merged_total: 'github.sh — gh api search/issues', + prs_open: 'github.sh — gh api search/issues', + repos_total: 'github-all-orgs.sh — gh api repos (17 owners)', + repos_github: 'github-all-orgs.sh — gh api repos (17 owners)', + repos_gitea: 'gitea.sh — Gitea REST API', + github_org_count: 'github-all-orgs.sh — unique owner count', + github_language_count: 'github-all-orgs.sh — repo language field', + fleet_total: 'fleet.sh — SSH probe to all nodes', + fleet_online: 'fleet.sh — SSH probe to all nodes', + avg_temp_c: 'fleet.sh — /sys/class/thermal via SSH', + fleet_mem_total_mb: 'fleet.sh — /proc/meminfo via SSH', + fleet_mem_used_mb: 'fleet.sh — /proc/meminfo via SSH', + fleet_disk_total_gb: 'fleet.sh — df via SSH', + fleet_disk_used_gb: 'fleet.sh — df via SSH', + fleet_connections: 'services.sh — ss -tun via SSH', + fleet_processes: 'services.sh — /proc count via SSH', + systemd_services: 'services.sh — systemctl list-units via SSH', + systemd_timers: 'services.sh — systemctl list-timers via SSH', + docker_containers: 'services.sh — docker ps via SSH', + docker_images: 'services.sh — docker images via SSH', + nginx_sites: 'services.sh — /etc/nginx/sites-enabled via SSH', + ollama_models: 'services.sh — ollama list via SSH', + ollama_size_gb: 'services.sh — ollama list via SSH', + postgres_dbs: 'services.sh — psql -l via SSH', + sqlite_dbs: 'local.sh — find ~/.blackroad -name *.db', + cf_pages: 'cloudflare.sh — wrangler pages list', + cf_d1_databases: 'cloudflare.sh — wrangler d1 list --json', + cf_kv_namespaces: 'cloudflare.sh — wrangler kv list', + cf_r2_buckets: 'cloudflare.sh — wrangler r2 bucket list', + failed_units: 'services.sh — systemctl --failed via SSH', + tailscale_peers: 'services.sh — tailscale status via SSH', + bin_tools: 'local.sh — ls ~/bin | wc -l', + home_scripts: 'local.sh — find ~/ -name *.sh', + templates: 'local.sh — ls ~/Desktop/templates', + mac_cron_jobs: 'local.sh — crontab -l | wc -l', + fleet_cron_jobs: 'autonomy.sh — crontab -l via SSH', + fts5_entries: 'local.sh — sqlite3 FTS5 count', + systems_registered: 'local.sh — sqlite3 systems count', +}; + function fmt(key, val) { if (val === undefined || val === null) return '—'; if (key === 'total_loc' || key === 'prs_merged_total' || key === 'fts5_entries') { @@ -561,8 +604,9 @@ nav{display:flex;align-items:center;justify-content:space-between;padding:16px 4 .metrics-table tr{border-bottom:1px solid var(--border);transition:background .2s} .metrics-table tr:hover{background:rgba(255,255,255,.02)} .metrics-table td{padding:14px 16px;font-size:14px} -.metrics-table td:first-child{font-family:var(--jb);font-size:12px;opacity:.5;text-transform:uppercase;letter-spacing:.08em;width:200px} -.metrics-table td:last-child{font-weight:600;text-align:right;font-family:var(--jb);font-size:18px} +.metrics-table td:first-child{font-family:var(--jb);font-size:12px;opacity:.5;text-transform:uppercase;letter-spacing:.08em;width:180px} +.metrics-table td:nth-child(2){font-weight:600;text-align:right;font-family:var(--jb);font-size:18px;width:120px} +.metrics-table td:last-child{font-family:var(--jb);font-size:10px;opacity:.25;text-align:right;padding-left:24px} .collected-at{text-align:center;padding:24px;font-size:12px;opacity:.3;font-family:var(--jb)} @@ -647,9 +691,25 @@ ${ROLES.map((r, i) => { `; }).join('\n')} -
Last collected: ${s._collected_at || 'pending'} — Updated daily at 06:00
+
+
Data Sources — 10 Collectors
+
+

github.sh

Commits, PRs, events via GitHub API (gh cli)

+

github-deep.sh

Stars, forks, profile, org breakdown

+

github-all-orgs.sh

Full scan of 17 GitHub owners, deduped

+

gitea.sh

Self-hosted Gitea REST API (207 repos)

+

fleet.sh

SSH probe: uptime, CPU, RAM, disk, temp

+

services.sh

Docker, Ollama, Nginx, systemd, PostgreSQL

+

autonomy.sh

Self-healing events, restarts, cron jobs

+

loc.sh

Lines of code via cloc + fleet SSH

+

local.sh

Mac: ~/bin, scripts, DBs, brew, cron, disk

+

cloudflare.sh

Pages, D1, KV, R2 via wrangler CLI

+
+

Pipeline: collect (6am cron) → aggregate (daily JSON) → push to KV → Worker serves live → updated every request

+
+
Last collected: ${s._collected_at || 'pending'} — Updated daily at 06:00 — Raw JSON API