Back to blog
DevOps & SRE September 7, 2026

Multi-Cloud Performance Monitoring: AWS, Azure, and GCP SRE Playbook

Automate WhatsApp Alerts
Start Free ➔

Multi-Cloud Performance Monitoring: AWS, Azure, and GCP SRE Playbook

Deploying distributed architectures across multiple cloud hyperscalers—such as hosting primary compute on AWS EKS, machine learning pipelines on GCP Vertex AI, and enterprise data warehouses on Microsoft Azure—creates complex failure domains. When cross-cloud network paths degrade, latency cascades across service boundaries, driving up cloud egress costs and threatening Service Level Objectives (SLOs).

Site Reliability Engineers (SREs) eliminate multi-cloud blind spots by building a unified, vendor-neutral observability layer. This playbook covers cross-cloud telemetry standardization, protocol-level network diagnostics, PromQL and KQL query patterns, cost-aware monitoring, and automated incident runbooks.


1. Unified Multi-Cloud Observability Architecture

Relying solely on isolated cloud-native consoles (AWS CloudWatch, Azure Monitor, Google Cloud Operations) creates fragmented monitoring silos during cross-cloud outages. A production multi-cloud architecture normalizes telemetry through OpenTelemetry collectors feeding a vendor-neutral metrics, logs, and traces plane:

                    ┌──────────────────────────────┐
                    │     Unified Grafana Plane    │
                    └──────────────┬───────────────┘
                                   │
                    ┌──────────────▼───────────────┐
                    │  Prometheus / VictoriaMetrics│
                    │   OpenTelemetry / Loki Traces│
                    └──────────────┬───────────────┘
                                   │
             ┌─────────────────────┼─────────────────────┐
             │                     │                     │
      ┌──────▼──────┐       ┌──────▼──────┐       ┌──────▼──────┐
      │  AWS Cloud  │       │ Azure Cloud │       │  GCP Cloud  │
      └──────┬──────┘       └──────┬──────┘       └──────┬──────┘
             │                     │                     │
       CloudWatch/VPC        Azure Monitor/NSG      Cloud Monitoring/VPC
       AWS X-Ray             App Insights           Cloud Trace
             │                     │                     │
             └─────────────────────┼─────────────────────┘
                                   │
                     ┌─────────────▼─────────────┐
                     │ OpenTelemetry Collector   │
                     │  (DaemonSet / Sidecars)   │
                     └───────────────────────────┘

Standardized Telemetry Schema

Normalize metrics across AWS, Azure, and GCP using consistent label keys:

cloud_provider: "aws" | "azure" | "gcp"
cloud_region:   "us-east-1" | "eastus" | "us-central1"
availability_zone: "us-east-1a" | "eastus-1" | "us-central1-a"
cluster_name:   "prod-eks-01" | "prod-aks-01" | "prod-gke-01"
service_name:   "payments-api" | "auth-service" | "order-processor"
environment:    "production" | "staging"

2. Multi-Cloud Golden Signals & SRE Threshold Matrix

Monitor the Four Golden Signals (Latency, Traffic, Errors, and Saturation) across every cross-cloud interconnect:

Telemetry SignalHealthy BaselineWarning ThresholdCritical Incident ThresholdPrimary Investigation Focus
Cross-Cloud API Latency (p95)(< 150\text{ ms})(150\text{ ms} - 350\text{ ms})(> 350\text{ ms})Inter-cloud routing, WAN peering congestion.
Packet Loss Ratio(< 0.1%)(0.1% - 1.0%)(> 1.0%)IPsec VPN / Direct Connect / Interconnect drops.
TCP Retransmission Rate(< 0.5%)(0.5% - 2.0%)(> 2.0%) sustainedNetwork congestion, MTU / MSS black holes.
HTTP 5xx Error Rate(< 0.05%)(0.05% - 0.5%)(> 0.5%)Backend worker starvation, downstream timeouts.
DNS Resolution Latency (p95)(< 30\text{ ms})(30\text{ ms} - 100\text{ ms})(> 100\text{ ms})Cross-cloud private DNS forwarding loops.
NAT / Gateway Saturation(< 65%)(65% - 80%)(> 85%)NAT Gateway port exhaustion, bandwidth cap.
Compute / Memory Saturation(< 70%)(70% - 85%)(> 85%)Instance type exhaustion, CPU CFS throttling.

3. Protocol-Level Cross-Cloud Network Measurement

