Complete checklist for deploying Bright Data scraping integrations to production with zone verification, monitoring, and rollback procedures.
.env)brd-ca.crt) deployed# Verify production zone is active
curl -s -H "Authorization: Bearer ${BRIGHTDATA_API_TOKEN}" \
https://api.brightdata.com/zone/get_active_zones \
| python3 -c "import sys,json; zones=json.load(sys.stdin); print([z['name'] for z in zones])"
# Test production proxy connectivity
curl -x "http://brd-customer-${BRIGHTDATA_CUSTOMER_ID}-zone-${BRIGHTDATA_ZONE}:${BRIGHTDATA_ZONE_PASSWORD}@brd.superproxy.io:33335" \
-s -w "HTTP %{http_code} in %{time_total}s\n" \
https://lumtest.com/myip.json
brightdata-rate-limits)X-Luminati-Error headers// Health check endpoint
export async function healthCheck() {
const start = Date.now();
try {
const client = getBrightDataClient();
const res = await client.get('https://lumtest.com/myip.json');
return {
status: 'healthy',
proxy_ip: res.data.ip,
latency_ms: Date.now() - start,
};
} catch (error: any) {
return {
status: 'degraded',
error: error.response?.headers?.['x-luminati-error'] || error.message,
latency_ms: Date.now() - start,
};
}
}
| Alert | Condition | Severity |
|---|---|---|
| Proxy down | 5xx errors > 10/min | P1 |
| High latency | p99 > 30s | P2 |
| Budget spike | Daily cost > 2x average | P2 |
| Auth failures | 407 errors > 0 | P1 |
| Target blocked | target_site_blocked > 20% |
P3 |
# Pre-flight
curl -s https://status.brightdata.com/api/v2/status.json | python3 -c "import sys,json; s=json.load(sys.stdin); print(f'Status: {s[\"status\"][\"description\"]}')"
# Deploy with canary
kubectl apply -f k8s/production.yaml
kubectl rollout status deployment/scraper --timeout=300s
# Verify scraping works post-deploy
curl -s http://localhost:8080/health | python3 -m json.tool
# Immediate rollback
kubectl rollout undo deployment/scraper
kubectl rollout status deployment/scraper
# If zone compromised, pause in Bright Data CP immediately
For version upgrades, see brightdata-upgrade-migration.