@@ -27,25 +27,24 @@ internal ResilienceStrategyTelemetry(ResilienceTelemetrySource source, Diagnosti
2727 /// Reports an event that occurred in a resilience strategy.
2828 /// </summary>
2929 /// <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>
3131 /// <param name="context">The resilience context associated with this event.</param>
3232 /// <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 )
3535 {
36- Guard . NotNull ( eventName ) ;
3736 Guard . NotNull ( context ) ;
3837
39- AddResilienceEvent ( eventName , context , args ) ;
38+ context . AddResilienceEvent ( resilienceEvent ) ;
4039
41- if ( DiagnosticSource is null || ! DiagnosticSource . IsEnabled ( eventName ) )
40+ if ( DiagnosticSource is null || ! DiagnosticSource . IsEnabled ( resilienceEvent . EventName ) || resilienceEvent . Severity == ResilienceEventSeverity . None )
4241 {
4342 return ;
4443 }
4544
46- var telemetryArgs = TelemetryEventArguments . Get ( TelemetrySource , eventName , context , null , args ! ) ;
45+ var telemetryArgs = TelemetryEventArguments . Get ( TelemetrySource , resilienceEvent , context , null , args ! ) ;
4746
48- DiagnosticSource . Write ( eventName , telemetryArgs ) ;
47+ DiagnosticSource . Write ( resilienceEvent . EventName , telemetryArgs ) ;
4948
5049 TelemetryEventArguments . Return ( telemetryArgs ) ;
5150 }
@@ -55,37 +54,22 @@ public void Report<TArgs>(string eventName, ResilienceContext context, TArgs arg
5554 /// </summary>
5655 /// <typeparam name="TArgs">The arguments associated with this event.</typeparam>
5756 /// <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>
5958 /// <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 )
6260 {
63- Guard . NotNull ( eventName ) ;
61+ args . Context . AddResilienceEvent ( resilienceEvent ) ;
6462
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 )
6864 {
6965 return ;
7066 }
7167
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 ! ) ;
7369
74- DiagnosticSource . Write ( eventName , telemetryArgs ) ;
70+ DiagnosticSource . Write ( resilienceEvent . EventName , telemetryArgs ) ;
7571
7672 TelemetryEventArguments . Return ( telemetryArgs ) ;
7773 }
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- }
9074}
9175
0 commit comments