Start by scoping and confirming impact: which dashboard, which dataset/table, when it last showed fresh data, and whether multiple dashboards are affected.1) Check ingestion layer- Confirm source availability and arrival timestamps: - Cloud storage: ls and head recent filesbash
aws s3 ls s3://bucket/path/ --recursive | sort -r | head
aws s3 cp s3://bucket/path/file.csv - | head
- DB sources: check latest rowssql
SELECT MAX(created_at) FROM source_table;
- Check scheduler/logs that run ingestion (Airflow, cron):bash
airflow tasks list DAG_ID && airflow tasks state DAG_ID TASK_ID YYYY-MM-DD
tail -n 200 /var/log/ingest_job.log
2) Check transformation layer- Verify ETL execution status and runtime errors (Airflow/Dataproc/Spark):bash
airflow dag-state DAG_ID YYYY-MM-DD
gcloud dataproc jobs list --region=... --filter="status.state=ERROR"
- Inspect job logs for late failures or skipped downstream tasks.- Validate transformed table timestamps / row counts:sql
SELECT MAX(updated_at), COUNT(*) FROM transformed.table;
- Run a small downstream transform locally or re-run a failing task to reproduce.3) Check storage/warehouse- Confirm target tables partitions and recent loads:sql
-- BigQuery example
SELECT partition_id, row_count FROM `project.dataset.__PARTITIONS_SUMMARY__` ORDER BY partition_id DESC LIMIT 5;
SELECT MAX(event_date) FROM dataset.table;
- Check for permissions/quota issues, table truncation, or accidental overwrites.- Check materialized views or incremental load markers (watermarks).4) Check serving/dashboard layer- Verify the dashboard’s data source config (table name, schema, credentials) hasn’t changed.- Check cache/refresh settings and last refresh logs (Looker, Tableau, Metabase): - Clear cache or trigger a manual refresh.- Example: query the live data used by dashboard to confirm staleness:sql
SELECT COUNT(*), MAX(updated_at) FROM analytic.dataset.table WHERE <dashboard_filter>;
- Check API/BI connector errors in logs.5) Rapid isolation and remediation- If ingestion stalled: re-run ingestion or backfill missing files.- If transformation failed: re-run failed tasks, run idempotent jobs for affected partitions.- If warehouse load OK but dashboard stale: clear BI cache, reconfigure connector, or update scheduled refresh.6) Post-mortem checks- Add alerts: missing partition, late pipeline run, row-count deltas.- Document root cause, fix, and preventative monitoring.Throughout, capture timestamps, job IDs, and any error messages; escalate if cross-team dependencies (source owners, BI admins) are involved.