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