diff --git a/src/current/_includes/molt/delta-all-sources.md b/src/current/_includes/molt/delta-all-sources.md
index eed6a8f228d..2512a41a260 100644
--- a/src/current/_includes/molt/delta-all-sources.md
+++ b/src/current/_includes/molt/delta-all-sources.md
@@ -374,15 +374,15 @@ MOLT Fetch captures a consistent point-in-time checkpoint at the start of the da
You should see periodic primary keepalive messages:
~~~
- DEBUG [Aug 25 14:38:10] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
- DEBUG [Aug 25 14:38:15] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
+ DEBUG [2025-08-25T14:38:10-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
+ DEBUG [2025-08-25T14:38:15-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
~~~
When rows are successfully replicated, you should see debug output like the following:
~~~
- DEBUG [Aug 25 14:40:02] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
- DEBUG [Aug 25 14:40:02] progressed to LSN: 0/49915DD0
+ DEBUG [2025-08-25T14:40:02-05:00] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
+ DEBUG [2025-08-25T14:40:02-05:00] progressed to LSN: 0/49915DD0
~~~
@@ -392,14 +392,14 @@ MOLT Fetch captures a consistent point-in-time checkpoint at the start of the da
~~~
[2025/08/25 15:29:09] [info] binlogsyncer.go:463 begin to sync binlog from GTID set 77263736-7899-11f0-81a5-0242ac120002:1-38
[2025/08/25 15:29:09] [info] binlogsyncer.go:409 Connected to mysql 8.0.43 server
- INFO [Aug 25 15:29:09] connected to MySQL version 8.0.43
+ INFO [2025-08-25T15:29:09-05:00] connected to MySQL version 8.0.43
~~~
When rows are successfully replicated, you should see debug output like the following:
~~~
- DEBUG [Aug 25 15:29:38] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
- DEBUG [Aug 25 15:29:38] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
+ DEBUG [2025-08-25T15:29:38-05:00] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
+ DEBUG [2025-08-25T15:29:38-05:00] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
~~~
@@ -407,15 +407,15 @@ MOLT Fetch captures a consistent point-in-time checkpoint at the start of the da
When transactions are read from the Oracle source, you should see registered transaction IDs (XIDs):
~~~
- DEBUG [Jul 3 15:55:12] registered xid 0f001f0040060000
- DEBUG [Jul 3 15:55:12] registered xid 0b001f00bb090000
+ DEBUG [2025-07-03T15:55:12-05:00] registered xid 0f001f0040060000
+ DEBUG [2025-07-03T15:55:12-05:00] registered xid 0b001f00bb090000
~~~
When rows are successfully replicated, you should see debug output like the following:
~~~
- DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
- DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
+ DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
+ DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
~~~
diff --git a/src/current/_includes/molt/fetch-data-load-output.md b/src/current/_includes/molt/fetch-data-load-output.md
index f6c3425a63b..c3a14662449 100644
--- a/src/current/_includes/molt/fetch-data-load-output.md
+++ b/src/current/_includes/molt/fetch-data-load-output.md
@@ -88,13 +88,13 @@
~~~ json
- {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
+ {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"skipped_unmigratable_tables":[],"cdc_cursor":"0/3F41E40","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
~~~
~~~ json
- {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["public.employees","public.payments","public.payments"],"cdc_cursor":"4c658ae6-e8ad-11ef-8449-0242ac140006:1-29","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
+ {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["public.employees","public.payments","public.payments"],"skipped_unmigratable_tables":[],"cdc_cursor":"4c658ae6-e8ad-11ef-8449-0242ac140006:1-29","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
~~~
{% if page.name contains "delta" %}
@@ -109,7 +109,7 @@
~~~ json
- {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
+ {"level":"info","type":"summary","fetch_id":"f5cb422f-4bb4-4bbd-b2ae-08c4d00d1e7c","num_tables":3,"tables":["migration_schema.employees","migration_schema.payments","migration_schema.payments"],"skipped_unmigratable_tables":[],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:30:37-04:00","message":"fetch complete"}
~~~
{% if page.name contains "delta" %}
diff --git a/src/current/_includes/molt/phased-delta-failback-all-sources.md b/src/current/_includes/molt/phased-delta-failback-all-sources.md
index 09735a86fe6..a91d3a1868f 100644
--- a/src/current/_includes/molt/phased-delta-failback-all-sources.md
+++ b/src/current/_includes/molt/phased-delta-failback-all-sources.md
@@ -388,15 +388,15 @@ Verify that Replicator is processing changes successfully. To do so, check the M
You should see periodic primary keepalive messages:
~~~
-DEBUG [Aug 25 14:38:10] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
-DEBUG [Aug 25 14:38:15] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
+DEBUG [2025-08-25T14:38:10-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:09.556773 -0500 CDT" ServerWALEnd=0/49913A58
+DEBUG [2025-08-25T14:38:15-05:00] primary keepalive received ReplyRequested=false ServerTime="2025-08-25 14:38:14.556836 -0500 CDT" ServerWALEnd=0/49913E60
~~~
When rows are successfully replicated, you should see debug output like the following:
~~~
-DEBUG [Aug 25 14:40:02] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
-DEBUG [Aug 25 14:40:02] progressed to LSN: 0/49915DD0
+DEBUG [2025-08-25T14:40:02-05:00] upserted rows conflicts=0 duration=7.855333ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
+DEBUG [2025-08-25T14:40:02-05:00] progressed to LSN: 0/49915DD0
~~~
@@ -406,14 +406,14 @@ You should see binlog syncer connection and row processing:
~~~
[2025/08/25 15:29:09] [info] binlogsyncer.go:463 begin to sync binlog from GTID set 77263736-7899-11f0-81a5-0242ac120002:1-38
[2025/08/25 15:29:09] [info] binlogsyncer.go:409 Connected to mysql 8.0.43 server
-INFO [Aug 25 15:29:09] connected to MySQL version 8.0.43
+INFO [2025-08-25T15:29:09-05:00] connected to MySQL version 8.0.43
~~~
When rows are successfully replicated, you should see debug output like the following:
~~~
-DEBUG [Aug 25 15:29:38] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
-DEBUG [Aug 25 15:29:38] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
+DEBUG [2025-08-25T15:29:38-05:00] upserted rows conflicts=0 duration=1.801ms proposed=1 target="\"molt\".\"public\".\"tbl1\"" upserted=1
+DEBUG [2025-08-25T15:29:38-05:00] progressed to consistent point: 77263736-7899-11f0-81a5-0242ac120002:1-39
~~~
@@ -421,15 +421,15 @@ DEBUG [Aug 25 15:29:38] progressed to consistent point: 77263736-7899-11f0-81a5
When transactions are read from the Oracle source, you should see registered transaction IDs (XIDs):
~~~
-DEBUG [Jul 3 15:55:12] registered xid 0f001f0040060000
-DEBUG [Jul 3 15:55:12] registered xid 0b001f00bb090000
+DEBUG [2025-07-03T15:55:12-05:00] registered xid 0f001f0040060000
+DEBUG [2025-07-03T15:55:12-05:00] registered xid 0b001f00bb090000
~~~
When rows are successfully replicated, you should see debug output like the following:
~~~
-DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
-DEBUG [Jul 3 15:55:12] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
+DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.620009ms proposed=13 target="\"molt_movies\".\"USERS\".\"CUSTOMER_CONTACT\"" upserted=13
+DEBUG [2025-07-03T15:55:12-05:00] upserted rows conflicts=0 duration=2.212807ms proposed=16 target="\"molt_movies\".\"USERS\".\"CUSTOMER_DEVICE\"" upserted=16
~~~
@@ -732,8 +732,8 @@ On the target cluster, create a CockroachDB changefeed to send changes to MOLT R
1. Verify that Replicator is reporting incoming HTTP requests from the changefeed. To do so, check the MOLT Replicator logs. Since you enabled debug logging with `-v`, you should see periodic HTTP request successes:
~~~
- DEBUG [Aug 25 11:52:47] httpRequest="&{0x14000b068c0 45 200 3 9.770958ms false false}"
- DEBUG [Aug 25 11:52:48] httpRequest="&{0x14000d1a000 45 200 3 13.438125ms false false}"
+ DEBUG [2025-08-25T11:52:47-05:00] httpRequest="&{0x14000b068c0 45 200 3 9.770958ms false false}"
+ DEBUG [2025-08-25T11:52:48-05:00] httpRequest="&{0x14000d1a000 45 200 3 13.438125ms false false}"
~~~
These debug messages confirm successful changefeed connections to MOLT Replicator. You can disable verbose logging after verifying the connection.
diff --git a/src/current/molt/molt-fetch-commands-and-flags.md b/src/current/molt/molt-fetch-commands-and-flags.md
index f38a1f8f851..81d966196b4 100644
--- a/src/current/molt/molt-fetch-commands-and-flags.md
+++ b/src/current/molt/molt-fetch-commands-and-flags.md
@@ -57,6 +57,7 @@ This page lists the [MOLT Fetch]({% link molt/molt-fetch.md %}) commands and the
| `--metrics-listen-addr` | Address of the Prometheus metrics endpoint, which has the path `{address}/metrics`. For details on important metrics to monitor, refer to [Monitoring]({% link molt/molt-fetch-monitoring.md %}).
**Default:** `'127.0.0.1:3030'` |
| `--mode` | Configure the MOLT Fetch behavior: `data-load`, `export-only`, or `import-only`. For details, refer to [Fetch mode]({% link molt/molt-fetch.md %}#define-fetch-mode).
**Default:** `data-load` |
| `--non-interactive` | Run the fetch task without interactive prompts. This is recommended **only** when running `molt fetch` in an automated process (i.e., a job or continuous integration). |
+| `--opt-out-telemetry` | Suppress MOLT telemetry-event logging, which is enabled by default. |
| `--pglogical-replication-slot-name` | Name of a PostgreSQL replication slot that will be created before taking a snapshot of data. Must match the slot name specified with `--slotName` in the [MOLT Replicator command]({% link molt/molt-replicator.md %}#replication-checkpoints). For details, refer to [Initial bulk load (before replication)]({% link molt/molt-fetch.md %}#initial-bulk-load-before-replication). |
| `--pglogical-publication-and-slot-drop-and-recreate` | Drop the PostgreSQL publication and replication slot if they exist, then recreate them. Creates a publication named `molt_fetch` and the replication slot specified with `--pglogical-replication-slot-name`. For details, refer to [Initial bulk load (before replication)]({% link molt/molt-fetch.md %}#initial-bulk-load-before-replication).
**Default:** `false` |
| `--pprof-listen-addr` | Address of the pprof endpoint.
**Default:** `'127.0.0.1:3031'` |
diff --git a/src/current/molt/molt-fetch.md b/src/current/molt/molt-fetch.md
index e2610de3bf0..08a8a9b9171 100644
--- a/src/current/molt/molt-fetch.md
+++ b/src/current/molt/molt-fetch.md
@@ -767,13 +767,13 @@ A change data capture (CDC) cursor is written to the MOLT Fetch output as `cdc_c
For MySQL:
~~~ json
-{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
+{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"skipped_unmigratable_tables":[],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
~~~
For Oracle:
~~~ json
-{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":3,"tables":["migration_schema.employees"],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
+{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":3,"tables":["migration_schema.employees"],"skipped_unmigratable_tables":[],"cdc_cursor":"backfillFromSCN=26685444,scn=26685786","net_duration_ms":6752.847625,"net_duration":"000h 00m 06s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
~~~
This `cdc_cursor` value is also included in the output of a fetch task from a PostgreSQL source. However, in the case of a PostgreSQL source, you can instead enable replication with the [`--pglogical-replication-slot-name`]({% link molt/molt-fetch-commands-and-flags.md %}#pglogical-replication-slot-name) and [`--pglogical-publication-and-slot-drop-and-recreate`]({% link molt/molt-fetch-commands-and-flags.md %}#pglogical-publication-and-slot-drop-and-recreate) flags, which must be defined.
@@ -1031,7 +1031,7 @@ molt fetch \
The output will include a `cdc_cursor` value at the end of the fetch task:
~~~ json
-{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
+{"level":"info","type":"summary","fetch_id":"735a4fe0-c478-4de7-a342-cfa9738783dc","num_tables":1,"tables":["public.employees"],"skipped_unmigratable_tables":[],"cdc_cursor":"b7f9e0fa-2753-1e1f-5d9b-2402ac810003:3-21","net_duration_ms":4879.890041,"net_duration":"000h 00m 04s","time":"2024-03-18T12:37:02-04:00","message":"fetch complete"}
~~~
diff --git a/src/current/molt/replicator-metrics.md b/src/current/molt/replicator-metrics.md
index 1c071f1eac1..d81465efd14 100644
--- a/src/current/molt/replicator-metrics.md
+++ b/src/current/molt/replicator-metrics.md
@@ -439,17 +439,17 @@ replicator start \
If successful, Replicator will start, and the console output will indicate that the snapshotter has started as well:
~~~
-INFO [Feb 2 10:20:32] Replicator starting
+INFO [2026-02-02T10:20:32-05:00] Replicator starting
...
-INFO [Feb 2 10:20:32] metrics snapshotter started, writing to replicator-data/metrics-snapshots every 15s, retaining 168h0m0s
+INFO [2026-02-02T10:20:32-05:00] metrics snapshotter started, writing to replicator-data/metrics-snapshots every 15s, retaining 168h0m0s
~~~
Upon interruption of Replicator, the snapshotter will be stopped:
-~~~
-INFO [Feb 2 10:26:45] Interrupted
-INFO [Feb 2 10:26:45] metrics snapshotter stopped
-INFO [Feb 2 10:26:45] Server shutdown complete
+~~~
+INFO [2026-02-02T10:26:45-05:00] Interrupted
+INFO [2026-02-02T10:26:45-05:00] metrics snapshotter stopped
+INFO [2026-02-02T10:26:45-05:00] Server shutdown complete
~~~
#### Step 2. Find the snapshot files in the data directory