> ## Documentation Index
> Fetch the complete documentation index at: https://support.detrics.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitoring & Run History

> Track sync progress, review run history, and monitor transfer health

<Info>**Last updated:** March 18, 2026</Info>

## Transfer List View

The **Data Warehouse → Transfers** page shows all your transfers at a glance:

* **Status badge**: Active, Paused, or Error
* **Last run result**: Success, Partial Success, Failed, or Running
* **Last run time**: When the most recent sync completed
* **Row count**: Total rows loaded in the last run
* **Next run**: When the next scheduled sync will execute

## Real-Time Sync Progress

When a transfer is actively syncing, the detail page shows a **live progress panel**:

* **Current table**: Which table in the group is being processed
* **Tables completed**: Progress across all tables (e.g., "3 of 7 tables")
* **Rows loaded**: Running total of rows loaded so far
* **Bytes loaded**: Total data volume processed
* **Chunk progress**: For large syncs, progress within the current table (e.g., "Chunk 4 of 12")
* **Start time**: When the current sync began

The progress updates in near real-time without needing to refresh the page.

## Run History

Each transfer maintains a full history of every sync execution. Access it from the **Run History** tab on the transfer detail page.

### Run Summary

Each run shows:

| Field                         | Description                                                                        |
| ----------------------------- | ---------------------------------------------------------------------------------- |
| **Run type**                  | Scheduled, Manual, Initial Sync, Resync (retain), Resync (remove), or Table Resync |
| **Status**                    | Success, Partial Success, Failed, or Cancelled                                     |
| **Started at / Completed at** | Timestamps                                                                         |
| **Duration**                  | Total sync time                                                                    |
| **Data range**                | Date range of data fetched (e.g., Mar 15-17)                                       |
| **Total rows**                | Rows loaded across all tables                                                      |
| **Total bytes**               | Data volume loaded                                                                 |
| **Tables synced / failed**    | Count of successful vs failed tables                                               |

### Per-Table Results

Expand any run to see results for each table:

* **Row count**: Rows loaded for this table
* **Status**: Success, Failed, or Skipped
* **Sync mode**: Which mode was used
* **Error details**: If the table failed, the specific error message

### Run Types

| Type                | Description                                                        |
| ------------------- | ------------------------------------------------------------------ |
| **Scheduled**       | Triggered automatically by the transfer's schedule                 |
| **Manual**          | Triggered by clicking **Sync Now**                                 |
| **Initial Sync**    | The first sync after creating a transfer (fetches historical data) |
| **Resync (retain)** | Manual resync that re-fetches data without deleting existing rows  |
| **Resync (remove)** | Manual resync that deletes all existing data first                 |
| **Table Resync**    | Resync of a single table within the transfer                       |

## Run Statuses

| Status              | Meaning                                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Success**         | All tables synced successfully                                                                                      |
| **Partial Success** | Some tables succeeded, some failed. Data from successful tables is loaded; failed tables retain their previous data |
| **Failed**          | All tables failed. No data was modified in BigQuery                                                                 |
| **Cancelled**       | The sync was stopped mid-execution (e.g., transfer was paused during a run)                                         |
| **Running**         | Sync is currently in progress                                                                                       |

## Action History

The **Actions** tab on the transfer detail page shows an audit log of everything that happened to the transfer:

* Transfer created / updated / deleted
* Syncs started / completed / failed
* Paused / resumed
* Settings changed
* Resyncs triggered

Each action records who performed it and when, making it easy to trace changes.

## Monitoring in BigQuery

You can also monitor sync health directly in BigQuery using the `_detrics_sync_log` table. See [System Columns. Sync Log](/bigquery/system-columns#sync-log) for details and example queries.

### Useful Monitoring Queries

**Check when each table was last synced:**

```sql theme={null}
SELECT
  table_name,
  MAX(completed_at) as last_sync,
  TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), MAX(completed_at), HOUR) as hours_ago
FROM `project.dataset._detrics_sync_log`
WHERE status = 'success'
GROUP BY table_name
ORDER BY hours_ago DESC
```

**See average sync duration by table:**

```sql theme={null}
SELECT
  table_name,
  COUNT(*) as sync_count,
  ROUND(AVG(duration_ms) / 1000, 1) as avg_duration_seconds,
  ROUND(AVG(row_count), 0) as avg_rows
FROM `project.dataset._detrics_sync_log`
WHERE status = 'success'
  AND started_at >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY table_name
ORDER BY avg_duration_seconds DESC
```

**Detect sync failures:**

```sql theme={null}
SELECT
  table_name,
  error_message,
  started_at
FROM `project.dataset._detrics_sync_log`
WHERE status = 'failed'
  AND started_at >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
ORDER BY started_at DESC
```
