Runbooks
On-call runbooks for a degraded or down GoodData.CN deployment. Commands assume
the gooddata-cn namespace.
Triage flow
Open the Overall Health dashboard. It puts readiness, API 5xx rate, OOM kills, Pulsar backlog, PostgreSQL/Hikari saturation, analytics latency, and exports on one screen. See Grafana Dashboards.
Check pod state and events. Look for pods that are not
RunningorReady, a highRESTARTScount, andOOMKilling,BackOff, orFailedSchedulingevents:kubectl get pods -n gooddata-cn -o wide kubectl get events -n gooddata-cn --sort-by=.lastTimestamp | tail -n 40Follow the logs. Logs are structured JSON. Lines carry
traceIdandspanIdwhen tracing is enabled for the service —monitoring.tracing.enabledcovers the JVM services and the API gateway, andpythonOtelExporterTypecovers the Python services (see Distributed Tracing). Grep onetraceIdacross services to reconstruct a request:kubectl logs -n gooddata-cn deploy/<release>-<service> --since=15m \ | grep '<traceId>'With tracing off, correlate on the timestamp of the first failing line and the pod name instead, and walk the request path service by service:
kubectl logs -n gooddata-cn <pod> --since=15m --timestampsCentralized logging and tracing: Observability.
Before you contact support
Generate a support bundle from the affected cluster, then open a case at GoodData Support, attaching the bundle plus when the problem started and what changed before it did.
Runbook index
| Symptom | Runbook |
|---|---|
| Services rejecting requests or failing to start with license errors | Expired or Invalid License |