I insist on a baseline dashboard before the first move; it becomes the reference point for every debate later. It is also the only way to avoid the “is this normal?” spiral during cutover. Observability during migrations needs to be stronger than normal operations. When systems move, you need to see both the old and new environments clearly. The goal is fast detection and fast response, not perfect charts.
Start with a baseline. Capture latency, error rate, and throughput for key user flows before the first migration step. These baseline dashboards become your reference during cutover and validation. Without baselines, you cannot prove that the new system is stable.
Signals that matter first: Create side by side views of old and new environments. Track replication delay, queue lag, and critical API error rates. Keep the dashboard simple so it is readable under pressure. If a view does not support a decision, remove it.
Logs and traces should use consistent identifiers across environments. Tag versions, environments, and tenant identifiers so you can filter quickly. For traces, focus sampling on high value paths rather than trying to trace everything. Include data validation metrics. During migration you can have silent data loss even when services are up. Track record counts, checksum mismatches, and processing delays in the pipeline. These indicators are often more useful than generic CPU charts.
Alerting during migration: Prioritize alerts tied to user impact. Avoid noisy infrastructure alerts that do not require action. During migration, alerting should help the team decide whether to continue, pause, or roll back. Keep an on call playbook close to the dashboards. The goal is not to collect metrics but to use them for fast, confident decisions.
Good observability shortens the time from detection to action. That is the real value during a migration. Instrument the migration tooling itself. Track time spent in data copy, validation, and cutover steps. This helps you estimate the next wave and identify where automation can save time.
Make it easy to compare user impact across environments. Use synthetic checks or simple end to end tests that run every few minutes. If a synthetic check fails, you can pause before customers notice. Keep dashboards and alerts close to the runbook. If the team has to search for the right view during the cutover, response time suffers. A small set of known views is better than a large set of unused ones.
Example baseline: baseline before the first move
Before migrating a service, capture a baseline for latency, error rates, and throughput. Add a dashboard that shows these metrics side by side for the source and target environments. During the first migration wave, you can compare traffic split and see if the new environment changes behavior. If latency rises after migration, the team can quickly isolate whether it is the database, network, or application layer. That reduces guesswork and keeps the cutover on schedule.
Where teams get stuck
- Adding too many metrics without clear owners or thresholds.
- Missing distributed tracing, which hides cross service latency.
- Failing to separate migration errors from existing noise.
- Ignoring log retention, which makes incident review impossible.
- Alerting on every metric, leading to alert fatigue.
Migration observability checklist
- Track golden signals: latency, errors, traffic, saturation.
- Build a baseline dashboard before migration starts.
- Add tracing for the top user flows and database calls.
- Tag metrics by environment to compare side by side.
- Define alert thresholds and owners for each service.
- Review dashboards after each migration wave.
Instrumentation priorities: During migration, prioritize instrumentation on the most critical user journeys. Add traces to login, checkout, and other high value flows. Instrument database calls and external API calls so you can see where time is spent. If you only have time for a few logs, log errors with enough context to reproduce them.
Make sure logs include a correlation ID so you can tie together metrics, traces, and logs for a single request. Post cutover verification: After cutover, run a structured verification. Compare key metrics to the baseline for 24 to 48 hours. Check error rates, latency, and resource usage. If anything drifts outside the expected range, pause further migration and investigate. This discipline prevents small regressions from becoming major incidents.
Incident runbook tie in: Link dashboards to runbooks. When an alert fires, the on call engineer should have a short runbook with known causes and checks. During migration, this reduces the time to diagnosis and keeps the team from guessing. It also helps separate migration issues from unrelated production noise.
Migration annotation: Annotate dashboards with migration events. When a service is moved, add a timestamp so engineers can correlate metrics changes with the cutover. This small step saves time during incident reviews and makes it easier to explain what happened. Cost control: Observability can get expensive during migration. Sample high volume logs, retain detailed logs for a shorter window, and downsample metrics after the critical migration phase. This keeps costs predictable without losing critical signals.



