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