YB Voyager diagnostics reporting
By default, YugabyteDB Voyager reports migration diagnostics to the Yugabyte diagnostics service when yb-voyager commands are executed. The diagnostics information is transmitted securely to and stored by Yugabyte.
None of your data or personally identifiable information is collected.
Data collected
When enabled, the following data is collected while running yb-voyager:
- Migration unique ID
- Migration phase name (for example, export-data, import-schema, and so on)
- Migration phase start time
- Migration phase payload (information relevant to that phase of the migration)
- Payload collection time
- Migration type (Offline, live migration (with fall-foward or fall-back), or bulk data load)
- YugabyteDB Voyager version (the version of yb-voyager used for the migration)
- Source database details
- Database type (PostgreSQL, Oracle, and MySQL)
- Database version
- Total size of the database migrating to YugabyteDB
- Target YugabyteDB database details
- Database version
- Node counts on the target YugabyteDB cluster
- Total cores on the target YugabyteDB cluster
- Time taken in the migration phase up to the point when the payload is collected
- Status of the phase while the payload is sent (for example, In progress, Complete, Exit, and so on)
- IP address of the client machine on which voyager is running
The payload for each migration phase is described in the following table. Note that no sensitive parameters, such as password-related arguments, are stored.
Migration phase | Data collected |
---|---|
assess-migration |
|
export-schema |
|
analyze-schema |
|
import-schema |
|
export-data export-data-from-source export-data-from-target |
|
import-data import-data-to-target import‑data‑to‑source‑replica import-data-to-source |
|
import-data-file (bulk data load) |
|
Example payloads
The following are examples of payloads that are collected during some migration phases:
assess-migration
command payload
{
"migration_uuid": "8d9d678c-f6d4-4253-b24f-e10e4a49cc31",
"phase_start_time": "2024-07-08 16:30:21.237453",
"collected_at": "2024-07-08 16:30:22.69088",
"source_db_details": {
"host": "",
"db_type": "postgresql",
"db_version": "14.1 (Debian 14.1-1.pgdg110+1)",
"total_db_size_bytes": 31391744
},
"target_db_details": "",
"yb_voyager_version": "1.7.2",
"migration_phase": "assess-migration",
"phase_payload": {
"unsupported_features": [
{
"FeatureName": "GIST indexes",
"ObjectCount": 3
},
{
"FeatureName": "Constraint triggers",
"ObjectCount": 0
},
{
"FeatureName": "Inherited tables",
"ObjectCount": 0
},
{
"FeatureName": "Tables with Stored generated columns",
"ObjectCount": 0
}
],
"unsupported_datatypes": ["point", "point"],
"migration_caveats": [
{
"FeatureName": "Alter partitioned tables to add Primary Key",
"ObjectCount": 2
},
{
"FeatureName": "Foreign tables",
"ObjectCount": 2
},
{
"FeatureName": "Policies",
"ObjectCount": 3
},
{
"FeatureName": "Unsupported Data Types for Live Migration",
"ObjectCount": 7
},
{
"FeatureName": "Unsupported Data Types for Live Migration with Fall-forward/Fallback",
"ObjectCount": 3
}
],
"unsupported_query_constructs": {
"Advisory Locks": 2,
"System Columns": 0,
"XML Function": 1
},
"table_sizing_stats": [
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 0 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 1245184 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 0 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 3055616 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 4825088 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 2998272 }
],
"index_sizing_stats": [
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 8192 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 1130496 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 1130496 },
{ "object_name": "XXX", "reads_per_second": 0, "writes_per_second": 0, "size_in_bytes": 1130496 }
],
"schema_summary": {
"DatabaseObjects": [
{ "ObjectType": "SCHEMA", "TotalCount": 1 },
{ "ObjectType": "SEQUENCE", "TotalCount": 3 },
{ "ObjectType": "TABLE", "TotalCount": 9 },
{ "ObjectType": "INDEX", "TotalCount": 9 }
]
},
"source_connectivity": true
},
"migration_type": "",
"time_taken_sec": 2,
"status": "COMPLETE"
}
export-data
command payload
{
"migration_uuid": "8d9d678c-f6d4-4253-b24f-e10e4a49cc31",
"phase_start_time": "2024-07-08 16:28:59.642321",
"collected_at": "2024-07-08 16:29:05.986381",
"source_db_details": {
"host": "",
"db_type": "postgresql",
"db_version": "14.1 (Debian 14.1-1.pgdg110+1)",
"total_db_size_bytes": 31391744
},
"target_db_details": "",
"yb_voyager_version": "1.7.2",
"migration_phase": "export-data",
"phase_payload": {
"parallel_jobs": 4,
"total_rows_exported": 173641,
"largest_table_rows_exported": 149000,
"start_clean": true,
"export_snapshot_mechanism": "pg_dump",
"phase": "SNAPSHOT"
},
"migration_type": "offline",
"time_taken_sec": 7,
"status": "COMPLETE"
}
import-data
command payload
{
"migration_uuid": "8d9d678c-f6d4-4253-b24f-e10e4a49cc31",
"phase_start_time": "2024-07-08 16:40:47.152743",
"collected_at": "2024-07-08 16:42:03.363395",
"source_db_details": "",
"target_db_details": {
"host": "",
"db_version": "11.2-YB-2.18.2.1-b0",
"node_count": 1,
"total_cores": 8
},
"yb_voyager_version": "1.7.2",
"migration_phase": "import-data",
"phase_payload": {
"parallel_jobs": 2,
"total_rows_imported": 173641,
"largest_table_rows_imported": 149000,
"start_clean": true,
"phase": "SNAPSHOT"
},
"migration_type": "offline",
"time_taken_sec": 77,
"status": "COMPLETE"
}
Configure diagnostics collection
To control whether to send diagnostics to Yugabyte, you can use the --send-diagnostics
flag or export an environment variable.
Set the flag as follows:
yb-voyager ... --send-diagnostics [true|false|yes|no|1|0]
The default is true.
Alternatively, you can use the following environment variable to set a value for this flag globally on the client machine where yb-voyager is running.
export YB_VOYAGER_SEND_DIAGNOSTICS=[true|false|yes|no|1|0]