Cross-cloud latency differs between raw ICMP pings and true HTTPS application requests. An HTTPS request across clouds traverses multiple transport layers:

Client Application (AWS EC2)
   │
   ├─► 1. DNS Resolution (Route 53 / Azure Private DNS / Cloud DNS)
   ├─► 2. TCP SYN Handshake (1 RTT across WAN / Interconnect)
   ├─► 3. TLS 1.3 Key Exchange (1 RTT ephemeral Diffie-Hellman)
   ├─► 4. HTTP Request Header & Body Transfer
   ├─► 5. Server Processing Time (GCP Cloud Run / Azure AKS)
   └─► 6. HTTP Response Stream & TCP ACKs

Transport Diagnostics & Network Inspection

Execute these commands to isolate whether cross-cloud latency stems from DNS lookup, TCP handshakes, TLS negotiation, or server response times:

# 1. Deconstruct request timing across cloud boundaries
curl -sS -o /dev/null \
  -w 'DNS Lookup: %{time_namelookup}s\nTCP Connect: %{time_connect}s\nTLS Handshake: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal Time: %{time_total}s\nHTTP Status: %{http_code}\n' \
  https://api.gcp.example.com/health

# 2. Inspect socket statistics, send/receive queues, and TCP retransmits
ss -s
ss -ti '( dport = :443 )'

# 3. Trace DNS resolution hierarchy and authoritative response time
dig +stats +trace api.azure.example.com

# 4. Verify TLS 1.3 certificate expiration and handshake cipher
openssl s_client -connect api.gcp.example.com:443 -servername api.gcp.example.com -tls1_3 </dev/null 2>/dev/null | openssl x509 -noout -dates -issuer

Validate your domain routing and SSL health across public edge endpoints with our free DNS Lookup Tool and SSL Inspector.


4. Hyperscaler Comparison: AWS vs. Azure vs. GCP Telemetry

Feature / SignalAWSMicrosoft AzureGoogle Cloud (GCP)
Metrics EngineCloudWatch MetricsAzure Monitor MetricsCloud Monitoring
Log ManagementCloudWatch LogsLog Analytics (KQL)Cloud Logging
Distributed TracingAWS X-RayApplication InsightsCloud Trace
Network Flow LogsVPC Flow LogsNSG / VNet Flow LogsVPC Flow Logs
Managed KubernetesEKSAKSGKE
Prometheus BackendAmazon Managed Prometheus (AMP)Azure Monitor Managed PrometheusGoogle Managed Service for Prometheus (GMP)
Query DialectCloudWatch Metric InsightsKusto Query Language (KQL)Monitoring Query Language (MQL) / PromQL
Cross-Cloud Latency RiskTransit Gateway peering capsVirtual WAN gateway scalingInterconnect / VPN tunnel bandwidth

5. Querying Cross-Cloud Telemetry: PromQL & KQL Patterns

PromQL: Cross-Cloud p99 API Latency

Calculate 99th percentile response latency grouped by cloud provider and region:

histogram_quantile(
  0.99,
  sum by (le, cloud_provider, cloud_region) (
    rate(http_request_duration_seconds_bucket{environment="production"}[5m])
  )
)

PromQL: Cross-Cloud Network TCP Retransmission Rate

100 * sum by (cloud_provider, instance) (
  rate(node_netstat_Tcp_RetransSegs[5m])
) / sum by (cloud_provider, instance) (
  rate(node_netstat_Tcp_OutSegs[5m])
)

Azure KQL: Querying Cross-Region Network Drops

AzureMetrics
| where TimeGenerated > ago(1h)
| where MetricName in ("DropPackets", "TotalPackets")
| summarize 
    TotalDrops = sumif(Total, MetricName == "DropPackets"),
    TotalTraffic = sumif(Total, MetricName == "TotalPackets")
  by Resource, bin(TimeGenerated, 5m)
| extend DropRatePercent = (TotalDrops * 100.0) / TotalTraffic
| where DropRatePercent > 0.5
| order by TimeGenerated desc

6. Tail Latency Amplification & Mathematical Modeling

In multi-cloud microservice topologies, a single user transaction triggers multiple cross-cloud Remote Procedure Calls (RPCs). If baseline latency is defined by the median (P_{50}):

[L_{\text{baseline}} = P_{50}(L)]

The tail latency amplification ratio ((T_{99})) measures how severely the 99th percentile diverges from the median:

