Operations

Runbooks, health checks, and local verification.

This page mirrors the practical runbook for working on Lighthouse locally and validating the current feature set.

Core Commands

npm run docker:sample
npm run docker:sample:down
npm run verify
npm run e2e

Health Checks

curl http://localhost:3000/api/health
curl http://localhost:3000/api/dashboard-metrics
curl http://localhost:9090/-/ready
curl http://localhost:9308/metrics

Replay Verification

Use the live integration test with the sample stack already running.

$env:KAFKA_INTEGRATION="1"
$env:KAFKA_BROKERS="localhost:19092,localhost:19093,localhost:19094"
npm.cmd run test:kafka:integration

Replay Jobs

npm run replay:jobs -- list
npm run replay:jobs -- show --job-id sample-job

Replay API Smoke Test

curl -X POST http://localhost:3000/api/jobs \
  -H "content-type: application/json" \
  -d '{"source":"orders","destination":"orders-replay","partition":"0","start":"0","end":"5","job-id":"sample-job-api"}'
curl http://localhost:3000/api/jobs/sample-job-api/preview
curl -X POST http://localhost:3000/api/jobs/sample-job-api/start
curl http://localhost:3000/api/jobs/sample-job-api

Troubleshooting

Prometheus unavailable

Check that Prometheus is up and reachable from the app process.

docker ps
curl http://localhost:9090/-/ready

Dashboard metrics stay at zero

Confirm the demo producer and Kafka exporter are running.

docker compose -f docker-compose.yml -f docker-compose.local-kafka.yml ps
curl http://localhost:9308/metrics

Replay CLI range validation fails

This usually means the requested offsets are outside the retained source range, or the destination topic is missing the selected partition.

Replay job start fails

Check the job status, Kafka connectivity, and whether the local SQLite file path is writable.

CI

The main CI workflow currently runs: