Skip to content

Timeout and Retry Patterns

Use this query to investigate repeated retry loops, backoff escalation, and exhausted retry budgets after latency pressure.

Data Source

Table Schema Note
ContainerAppConsoleLogs_CL Legacy schema. If empty, try ContainerAppConsoleLogs (non-_CL).

Query Pipeline

flowchart LR
    A[Filter by app] --> B[Filter retry and backoff terms] --> C[Project revision context] --> D[Sort by time]

Query

let AppName = "my-container-app";
ContainerAppConsoleLogs_CL
| where ContainerAppName_s == AppName
| where Log_s has_any ("retry", "retrying", "backoff", "attempt", "retries exhausted", "deadline exceeded")
| project TimeGenerated, RevisionName_s, Log_s
| order by TimeGenerated desc

Example Output

TimeGenerated RevisionName_s Log_s
2026-04-12T09:31:26.441Z ca-myapp--0000007 retries exhausted for inventory client after attempt=4 backoff=16s
2026-04-12T09:31:18.230Z ca-myapp--0000007 retry scheduled for upstream call attempt=2 backoff=4s jitter=enabled
2026-04-12T09:31:09.917Z ca-myapp--0000007 context deadline exceeded after retry budget consumed for orders.internal request

Interpretation Notes

  • Escalating attempt counts with longer backoff intervals indicate the application is retrying rather than failing fast.
  • Exhausted retry budgets usually indicate persistent dependency slowness rather than a single transient fault.
  • Normal pattern: occasional isolated retries, not sustained bursts that align with user-facing latency spikes.

Limitations

  • Retry evidence appears only when the application or client library logs retry metadata explicitly.
  • This query does not distinguish safe retries from duplicate business operations without app-specific context.

See Also