[T_{99} = \frac{P_{99}(L)}{P_{50}(L)}]

When (T_{99} > 5.0), downstream service queues and connection pools are experiencing severe thread starvation or packet retransmissions.

Multi-Cloud Error Budget Calculation

Model your permitted downtime and error allowances across all cloud environments:

[E = 1 - S]

For a (99.9%) composite availability target across AWS, Azure, and GCP, your error budget (E = 0.1%) (approx. (43.8\text{ minutes}) of downtime per month).

Calculate allowable downtime before configuring cross-cloud alerting thresholds. Use our SLA Calculator to evaluate downtime allowances across monthly and quarterly windows, and quantify revenue exposure with the Downtime Calculator.


7. Cost-Aware Performance Monitoring

Cross-cloud architectures incur significant data transfer (egress) expenses. SREs correlate performance metrics with financial telemetry to prevent budget overruns:

Key Cost Metrics:
• egress_usd_per_million_requests
• nat_gateway_data_processed_gb
• inter_region_transfer_cost_hourly
• cross_cloud_egress_gb_total

High-Cost Failure Patterns to Detect

  1. Uncached Cross-Cloud API Polling: High-frequency cron jobs polling an endpoint across cloud boundaries rather than subscribing to webhooks.
  2. NAT Gateway Data Traversal: Routing cross-cloud VPN traffic through internal NAT Gateways rather than dedicated VPC peering / Transit Gateway attachments.
  3. Redundant Cross-Cloud Log Streaming: Shipping raw uncompressed stdout/stderr logs across clouds instead of aggregating and filtering locally before remote write.

8. SRE Structured Multi-Cloud Troubleshooting Runbook

When a cross-cloud latency or availability alert fires, execute this step-by-step diagnostic runbook:

  1. Verify user-facing impact against global and regional SLO error budgets.
  2. Localize the degrading cloud boundary by comparing AWS, Azure, and GCP ingress and egress telemetry.
  3. Trace failing transactions using distributed OpenTelemetry trace spans (traceparent header) to isolate the slowest remote RPC call.
  4. Inspect cross-cloud network metrics for packet loss, TCP resets (RST), and connection pool exhaustion.
  5. Validate cross-cloud DNS resolution using dig to verify authoritative lookups and detect stale TTL caches.
  6. Check cloud provider health dashboards for localized infrastructure degradation (e.g., AWS Direct Connect status, Azure ExpressRoute circuits, GCP Interconnect links).
  7. Mitigate immediately using weighted DNS or CDN traffic shifting to route traffic away from the degraded cloud provider.
  8. Verify recovery by confirming that p95/p99 tail latency returns to historical baselines.
  9. Document the root cause in a post-incident review and update automated health-check thresholds.

9. 18-Point Multi-Cloud SRE Production Checklist

Ensure your multi-cloud infrastructure meets these operational standards:

  • Unified metric naming schema applied across AWS, Azure, and GCP.
  • OpenTelemetry collectors deployed in all cloud VPCs with memory limiter processors.
  • Cross-cloud p95 and p99 latency tracked and alerted via Prometheus histograms.
  • TCP retransmission rates and packet drops monitored on all network gateways.
  • Cross-cloud private DNS resolution tested with fallback configurations.
  • TLS 1.3 certificates monitored for cross-region synchronization and expiration (< 30 days).
  • Distributed tracing context (traceparent) propagated across cross-cloud API boundaries.
  • Connection pool saturation tracked on database proxies and HTTP clients.
  • Cross-cloud egress bandwidth and cost tracked on hourly dashboards.
  • Multi-cloud multi-window burn-rate alerts configured in Alertmanager.
  • Pod Disruption Budgets and autoscaling configured across EKS, AKS, and GKE.
  • Automated DNS failover runbooks tested for cloud provider regional outages.
  • Error budgets calculated using the SLA Calculator.
  • Synthetic probes deployed across AWS, Azure, and GCP regions via Pingzo to provide unbiased external uptime validation.
Zero-Code Uptime Alerts

Stop Finding Out About Outages from Angry Users

Get instant WhatsApp & Discord alerts the second your API, website, or server goes down. Setup in 30 seconds with 60-second checks.

WhatsApp & Discord 60-Second Checks Free Forever Plan
Try Pingzo Free

Know before your users do

Connect official WhatsApp notification channels, Discord webhooks, Telegram bots, and public status pages. Start in 30 seconds.

Create Free Monitor