<PackageReference Include="Polly.Core" Version="8.0.0-alpha.1" />

ResilienceStrategyTelemetry

public sealed class ResilienceStrategyTelemetry
Resilience telemetry is used by individual resilience strategies to report some important events.
using Polly.Utils; using System.Diagnostics; using System.Runtime.CompilerServices; namespace Polly.Telemetry { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public sealed class ResilienceStrategyTelemetry { [System.Runtime.CompilerServices.Nullable(2)] [field: System.Runtime.CompilerServices.Nullable(2)] internal DiagnosticSource DiagnosticSource { [System.Runtime.CompilerServices.NullableContext(2)] get; } internal ResilienceTelemetrySource TelemetrySource { get; } internal ResilienceStrategyTelemetry(ResilienceTelemetrySource source, [System.Runtime.CompilerServices.Nullable(2)] DiagnosticSource diagnosticSource) { TelemetrySource = source; DiagnosticSource = diagnosticSource; } public void Report<[System.Runtime.CompilerServices.Nullable(2)] TArgs>(string eventName, ResilienceContext context, TArgs args) { Guard.NotNull(eventName, "eventName"); Guard.NotNull(context, "context"); context.AddResilienceEvent(new ResilienceEvent(eventName)); if (DiagnosticSource != null && DiagnosticSource.IsEnabled(eventName)) DiagnosticSource.Write(eventName, new TelemetryEventArguments(TelemetrySource, eventName, context, null, args)); } [System.Runtime.CompilerServices.NullableContext(2)] public void Report<TArgs, TResult>([System.Runtime.CompilerServices.Nullable(1)] string eventName, [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1, 1 })] OutcomeArguments<TResult, TArgs> args) { Guard.NotNull(eventName, "eventName"); args.Context.AddResilienceEvent(new ResilienceEvent(eventName)); if (DiagnosticSource != null && DiagnosticSource.IsEnabled(eventName)) DiagnosticSource.Write(eventName, new TelemetryEventArguments(TelemetrySource, eventName, args.Context, args.Outcome.AsOutcome(), args.Arguments)); } } }