@@ -27,25 +27,24 @@ internal ResilienceStrategyTelemetry(ResilienceTelemetrySource source, Diagnosti
27
27
/// Reports an event that occurred in a resilience strategy.
28
28
/// </summary>
29
29
/// <typeparam name="TArgs">The arguments associated with this event.</typeparam>
30
- /// <param name="eventName ">The event name .</param>
30
+ /// <param name="resilienceEvent ">The reported resilience event .</param>
31
31
/// <param name="context">The resilience context associated with this event.</param>
32
32
/// <param name="args">The event arguments.</param>
33
- /// <exception cref="ArgumentNullException">Thrown when <paramref name="eventName "/> is <see langword="null"/>.</exception>
34
- public void Report < TArgs > ( string eventName , ResilienceContext context , TArgs args )
33
+ /// <exception cref="ArgumentNullException">Thrown when <paramref name="context "/> is <see langword="null"/>.</exception>
34
+ public void Report < TArgs > ( ResilienceEvent resilienceEvent , ResilienceContext context , TArgs args )
35
35
{
36
- Guard . NotNull ( eventName ) ;
37
36
Guard . NotNull ( context ) ;
38
37
39
- AddResilienceEvent ( eventName , context , args ) ;
38
+ context . AddResilienceEvent ( resilienceEvent ) ;
40
39
41
- if ( DiagnosticSource is null || ! DiagnosticSource . IsEnabled ( eventName ) )
40
+ if ( DiagnosticSource is null || ! DiagnosticSource . IsEnabled ( resilienceEvent . EventName ) || resilienceEvent . Severity == ResilienceEventSeverity . None )
42
41
{
43
42
return ;
44
43
}
45
44
46
- var telemetryArgs = TelemetryEventArguments . Get ( TelemetrySource , eventName , context , null , args ! ) ;
45
+ var telemetryArgs = TelemetryEventArguments . Get ( TelemetrySource , resilienceEvent , context , null , args ! ) ;
47
46
48
- DiagnosticSource . Write ( eventName , telemetryArgs ) ;
47
+ DiagnosticSource . Write ( resilienceEvent . EventName , telemetryArgs ) ;
49
48
50
49
TelemetryEventArguments . Return ( telemetryArgs ) ;
51
50
}
@@ -55,37 +54,22 @@ public void Report<TArgs>(string eventName, ResilienceContext context, TArgs arg
55
54
/// </summary>
56
55
/// <typeparam name="TArgs">The arguments associated with this event.</typeparam>
57
56
/// <typeparam name="TResult">The type of the result.</typeparam>
58
- /// <param name="eventName ">The event name .</param>
57
+ /// <param name="resilienceEvent ">The reported resilience event .</param>
59
58
/// <param name="args">The event arguments.</param>
60
- /// <exception cref="ArgumentNullException">Thrown when <paramref name="eventName"/> is <see langword="null"/>.</exception>
61
- public void Report < TArgs , TResult > ( string eventName , OutcomeArguments < TResult , TArgs > args )
59
+ public void Report < TArgs , TResult > ( ResilienceEvent resilienceEvent , OutcomeArguments < TResult , TArgs > args )
62
60
{
63
- Guard . NotNull ( eventName ) ;
61
+ args . Context . AddResilienceEvent ( resilienceEvent ) ;
64
62
65
- AddResilienceEvent ( eventName , args . Context , args . Arguments ) ;
66
-
67
- if ( DiagnosticSource is null || ! DiagnosticSource . IsEnabled ( eventName ) )
63
+ if ( DiagnosticSource is null || ! DiagnosticSource . IsEnabled ( resilienceEvent . EventName ) || resilienceEvent . Severity == ResilienceEventSeverity . None )
68
64
{
69
65
return ;
70
66
}
71
67
72
- var telemetryArgs = TelemetryEventArguments . Get ( TelemetrySource , eventName , args . Context , args . Outcome . AsOutcome ( ) , args . Arguments ! ) ;
68
+ var telemetryArgs = TelemetryEventArguments . Get ( TelemetrySource , resilienceEvent , args . Context , args . Outcome . AsOutcome ( ) , args . Arguments ! ) ;
73
69
74
- DiagnosticSource . Write ( eventName , telemetryArgs ) ;
70
+ DiagnosticSource . Write ( resilienceEvent . EventName , telemetryArgs ) ;
75
71
76
72
TelemetryEventArguments . Return ( telemetryArgs ) ;
77
73
}
78
-
79
- private static void AddResilienceEvent < TArgs > ( string eventName , ResilienceContext context , TArgs args )
80
- {
81
- // ExecutionAttemptArguments is not reported as resilience event because that information is already contained
82
- // in OnHedgingArguments and OnRetryArguments
83
- if ( args is ExecutionAttemptArguments attempt )
84
- {
85
- return ;
86
- }
87
-
88
- context . AddResilienceEvent ( new ResilienceEvent ( eventName ) ) ;
89
- }
90
74
}
91
75
0 commit comments