-
Notifications
You must be signed in to change notification settings - Fork 709
Update retry in Kusto emulator actions to handle any non-permanent error #11752
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update retry in Kusto emulator actions to handle any non-permanent error #11752
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 11752Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 11752" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR improves the retry logic for Azure Kusto emulator operations by making it more robust and configurable. The changes extract the resilience pipeline into a dedicated class and expand retry capabilities beyond just throttle exceptions.
Key changes:
- Creates a new internal class to handle Kusto-specific resilience patterns with improved retry configuration
- Replaces the inline pipeline with a more comprehensive solution that handles any non-permanent Kusto exception
- Adds comprehensive unit tests to verify retry behavior for different exception types
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| src/Aspire.Hosting.Azure.Kusto/AzureKustoEmulatorResiliencePipelines.cs | New internal class providing pre-configured resilience pipeline with exponential backoff and transient error detection |
| src/Aspire.Hosting.Azure.Kusto/AzureKustoBuilderExtensions.cs | Removes inline pipeline definition and uses the new centralized resilience pipeline |
| tests/Aspire.Hosting.Azure.Kusto.Tests/KustoResiliencePipelinesTests.cs | Adds unit tests covering retry behavior for temporary, permanent, and non-Kusto exceptions |
tests/Aspire.Hosting.Azure.Kusto.Tests/KustoResiliencePipelinesTests.cs
Outdated
Show resolved
Hide resolved
tests/Aspire.Hosting.Azure.Kusto.Tests/KustoResiliencePipelinesTests.cs
Outdated
Show resolved
Hide resolved
Co-authored-by: Copilot <[email protected]>
|
Do we want to backport this to 9.5.1? |
|
/backport to release/9.5 |
|
Started backporting to release/9.5: https://github.com/dotnet/aspire/actions/runs/18166908504 |
I don't think it will hurt. Customer feedback we've heard on a new integration. |
Description
Previously, the resilience pipeline used to create the Kusto databases had two shortcomings:
Address both of those issues by:
Checklist
<remarks />and<code />elements on your triple slash comments?doc-ideatemplatebreaking-changetemplatediagnostictemplate