n8n/.github/CI-TELEMETRY.md
2026-02-25 08:18:23 +00:00

1.5 KiB

CI Telemetry

Pipeline: GitHub Actions → Webhook → n8n → BigQuery

Standard Data Points

All telemetry includes these fields for correlation:

// Git context
git.sha         // GITHUB_SHA (first 8 chars)
git.branch      // GITHUB_HEAD_REF ?? GITHUB_REF_NAME
git.pr          // PR number from GITHUB_REF

// CI context
ci.runId        // GITHUB_RUN_ID
ci.job          // GITHUB_JOB
ci.workflow     // GITHUB_WORKFLOW
ci.attempt      // GITHUB_RUN_ATTEMPT

// Runner detection
runner.provider // 'github' | 'blacksmith' | 'local'
runner.cpuCores // os.cpus().length
runner.memoryGb // os.totalmem()

Runner provider logic:

if (!process.env.CI) return 'local';
if (process.env.RUNNER_ENVIRONMENT === 'github-hosted') return 'github';
return 'blacksmith';

Implementations

Telemetry Source Metrics
Build stats .github/scripts/send-build-stats.mjs Per-package build time, cache hits
Docker stats .github/scripts/send-docker-stats.mjs Image size, compiled artifact size, docker build time
Container stack packages/testing/containers/telemetry.ts E2E startup times

Secrets

BUILD_STATS_WEBHOOK_URL
BUILD_STATS_WEBHOOK_USER
BUILD_STATS_WEBHOOK_PASSWORD  # Alphanumeric + hyphens only (no $!#@)

DOCKER_STATS_WEBHOOK_URL

Adding New Telemetry

  1. Copy data point helpers from send-build-stats.mjs
  2. Create n8n workflow: Webhook (Basic Auth) → Code (flatten) → BigQuery
  3. Add secrets to GitHub