Skip to content

Commit 0f94b1d

Browse files
committed
Add ConfigureTelemetry
1 parent f344cd9 commit 0f94b1d

4 files changed

Lines changed: 59 additions & 3 deletions

File tree

src/plugins/ConsolePollyTest/MyMeteringEnricher.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@ namespace ConsolePollyTest;
44

55
internal sealed class MyMeteringEnricher : MeteringEnricher
66
{
7+
8+
#region Methods
9+
710
public override void Enrich<TResult, TArgs>(in EnrichmentContext<TResult, TArgs> context)
811
{
912
context.Tags.Add(new("my-custom-tag", "custom-value"));
1013
}
11-
}
14+
15+
#endregion
16+
17+
}

src/plugins/ConsolePollyTest/MyTelemetryListener.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,14 @@ namespace ConsolePollyTest;
44

55
internal sealed class MyTelemetryListener : TelemetryListener
66
{
7+
8+
#region Methods
9+
710
public override void Write<TResult, TArgs>(in TelemetryEventArguments<TResult, TArgs> args)
811
{
912
Console.WriteLine($"Telemetry event occurred: {args.Event.EventName}");
1013
}
14+
15+
#endregion
16+
1117
}

src/plugins/ConsolePollyTest/PollyTest.cs

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ public static async Task NoStrategy_TestAsync()
5656

5757
public static async Task Retry_ExecThree_TestAsync()
5858
{
59-
var builder = new ResiliencePipelineBuilder().ConfigureTelemetry(GetTelemetry())
59+
var options = GetTelemetry();
60+
var builder = new ResiliencePipelineBuilder().ConfigureTelemetry(options)
6061
.AddRetry(
6162
new RetryStrategyOptions
6263
{
@@ -91,6 +92,46 @@ public static async Task Retry_ExecThree_TestAsync()
9192
Console.WriteLine(result);
9293
}
9394

95+
public static async Task Retry_UseSamePipeline_TestAsync()
96+
{
97+
var builder = new ResiliencePipelineBuilder().ConfigureTelemetry(GetTelemetry().LoggerFactory)
98+
.AddRetry(
99+
new RetryStrategyOptions
100+
{
101+
Delay = TimeSpan.FromSeconds(1),
102+
MaxRetryAttempts = 5,
103+
ShouldHandle = (args) =>
104+
{
105+
Console.WriteLine(args.AttemptNumber);
106+
return ValueTask.FromResult(args.AttemptNumber >= 0);
107+
}
108+
});
109+
110+
var pipeline = builder.Build();
111+
112+
using var client = GetClient();
113+
114+
var t1 = pipeline.ExecuteAsync(
115+
async (token) =>
116+
{
117+
var r = await client.GetAsync(GetUri("/weatherforecast/"), token);
118+
return r;
119+
},
120+
cancellationToken: default);
121+
122+
var t2 = pipeline.ExecuteAsync(
123+
async (token) =>
124+
{
125+
var r = await client.GetAsync(GetUri("/weatherforecast/"), token);
126+
return r;
127+
},
128+
cancellationToken: default);
129+
130+
var result = await Task.WhenAll(t1.AsTask(), t2.AsTask());
131+
132+
Console.WriteLine(result[0]);
133+
}
134+
94135
#endregion
95136

96137
}

src/plugins/ConsolePollyTest/Program.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ internal static class Program
88
private static async Task Main(string[] args)
99
{
1010
//await PollyTest.NoStrategy_TestAsync();
11-
await PollyTest.Retry_ExecThree_TestAsync();
11+
12+
//await PollyTest.Retry_ExecThree_TestAsync();
13+
14+
await PollyTest.Retry_UseSamePipeline_TestAsync();
1215

1316
_ = Console.ReadKey();
1417
}

0 commit comments

Comments
 (0)