Stay organized with collectionsSave and categorize content based on your preferences.
Database Migration Service collects and displays migration job metrics that represent the
health and progress of your data migration process. This page describes the
following areas associated with migration job metrics:
Metrics available in Cloud Monitoringdescribes all metrics
related to migration job performance, including the metrics surfaced from
the Cloud SQL for SQL Server destination instance.
Metrics available on the migration job details page
The migration job details page shows several diagrams that can help you understand
the current state and progress of your migration job. You can filter the
information in these diagrams for each database included in your migration job.
Figure 1.Sample observability diagrams in Database Migration Service.
(click to enlarge)
Expand the following sections to learn more about each diagram and its associated
metric.
Restore lag
TheRestore lagdiagram uses themigration_job/max_replica_sec_lagmetric to represent the
time difference between the backup file epoch (derived from the file name),
and the moment when that file is fully restored in your Cloud SQL
destination instance. This metric monitors all types of backup and transaction
log files that you use for a migration job (that is, a full backup, a differential
backup, or a transaction log file). You can use this information to estimate
your average data replication speed, or to troubleshoot possible issues with
continuous data replication.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows restore lag across all
databases included in your migration job.
Transaction log backup upload lag
TheTransaction log backup upload lagdiagram uses themigration_job/sqlserver/transaction_log_upload_sec_lagmetric to show how much time (in seconds) has passed between now and
the timestamp of the last transaction log file you uploaded to
Cloud Storage.
You can use this metric to monitor possible issues with automated uploads
of transaction log files: a big time difference could indicate
that your transaction log files aren't being uploaded to the Cloud Storage
bucket.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows the highest lag
across all databases included in your migration job.
Processed transaction log backups
TheProcessed transaction log backupsdiagram uses themigration_job/sqlserver/processed_file_countmetric
to represent how many transaction log backup files Database Migration Service
has processed and imported to Cloud SQL.
This information updates after a
transaction log is fully processed, so the line displayed on the diagram moves
in bigger jumps rather than gradual decreases.
You can monitor this metric to track the progress of the incremental load
phase. A value greater than 0 indicates that your migration job finished the
initial load phase and is now in the incremental load phase.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows a summary for all
databases included in your migration job.
Processed transaction log backups size
TheProcessed transaction log backups sizediagram uses themigration_job/sqlserver/processed_file_bytes_countmetric
to show how much transaction log data (in bytes) Database Migration Service
has replicated to your Cloud SQL destination instance.
This information updates after a
transaction log is fully processed, so the line displayed on the diagram moves
in bigger jumps rather than gradual decreases.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows a summary for all
databases included in your migration job.
Unprocessed transaction log backups
TheUnprocessed transaction log backupsdiagram uses themigration_job/sqlserver/unprocessed_filesmetric
to represent how many transaction log backup files Database Migration Service has detected
in your source Cloud Storage bucket but has not yet replicated to
your Cloud SQL destination instance. This information updates after a
transaction log is fully processed, so the line displayed on the diagram moves
in bigger jumps rather than gradual decreases.
You can watch this metric when you want to determine when to finalize your
migration job. A good time topromote the migration jobwould be when the value ofUnprocessed transaction log backupsreaches zero and you don't
have more transaction log files to upload to Cloud Storage.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows a summary for all
databases included in your migration job.
Unprocessed transaction log backups size
TheUnprocessed transaction log backups sizediagram uses themigration_job/sqlserver/unprocessed_file_bytesmetric
to show how much data (in bytes) Database Migration Service has detected
in your source Cloud Storage bucket but has not yet replicated to
your Cloud SQL destination instance. This information updates after a
transaction log is fully processed, so the line displayed on the diagram moves
in bigger jumps rather than gradual decreases.
You can watch this metric when you want to determine when to finalize your
migration job. A good time topromote the migration jobwould be when the value ofUnprocessed transaction log backups sizereaches zero and you don't
have more transaction log files to upload to Cloud Storage.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows a summary for all
databases included in your migration job.
Total destination storage usage
TheTotal destination storage usagediagram uses the Cloud SQLdatabase/disk/bytes_usedmetric to show how much data
(in bytes) is stored in all the databases in your destination
Cloud SQL instance. You can use this information to estimate the progress
of your migration job.
This metric is only available in the aggregated view. You can't filter the
total disk usage per database.
Replication delay
TheReplication delaydiagram uses the Cloud SQLper_database/postgresql/external_sync/replication_byte_lagmetric to show the difference (in bytes) between the time an operation was executed on
the source and when it was applied to the destination instance.
You can use this information to ensure data consistency between the source and the destination instance.
This metric is available for each database included in your migration job,
and in the aggregated view where it shows a summary for all
databases included in your migration job.
View metrics on the migration job details page
To view metric diagrams on the migration job details page, perform the following
steps:
In the Google Cloud console, go to theMigration jobspage.
In theJobstab, click the display name of your migration job.
The migration job details page opens.
In theDatabasessection, you can viewRestore lagandUnprocessed transaction log backups sizenumerical data for each
database included in your migration job.
Click theMonitoringtab to see the metrics diagrams.
You can use theViewmenu to show aggregated data for all
databases included in your migration job, or filter the information for
specific databases.
You can also view each diagram directly in Cloud Monitoring.
Clickmore_vertMore chart options>View in Metrics Explorer.
Current replication lag, aggregated across all of the migration job's data. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database: Database name.
migration_job/max_replica_sec_lagBETA Max lag in seconds of the migration job data
Current replication lag, aggregated across all of the migration job's data. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database: Database name.
Number of bytes uploaded to the destination. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database: Database name.
Number of files uploaded to the destination. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database: Database name.
migration_job/sqlserver/transaction_log_upload_sec_lagBETA Transaction Log Upload Sec Lag
The lag in seconds since the last uploaded transaction log. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database: Database name.
Unprocessed file bytes waiting to be uploaded to Cloud SQL. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database:
Database name.
Unprocessed files waiting to be uploaded to Cloud SQL. Sampled every 60 seconds. After sampling, data is not visible for up to 180 seconds. database: Database name.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eDatabase Migration Service provides metrics on the migration job details page and in Cloud Monitoring to help track the health and progress of data migration.\u003c/p\u003e\n"],["\u003cp\u003eThe migration job details page includes diagrams like Restore lag, Transaction log backup upload lag, Processed transaction log backups, and Unprocessed transaction log backups, all of which update after a transaction log is processed.\u003c/p\u003e\n"],["\u003cp\u003eKey metrics such as \u003ccode\u003emigration_job/max_replica_sec_lag\u003c/code\u003e (Restore lag) and \u003ccode\u003emigration_job/sqlserver/transaction_log_upload_sec_lag\u003c/code\u003e (Transaction log backup upload lag) are available for each database and in aggregated views.\u003c/p\u003e\n"],["\u003cp\u003eUnprocessed transaction log backups and size metrics can help determine the optimal time to finalize a migration job, which is when these values reach zero and no more files need to be uploaded.\u003c/p\u003e\n"],["\u003cp\u003eCloud Monitoring offers a detailed set of metrics, including \u003ccode\u003emigration_job/max_replica_bytes_lag\u003c/code\u003e and \u003ccode\u003emigration_job/sqlserver/unprocessed_file_bytes\u003c/code\u003e, which can be used to create custom charts and monitor various aspects of the migration process, such as replication lag and unprocessed file data.\u003c/p\u003e\n"]]],[],null,["# Migration job metrics\n\nDatabase Migration Service collects and displays migration job metrics that represent the\nhealth and progress of your data migration process. This page describes the\nfollowing areas associated with migration job metrics:\n\n- [Metrics available on the migration job details page](#job-details-page) covers the\n observability information you can view directly in Database Migration Service\n on the migration job details page.\n\n- [Metrics available in Cloud Monitoring](#monitoring-view) describes all metrics\n related to migration job performance, including the metrics surfaced from\n the Cloud SQL for SQL Server destination instance.\n\nMetrics available on the migration job details page\n---------------------------------------------------\n\nThe migration job details page shows several diagrams that can help you understand\nthe current state and progress of your migration job. You can filter the\ninformation in these diagrams for each database included in your migration job.\n[](#lightbox-trigger) **Figure 1.** Sample observability diagrams in Database Migration Service. (click to enlarge)\n\nExpand the following sections to learn more about each diagram and its associated\nmetric. \n\n#### Restore lag\n\nThe **Restore lag** diagram uses the\n[`migration_job/max_replica_sec_lag`](/monitoring/api/metrics_gcp_d_h#datamigration/migration_job/max_replica_sec_lag) metric to represent the\ntime difference between the backup file epoch (derived from the file name),\nand the moment when that file is fully restored in your Cloud SQL\ndestination instance. This metric monitors all types of backup and transaction\nlog files that you use for a migration job (that is, a full backup, a differential\nbackup, or a transaction log file). You can use this information to estimate\nyour average data replication speed, or to troubleshoot possible issues with\ncontinuous data replication.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows restore lag across all\ndatabases included in your migration job. \n\n#### Transaction log backup upload lag\n\nThe **Transaction log backup upload lag** diagram uses the [`migration_job/sqlserver/transaction_log_upload_sec_lag`](/monitoring/api/metrics_gcp_d_h#datamigration/migration_job/sqlserver/transaction_log_upload_sec_lag)\nmetric to show how much time (in seconds) has passed between now and\nthe timestamp of the last transaction log file you uploaded to\nCloud Storage.\nYou can use this metric to monitor possible issues with automated uploads\nof transaction log files: a big time difference could indicate\nthat your transaction log files aren't being uploaded to the Cloud Storage\nbucket.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows the highest lag\nacross all databases included in your migration job. \n\n#### Processed transaction log backups\n\nThe **Processed transaction log backups** diagram uses the [`migration_job/sqlserver/processed_file_count`](/monitoring/api/metrics_gcp_d_h#datamigration/migration_job/sqlserver/processed_file_count) metric\nto represent how many transaction log backup files Database Migration Service\nhas processed and imported to Cloud SQL.\nThis information updates after a\ntransaction log is fully processed, so the line displayed on the diagram moves\nin bigger jumps rather than gradual decreases.\n\nYou can monitor this metric to track the progress of the incremental load\nphase. A value greater than 0 indicates that your migration job finished the\ninitial load phase and is now in the incremental load phase.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows a summary for all\ndatabases included in your migration job. \n\n#### Processed transaction log backups size\n\nThe **Processed transaction log backups size** diagram uses the\n[`migration_job/sqlserver/processed_file_bytes_count`](/monitoring/api/metrics_gcp_d_h#datamigration/migration_job/sqlserver/processed_file_bytes_count) metric\nto show how much transaction log data (in bytes) Database Migration Service\nhas replicated to your Cloud SQL destination instance.\nThis information updates after a\ntransaction log is fully processed, so the line displayed on the diagram moves\nin bigger jumps rather than gradual decreases.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows a summary for all\ndatabases included in your migration job. \n\n#### Unprocessed transaction log backups\n\nThe **Unprocessed transaction log backups** diagram uses the\n[`migration_job/sqlserver/unprocessed_files`](/monitoring/api/metrics_gcp_d_h#datamigration/migration_job/sqlserver/unprocessed_files) metric\nto represent how many transaction log backup files Database Migration Service has detected\nin your source Cloud Storage bucket but has not yet replicated to\nyour Cloud SQL destination instance. This information updates after a\ntransaction log is fully processed, so the line displayed on the diagram moves\nin bigger jumps rather than gradual decreases.\n\nYou can watch this metric when you want to determine when to finalize your\nmigration job. A good time to\n[promote the migration job](/database-migration/docs/sqlserver/finalize-migration) would be when the value of\n**Unprocessed transaction log backups** reaches zero and you don't\nhave more transaction log files to upload to Cloud Storage.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows a summary for all\ndatabases included in your migration job. \n\n#### Unprocessed transaction log backups size\n\nThe **Unprocessed transaction log backups size** diagram uses the\n[`migration_job/sqlserver/unprocessed_file_bytes`](/monitoring/api/metrics_gcp_d_h#datamigration/migration_job/sqlserver/unprocessed_file_bytes) metric\nto show how much data (in bytes) Database Migration Service has detected\nin your source Cloud Storage bucket but has not yet replicated to\nyour Cloud SQL destination instance. This information updates after a\ntransaction log is fully processed, so the line displayed on the diagram moves\nin bigger jumps rather than gradual decreases.\n\nYou can watch this metric when you want to determine when to finalize your\nmigration job. A good time to\n[promote the migration job](/database-migration/docs/sqlserver/finalize-migration) would be when the value of\n**Unprocessed transaction log backups size** reaches zero and you don't\nhave more transaction log files to upload to Cloud Storage.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows a summary for all\ndatabases included in your migration job. \n\n#### Total destination storage usage\n\nThe **Total destination storage usage** diagram uses the Cloud SQL\n[`database/disk/bytes_used`](/monitoring/api/metrics_gcp_c#cloudsql/database/disk/bytes_used) metric to show how much data\n(in bytes) is stored in all the databases in your destination\nCloud SQL instance. You can use this information to estimate the progress\nof your migration job.\n\nThis metric is only available in the aggregated view. You can't filter the\ntotal disk usage per database. \n\n#### Replication delay\n\nThe **Replication delay** diagram uses the Cloud SQL\n[`per_database/postgresql/external_sync/replication_byte_lag`](/monitoring/api/metrics_gcp_c#cloudsql/per_database/postgresql/external_sync/replication_byte_lag)\nmetric to show the difference (in bytes) between the time an operation was executed on\nthe source and when it was applied to the destination instance.\n\nYou can use this information to ensure data consistency between the source and the destination instance.\n\nThis metric is available for each database included in your migration job,\nand in the aggregated view where it shows a summary for all\ndatabases included in your migration job.\n\n### View metrics on the migration job details page\n\nTo view metric diagrams on the migration job details page, perform the following\nsteps:\n\n1. In the Google Cloud console, go to the **Migration jobs** page.\n\n [Go to Migration jobs](https://console.cloud.google.com/dbmigration/migrations)\n2. In the **Jobs** tab, click the display name of your migration job.\n\n The migration job details page opens.\n3. In the **Databases** section, you can view **Restore lag** and **Unprocessed transaction log backups size** numerical data for each database included in your migration job.\n4. Click the **Monitoring** tab to see the metrics diagrams.\n - You can use the **View** menu to show aggregated data for all databases included in your migration job, or filter the information for specific databases.\n - You can also view each diagram directly in Cloud Monitoring. Click more_vert**More chart options\n \\\u003e View in Metrics Explorer**.\n\nMetrics available in Cloud Monitoring\n-------------------------------------\n\nThe following table describes all migration job metrics you can use to\n[create charts in Metrics Explorer](/monitoring/charts/metrics-explorer)\nfor SQL Server migrations. The\n[complete metrics Database Migration Service metrics reference](/monitoring/api/metrics_gcp)\nlists several additional metrics, but they are not available for SQL Server\nmigrations.\n\nYou can also use the\n[Cloud SQL `cloudsql/database/disk/bytes_used` metric](/monitoring/api/metrics_gcp_c#cloudsql/database/disk/bytes_used)\nand compare it with the total size of your source databases to estimate\nthe migration job progress."]]