4 instantiations of RetryBudget
Microsoft.Extensions.Http.Resilience (1)
Polly\HttpRetryResiliencePipelineBuilderExtensions.cs (1)
103context => new RetryBudgetStrategy(new RetryBudget(retryRatio, samplingDuration, minimumThroughput, context.TimeProvider), context.Telemetry),
Microsoft.Extensions.Http.Resilience.Tests (3)
Internal\RetryBudgetTests.cs (3)
155var budget = new RetryBudget(0.1, window, 10, _timeProvider); 217var budget = new RetryBudget(0.1, window, 10, _timeProvider); 295=> new(retryRatio, _window, minimumThroughput, _timeProvider);
33 references to RetryBudget
Microsoft.Extensions.Http.Resilience (2)
Internal\RetryBudgetStrategy.cs (2)
28private readonly RetryBudget _budget; 31public RetryBudgetStrategy(RetryBudget budget, ResilienceStrategyTelemetry telemetry)
Microsoft.Extensions.Http.Resilience.Tests (31)
Internal\RetryBudgetTests.cs (31)
19private static readonly TimeSpan _bucket = TimeSpan.FromTicks(_window.Ticks / RetryBudget.BucketCount); 26var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 35var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 1); 48var budget = CreateBudget(retryRatio, minimumThroughput: 10); 60var budget = CreateBudget(retryRatio, minimumThroughput: 10); 72var budget = CreateBudget(retryRatio: 0, minimumThroughput: 100); 81var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 94var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 110var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 112for (int i = 0; i < RetryBudget.BucketCount; i++) 125var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 139var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 154var bucket = TimeSpan.FromTicks(window.Ticks / RetryBudget.BucketCount); 155var budget = new RetryBudget(0.1, window, 10, _timeProvider); 173var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 176var counters = (long[])typeof(RetryBudget).GetField("_counters", BindingFlags.Instance | BindingFlags.NonPublic)!.GetValue(budget)!; 179var index = (int)(Epoch % RetryBudget.BucketCount) * 2; 195var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 202budget.Increment(0, RetryBudget.RequestsOffset); 203budget.Increment(0, RetryBudget.RetriesOffset); 207var counters = (long[])typeof(RetryBudget).GetField("_counters", BindingFlags.Instance | BindingFlags.NonPublic)!.GetValue(budget)!; 208counters[RetryBudget.RequestsOffset].Should().Be((10L << 32) | 101); 209counters[RetryBudget.RetriesOffset].Should().Be((10L << 32) | 11); 216var bucket = TimeSpan.FromTicks(window.Ticks / RetryBudget.BucketCount); 217var budget = new RetryBudget(0.1, window, 10, _timeProvider); 224budget.Increment(uint.MaxValue - 1, RetryBudget.RequestsOffset); 234var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 251var budget = CreateBudget(retryRatio: 0.1, minimumThroughput: 10); 271private static void RecordRequests(RetryBudget budget, int count) 279private static int CountAllowedRetries(RetryBudget budget, int attempts) 294private RetryBudget CreateBudget(double retryRatio, int minimumThroughput)