From 664e4bba151074335ec1a3a4048cb0719fdc56bd Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sat, 11 Nov 2023 12:57:19 -0500 Subject: [PATCH 01/32] expose simmy apis --- src/Polly.Core/PublicAPI.Unshipped.txt | 107 ++++++++++++++++++ .../Simmy/Behavior/BehaviorActionArguments.cs | 2 +- .../BehaviorPipelineBuilderExtensions.cs | 2 +- .../Simmy/Behavior/BehaviorStrategyOptions.cs | 2 +- .../Behavior/OnBehaviorInjectedArguments.cs | 2 +- .../Simmy/EnabledGeneratorArguments.cs | 2 +- .../Simmy/Fault/FaultGeneratorArguments.cs | 2 +- .../Fault/FaultPipelineBuilderExtensions.cs | 2 +- .../Simmy/Fault/FaultStrategyOptions.cs | 2 +- .../Simmy/Fault/OnFaultInjectedArguments.cs | 2 +- .../Simmy/InjectionRateGeneratorArguments.cs | 2 +- .../Latency/LatencyGeneratorArguments.cs | 2 +- .../LatencyPipelineBuilderExtensions.cs | 2 +- .../Simmy/Latency/LatencyStrategyOptions.cs | 2 +- .../Simmy/Latency/OnLatencyArguments.cs | 2 +- .../Simmy/MonkeyStrategy.TResult.cs | 2 +- src/Polly.Core/Simmy/MonkeyStrategy.cs | 2 +- .../Simmy/MonkeyStrategyOptions.TResult.cs | 2 +- src/Polly.Core/Simmy/MonkeyStrategyOptions.cs | 2 +- .../Outcomes/OnOutcomeInjectedArguments.cs | 2 +- .../Outcomes/OutcomeGeneratorArguments.cs | 2 +- .../OutcomePipelineBuilderExtensions.cs | 2 +- .../OutcomeStrategyOptions.TResult.cs | 2 +- .../Simmy/Outcomes/OutcomeStrategyOptions.cs | 2 +- .../Simmy/TestChaosStrategy.TResult.cs | 2 +- .../Simmy/TestChaosStrategy.cs | 2 +- .../Simmy/TestChaosStrategyOptions.TResult.cs | 2 +- .../Simmy/TestChaosStrategyOptions.cs | 2 +- 28 files changed, 134 insertions(+), 27 deletions(-) diff --git a/src/Polly.Core/PublicAPI.Unshipped.txt b/src/Polly.Core/PublicAPI.Unshipped.txt index a84ad565317..3e6f2dc7e78 100644 --- a/src/Polly.Core/PublicAPI.Unshipped.txt +++ b/src/Polly.Core/PublicAPI.Unshipped.txt @@ -7,3 +7,110 @@ Polly.CircuitBreaker.BreakDurationGeneratorArguments.FailureCount.get -> int Polly.CircuitBreaker.BreakDurationGeneratorArguments.FailureRate.get -> double Polly.CircuitBreaker.CircuitBreakerStrategyOptions.BreakDurationGenerator.get -> System.Func>? Polly.CircuitBreaker.CircuitBreakerStrategyOptions.BreakDurationGenerator.set -> void +Polly.Simmy.Behavior.BehaviorActionArguments +Polly.Simmy.Behavior.BehaviorActionArguments.BehaviorActionArguments() -> void +Polly.Simmy.Behavior.BehaviorActionArguments.BehaviorActionArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.Behavior.BehaviorActionArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Behavior.BehaviorStrategyOptions +Polly.Simmy.Behavior.BehaviorStrategyOptions.BehaviorAction.get -> System.Func? +Polly.Simmy.Behavior.BehaviorStrategyOptions.BehaviorAction.set -> void +Polly.Simmy.Behavior.BehaviorStrategyOptions.BehaviorStrategyOptions() -> void +Polly.Simmy.Behavior.BehaviorStrategyOptions.OnBehaviorInjected.get -> System.Func? +Polly.Simmy.Behavior.BehaviorStrategyOptions.OnBehaviorInjected.set -> void +Polly.Simmy.Behavior.OnBehaviorInjectedArguments +Polly.Simmy.Behavior.OnBehaviorInjectedArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Behavior.OnBehaviorInjectedArguments.OnBehaviorInjectedArguments() -> void +Polly.Simmy.Behavior.OnBehaviorInjectedArguments.OnBehaviorInjectedArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.BehaviorPipelineBuilderExtensions +Polly.Simmy.EnabledGeneratorArguments +Polly.Simmy.EnabledGeneratorArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.EnabledGeneratorArguments.EnabledGeneratorArguments() -> void +Polly.Simmy.EnabledGeneratorArguments.EnabledGeneratorArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.Fault.FaultGeneratorArguments +Polly.Simmy.Fault.FaultGeneratorArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Fault.FaultGeneratorArguments.FaultGeneratorArguments() -> void +Polly.Simmy.Fault.FaultGeneratorArguments.FaultGeneratorArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.Fault.FaultStrategyOptions +Polly.Simmy.Fault.FaultStrategyOptions.Fault.get -> System.Exception? +Polly.Simmy.Fault.FaultStrategyOptions.Fault.set -> void +Polly.Simmy.Fault.FaultStrategyOptions.FaultGenerator.get -> System.Func>? +Polly.Simmy.Fault.FaultStrategyOptions.FaultGenerator.set -> void +Polly.Simmy.Fault.FaultStrategyOptions.FaultStrategyOptions() -> void +Polly.Simmy.Fault.FaultStrategyOptions.OnFaultInjected.get -> System.Func? +Polly.Simmy.Fault.FaultStrategyOptions.OnFaultInjected.set -> void +Polly.Simmy.Fault.OnFaultInjectedArguments +Polly.Simmy.Fault.OnFaultInjectedArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Fault.OnFaultInjectedArguments.Fault.get -> System.Exception! +Polly.Simmy.Fault.OnFaultInjectedArguments.OnFaultInjectedArguments() -> void +Polly.Simmy.Fault.OnFaultInjectedArguments.OnFaultInjectedArguments(Polly.ResilienceContext! context, System.Exception! fault) -> void +Polly.Simmy.FaultPipelineBuilderExtensions +Polly.Simmy.InjectionRateGeneratorArguments +Polly.Simmy.InjectionRateGeneratorArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.InjectionRateGeneratorArguments.InjectionRateGeneratorArguments() -> void +Polly.Simmy.InjectionRateGeneratorArguments.InjectionRateGeneratorArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.Latency.LatencyGeneratorArguments +Polly.Simmy.Latency.LatencyGeneratorArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Latency.LatencyGeneratorArguments.LatencyGeneratorArguments() -> void +Polly.Simmy.Latency.LatencyGeneratorArguments.LatencyGeneratorArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.Latency.LatencyStrategyOptions +Polly.Simmy.Latency.LatencyStrategyOptions.Latency.get -> System.TimeSpan +Polly.Simmy.Latency.LatencyStrategyOptions.Latency.set -> void +Polly.Simmy.Latency.LatencyStrategyOptions.LatencyGenerator.get -> System.Func>? +Polly.Simmy.Latency.LatencyStrategyOptions.LatencyGenerator.set -> void +Polly.Simmy.Latency.LatencyStrategyOptions.LatencyStrategyOptions() -> void +Polly.Simmy.Latency.LatencyStrategyOptions.OnLatency.get -> System.Func? +Polly.Simmy.Latency.LatencyStrategyOptions.OnLatency.set -> void +Polly.Simmy.Latency.OnLatencyArguments +Polly.Simmy.Latency.OnLatencyArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Latency.OnLatencyArguments.Latency.get -> System.TimeSpan +Polly.Simmy.Latency.OnLatencyArguments.OnLatencyArguments() -> void +Polly.Simmy.Latency.OnLatencyArguments.OnLatencyArguments(Polly.ResilienceContext! context, System.TimeSpan latency) -> void +Polly.Simmy.LatencyPipelineBuilderExtensions +Polly.Simmy.MonkeyStrategy +Polly.Simmy.MonkeyStrategy.MonkeyStrategy(Polly.Simmy.MonkeyStrategyOptions! options) -> void +Polly.Simmy.MonkeyStrategy.ShouldInjectAsync(Polly.ResilienceContext! context) -> System.Threading.Tasks.ValueTask +Polly.Simmy.MonkeyStrategy +Polly.Simmy.MonkeyStrategy.MonkeyStrategy(Polly.Simmy.MonkeyStrategyOptions! options) -> void +Polly.Simmy.MonkeyStrategy.ShouldInjectAsync(Polly.ResilienceContext! context) -> System.Threading.Tasks.ValueTask +Polly.Simmy.MonkeyStrategyOptions +Polly.Simmy.MonkeyStrategyOptions.MonkeyStrategyOptions() -> void +Polly.Simmy.MonkeyStrategyOptions +Polly.Simmy.MonkeyStrategyOptions.Enabled.get -> bool +Polly.Simmy.MonkeyStrategyOptions.Enabled.set -> void +Polly.Simmy.MonkeyStrategyOptions.EnabledGenerator.get -> System.Func>? +Polly.Simmy.MonkeyStrategyOptions.EnabledGenerator.set -> void +Polly.Simmy.MonkeyStrategyOptions.InjectionRate.get -> double +Polly.Simmy.MonkeyStrategyOptions.InjectionRate.set -> void +Polly.Simmy.MonkeyStrategyOptions.InjectionRateGenerator.get -> System.Func>? +Polly.Simmy.MonkeyStrategyOptions.InjectionRateGenerator.set -> void +Polly.Simmy.MonkeyStrategyOptions.MonkeyStrategyOptions() -> void +Polly.Simmy.MonkeyStrategyOptions.Randomizer.get -> System.Func! +Polly.Simmy.MonkeyStrategyOptions.Randomizer.set -> void +Polly.Simmy.OutcomePipelineBuilderExtensions +Polly.Simmy.Outcomes.OnOutcomeInjectedArguments +Polly.Simmy.Outcomes.OnOutcomeInjectedArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Outcomes.OnOutcomeInjectedArguments.OnOutcomeInjectedArguments() -> void +Polly.Simmy.Outcomes.OnOutcomeInjectedArguments.OnOutcomeInjectedArguments(Polly.ResilienceContext! context, Polly.Outcome outcome) -> void +Polly.Simmy.Outcomes.OnOutcomeInjectedArguments.Outcome.get -> Polly.Outcome +Polly.Simmy.Outcomes.OutcomeGeneratorArguments +Polly.Simmy.Outcomes.OutcomeGeneratorArguments.Context.get -> Polly.ResilienceContext! +Polly.Simmy.Outcomes.OutcomeGeneratorArguments.OutcomeGeneratorArguments() -> void +Polly.Simmy.Outcomes.OutcomeGeneratorArguments.OutcomeGeneratorArguments(Polly.ResilienceContext! context) -> void +Polly.Simmy.Outcomes.OutcomeStrategyOptions +Polly.Simmy.Outcomes.OutcomeStrategyOptions.OutcomeStrategyOptions() -> void +Polly.Simmy.Outcomes.OutcomeStrategyOptions +Polly.Simmy.Outcomes.OutcomeStrategyOptions.OnOutcomeInjected.get -> System.Func, System.Threading.Tasks.ValueTask>? +Polly.Simmy.Outcomes.OutcomeStrategyOptions.OnOutcomeInjected.set -> void +Polly.Simmy.Outcomes.OutcomeStrategyOptions.OutcomeGenerator.get -> System.Func?>>! +Polly.Simmy.Outcomes.OutcomeStrategyOptions.OutcomeGenerator.set -> void +Polly.Simmy.Outcomes.OutcomeStrategyOptions.OutcomeStrategyOptions() -> void +static Polly.Simmy.BehaviorPipelineBuilderExtensions.AddChaosBehavior(this TBuilder! builder, double injectionRate, System.Func! behavior) -> TBuilder! +static Polly.Simmy.BehaviorPipelineBuilderExtensions.AddChaosBehavior(this TBuilder! builder, Polly.Simmy.Behavior.BehaviorStrategyOptions! options) -> TBuilder! +static Polly.Simmy.FaultPipelineBuilderExtensions.AddChaosFault(this TBuilder! builder, double injectionRate, System.Exception! fault) -> TBuilder! +static Polly.Simmy.FaultPipelineBuilderExtensions.AddChaosFault(this TBuilder! builder, double injectionRate, System.Func! faultGenerator) -> TBuilder! +static Polly.Simmy.FaultPipelineBuilderExtensions.AddChaosFault(this TBuilder! builder, Polly.Simmy.Fault.FaultStrategyOptions! options) -> TBuilder! +static Polly.Simmy.LatencyPipelineBuilderExtensions.AddChaosLatency(this TBuilder! builder, double injectionRate, System.TimeSpan latency) -> TBuilder! +static Polly.Simmy.LatencyPipelineBuilderExtensions.AddChaosLatency(this TBuilder! builder, Polly.Simmy.Latency.LatencyStrategyOptions! options) -> TBuilder! +static Polly.Simmy.OutcomePipelineBuilderExtensions.AddChaosResult(this Polly.ResiliencePipelineBuilder! builder, double injectionRate, System.Func! resultGenerator) -> Polly.ResiliencePipelineBuilder! +static Polly.Simmy.OutcomePipelineBuilderExtensions.AddChaosResult(this Polly.ResiliencePipelineBuilder! builder, double injectionRate, TResult result) -> Polly.ResiliencePipelineBuilder! +static Polly.Simmy.OutcomePipelineBuilderExtensions.AddChaosResult(this Polly.ResiliencePipelineBuilder! builder, Polly.Simmy.Outcomes.OutcomeStrategyOptions! options) -> Polly.ResiliencePipelineBuilder! diff --git a/src/Polly.Core/Simmy/Behavior/BehaviorActionArguments.cs b/src/Polly.Core/Simmy/Behavior/BehaviorActionArguments.cs index bb2beb25818..2df7cdd1724 100644 --- a/src/Polly.Core/Simmy/Behavior/BehaviorActionArguments.cs +++ b/src/Polly.Core/Simmy/Behavior/BehaviorActionArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the behavior chaos strategy to execute a user's delegate custom action. /// -internal readonly struct BehaviorActionArguments +public readonly struct BehaviorActionArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Behavior/BehaviorPipelineBuilderExtensions.cs b/src/Polly.Core/Simmy/Behavior/BehaviorPipelineBuilderExtensions.cs index 322c1d15248..39858198741 100644 --- a/src/Polly.Core/Simmy/Behavior/BehaviorPipelineBuilderExtensions.cs +++ b/src/Polly.Core/Simmy/Behavior/BehaviorPipelineBuilderExtensions.cs @@ -7,7 +7,7 @@ namespace Polly.Simmy; /// /// Extension methods for adding custom behaviors to a . /// -internal static class BehaviorPipelineBuilderExtensions +public static class BehaviorPipelineBuilderExtensions { /// /// Adds a behavior chaos strategy to the builder. diff --git a/src/Polly.Core/Simmy/Behavior/BehaviorStrategyOptions.cs b/src/Polly.Core/Simmy/Behavior/BehaviorStrategyOptions.cs index 4b744137f77..1541fbc9b3f 100644 --- a/src/Polly.Core/Simmy/Behavior/BehaviorStrategyOptions.cs +++ b/src/Polly.Core/Simmy/Behavior/BehaviorStrategyOptions.cs @@ -5,7 +5,7 @@ namespace Polly.Simmy.Behavior; /// /// Represents the options for the Behavior chaos strategy. /// -internal class BehaviorStrategyOptions : MonkeyStrategyOptions +public class BehaviorStrategyOptions : MonkeyStrategyOptions { /// /// Gets or sets the delegate that's raised when the custom behavior is injected. diff --git a/src/Polly.Core/Simmy/Behavior/OnBehaviorInjectedArguments.cs b/src/Polly.Core/Simmy/Behavior/OnBehaviorInjectedArguments.cs index 717275786b1..34e68a505c7 100644 --- a/src/Polly.Core/Simmy/Behavior/OnBehaviorInjectedArguments.cs +++ b/src/Polly.Core/Simmy/Behavior/OnBehaviorInjectedArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the behavior chaos strategy to notify that a custom behavior was injected. /// -internal readonly struct OnBehaviorInjectedArguments +public readonly struct OnBehaviorInjectedArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/EnabledGeneratorArguments.cs b/src/Polly.Core/Simmy/EnabledGeneratorArguments.cs index 4383c87f66d..649e599784e 100644 --- a/src/Polly.Core/Simmy/EnabledGeneratorArguments.cs +++ b/src/Polly.Core/Simmy/EnabledGeneratorArguments.cs @@ -5,7 +5,7 @@ /// /// Defines the arguments for the . /// -internal readonly struct EnabledGeneratorArguments +public readonly struct EnabledGeneratorArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Fault/FaultGeneratorArguments.cs b/src/Polly.Core/Simmy/Fault/FaultGeneratorArguments.cs index 6addf26ae5c..990e6297099 100644 --- a/src/Polly.Core/Simmy/Fault/FaultGeneratorArguments.cs +++ b/src/Polly.Core/Simmy/Fault/FaultGeneratorArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the fault chaos strategy to ge the fault that is going to be injected. /// -internal readonly struct FaultGeneratorArguments +public readonly struct FaultGeneratorArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs b/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs index 3705c4cb28f..73cb4b52ba6 100644 --- a/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs +++ b/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs @@ -6,7 +6,7 @@ namespace Polly.Simmy; /// /// Extension methods for adding outcome to a . /// -internal static class FaultPipelineBuilderExtensions +public static class FaultPipelineBuilderExtensions { /// /// Adds a fault chaos strategy to the builder. diff --git a/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs b/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs index 00aaebda899..23b4e2a0b36 100644 --- a/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs +++ b/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs @@ -3,7 +3,7 @@ /// /// Represents the options for the Fault chaos strategy. /// -internal class FaultStrategyOptions : MonkeyStrategyOptions +public class FaultStrategyOptions : MonkeyStrategyOptions { /// /// Gets or sets the delegate that's raised when the outcome is injected. diff --git a/src/Polly.Core/Simmy/Fault/OnFaultInjectedArguments.cs b/src/Polly.Core/Simmy/Fault/OnFaultInjectedArguments.cs index d883da412d0..570cb8121f8 100644 --- a/src/Polly.Core/Simmy/Fault/OnFaultInjectedArguments.cs +++ b/src/Polly.Core/Simmy/Fault/OnFaultInjectedArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the fault chaos strategy to notify that an fault was injected. /// -internal readonly struct OnFaultInjectedArguments +public readonly struct OnFaultInjectedArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/InjectionRateGeneratorArguments.cs b/src/Polly.Core/Simmy/InjectionRateGeneratorArguments.cs index bd54da044ae..7af162378e5 100644 --- a/src/Polly.Core/Simmy/InjectionRateGeneratorArguments.cs +++ b/src/Polly.Core/Simmy/InjectionRateGeneratorArguments.cs @@ -5,7 +5,7 @@ /// /// Defines the arguments for the . /// -internal readonly struct InjectionRateGeneratorArguments +public readonly struct InjectionRateGeneratorArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Latency/LatencyGeneratorArguments.cs b/src/Polly.Core/Simmy/Latency/LatencyGeneratorArguments.cs index 3017ff8b232..8ef01985fee 100644 --- a/src/Polly.Core/Simmy/Latency/LatencyGeneratorArguments.cs +++ b/src/Polly.Core/Simmy/Latency/LatencyGeneratorArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the latency chaos strategy to notify that a delayed occurred. /// -internal readonly struct LatencyGeneratorArguments +public readonly struct LatencyGeneratorArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Latency/LatencyPipelineBuilderExtensions.cs b/src/Polly.Core/Simmy/Latency/LatencyPipelineBuilderExtensions.cs index 2fdc749ca0b..e9c7dbeeef7 100644 --- a/src/Polly.Core/Simmy/Latency/LatencyPipelineBuilderExtensions.cs +++ b/src/Polly.Core/Simmy/Latency/LatencyPipelineBuilderExtensions.cs @@ -7,7 +7,7 @@ namespace Polly.Simmy; /// /// Extension methods for adding latency to a . /// -internal static class LatencyPipelineBuilderExtensions +public static class LatencyPipelineBuilderExtensions { /// /// Adds a latency chaos strategy to the builder. diff --git a/src/Polly.Core/Simmy/Latency/LatencyStrategyOptions.cs b/src/Polly.Core/Simmy/Latency/LatencyStrategyOptions.cs index bd66d49c950..534741efa2a 100644 --- a/src/Polly.Core/Simmy/Latency/LatencyStrategyOptions.cs +++ b/src/Polly.Core/Simmy/Latency/LatencyStrategyOptions.cs @@ -5,7 +5,7 @@ /// /// Represents the options for the Latency chaos strategy. /// -internal class LatencyStrategyOptions : MonkeyStrategyOptions +public class LatencyStrategyOptions : MonkeyStrategyOptions { /// /// Gets or sets the delegate that's raised when a delay occurs. diff --git a/src/Polly.Core/Simmy/Latency/OnLatencyArguments.cs b/src/Polly.Core/Simmy/Latency/OnLatencyArguments.cs index fc19c9dfbd4..9a3896d2904 100644 --- a/src/Polly.Core/Simmy/Latency/OnLatencyArguments.cs +++ b/src/Polly.Core/Simmy/Latency/OnLatencyArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the latency chaos strategy to notify that a delayed occurred. /// -internal readonly struct OnLatencyArguments +public readonly struct OnLatencyArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/MonkeyStrategy.TResult.cs b/src/Polly.Core/Simmy/MonkeyStrategy.TResult.cs index 0ad3c9477ff..a73e0d2e040 100644 --- a/src/Polly.Core/Simmy/MonkeyStrategy.TResult.cs +++ b/src/Polly.Core/Simmy/MonkeyStrategy.TResult.cs @@ -10,7 +10,7 @@ namespace Polly.Simmy; /// /// For strategies that handle all result types the generic parameter must be of type . /// -internal abstract class MonkeyStrategy : ResilienceStrategy +public abstract class MonkeyStrategy : ResilienceStrategy { private readonly Func _randomizer; diff --git a/src/Polly.Core/Simmy/MonkeyStrategy.cs b/src/Polly.Core/Simmy/MonkeyStrategy.cs index d467147ea77..1dd7fde2b93 100644 --- a/src/Polly.Core/Simmy/MonkeyStrategy.cs +++ b/src/Polly.Core/Simmy/MonkeyStrategy.cs @@ -5,7 +5,7 @@ namespace Polly.Simmy; /// /// Contains common functionality for chaos strategies which intentionally disrupt executions - which monkey around with calls. /// -internal abstract class MonkeyStrategy : ResilienceStrategy +public abstract class MonkeyStrategy : ResilienceStrategy { private readonly Func _randomizer; diff --git a/src/Polly.Core/Simmy/MonkeyStrategyOptions.TResult.cs b/src/Polly.Core/Simmy/MonkeyStrategyOptions.TResult.cs index ec52a9a2b1f..8ff4f80c90b 100644 --- a/src/Polly.Core/Simmy/MonkeyStrategyOptions.TResult.cs +++ b/src/Polly.Core/Simmy/MonkeyStrategyOptions.TResult.cs @@ -6,7 +6,7 @@ namespace Polly.Simmy; /// The options associated with the . /// /// The type of result the monkey strategy handles. -internal abstract class MonkeyStrategyOptions : ResilienceStrategyOptions +public abstract class MonkeyStrategyOptions : ResilienceStrategyOptions { /// /// Gets or sets the injection rate for a given execution, which the value should be between [0, 1] (inclusive). diff --git a/src/Polly.Core/Simmy/MonkeyStrategyOptions.cs b/src/Polly.Core/Simmy/MonkeyStrategyOptions.cs index 3c53e9f2ade..74361846962 100644 --- a/src/Polly.Core/Simmy/MonkeyStrategyOptions.cs +++ b/src/Polly.Core/Simmy/MonkeyStrategyOptions.cs @@ -5,7 +5,7 @@ /// /// The options associated with the . /// -internal abstract class MonkeyStrategyOptions : MonkeyStrategyOptions +public abstract class MonkeyStrategyOptions : MonkeyStrategyOptions { } diff --git a/src/Polly.Core/Simmy/Outcomes/OnOutcomeInjectedArguments.cs b/src/Polly.Core/Simmy/Outcomes/OnOutcomeInjectedArguments.cs index 9a732cff19b..6a202560b43 100644 --- a/src/Polly.Core/Simmy/Outcomes/OnOutcomeInjectedArguments.cs +++ b/src/Polly.Core/Simmy/Outcomes/OnOutcomeInjectedArguments.cs @@ -6,7 +6,7 @@ /// Arguments used by the outcome chaos strategy to notify that an outcome was injected. /// /// The type of the outcome that was injected. -internal readonly struct OnOutcomeInjectedArguments +public readonly struct OnOutcomeInjectedArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Outcomes/OutcomeGeneratorArguments.cs b/src/Polly.Core/Simmy/Outcomes/OutcomeGeneratorArguments.cs index ed973e11564..28a07d74f4a 100644 --- a/src/Polly.Core/Simmy/Outcomes/OutcomeGeneratorArguments.cs +++ b/src/Polly.Core/Simmy/Outcomes/OutcomeGeneratorArguments.cs @@ -5,7 +5,7 @@ /// /// Arguments used by the outcome chaos strategy to ge the outcome that is going to be injected. /// -internal readonly struct OutcomeGeneratorArguments +public readonly struct OutcomeGeneratorArguments { /// /// Initializes a new instance of the struct. diff --git a/src/Polly.Core/Simmy/Outcomes/OutcomePipelineBuilderExtensions.cs b/src/Polly.Core/Simmy/Outcomes/OutcomePipelineBuilderExtensions.cs index f0f9b917af9..652ab5f8ab4 100644 --- a/src/Polly.Core/Simmy/Outcomes/OutcomePipelineBuilderExtensions.cs +++ b/src/Polly.Core/Simmy/Outcomes/OutcomePipelineBuilderExtensions.cs @@ -6,7 +6,7 @@ namespace Polly.Simmy; /// /// Extension methods for adding outcome to a . /// -internal static class OutcomePipelineBuilderExtensions +public static class OutcomePipelineBuilderExtensions { /// /// Adds an outcome chaos strategy to the builder. diff --git a/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.TResult.cs b/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.TResult.cs index e11155b593c..4236d870254 100644 --- a/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.TResult.cs +++ b/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.TResult.cs @@ -6,7 +6,7 @@ namespace Polly.Simmy.Outcomes; /// Represents the options for the Outcome chaos strategy. /// /// The type of the outcome that was injected. -internal class OutcomeStrategyOptions : MonkeyStrategyOptions +public class OutcomeStrategyOptions : MonkeyStrategyOptions { /// /// Gets or sets the delegate that's raised when the outcome is injected. diff --git a/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.cs b/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.cs index cb58a48e66d..7a29aa8ef5d 100644 --- a/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.cs +++ b/src/Polly.Core/Simmy/Outcomes/OutcomeStrategyOptions.cs @@ -1,6 +1,6 @@ namespace Polly.Simmy.Outcomes; /// -internal class OutcomeStrategyOptions : OutcomeStrategyOptions +public class OutcomeStrategyOptions : OutcomeStrategyOptions { } diff --git a/test/Polly.Core.Tests/Simmy/TestChaosStrategy.TResult.cs b/test/Polly.Core.Tests/Simmy/TestChaosStrategy.TResult.cs index 23e998e0f8e..c98da163ac2 100644 --- a/test/Polly.Core.Tests/Simmy/TestChaosStrategy.TResult.cs +++ b/test/Polly.Core.Tests/Simmy/TestChaosStrategy.TResult.cs @@ -2,7 +2,7 @@ namespace Polly.Core.Tests.Simmy; -internal sealed class TestChaosStrategy : MonkeyStrategy +public sealed class TestChaosStrategy : MonkeyStrategy { public TestChaosStrategy(TestChaosStrategyOptions options) : base(options) diff --git a/test/Polly.Core.Tests/Simmy/TestChaosStrategy.cs b/test/Polly.Core.Tests/Simmy/TestChaosStrategy.cs index a5640abc387..1989a4d5f05 100644 --- a/test/Polly.Core.Tests/Simmy/TestChaosStrategy.cs +++ b/test/Polly.Core.Tests/Simmy/TestChaosStrategy.cs @@ -2,7 +2,7 @@ namespace Polly.Core.Tests.Simmy; -internal sealed class TestChaosStrategy : MonkeyStrategy +public sealed class TestChaosStrategy : MonkeyStrategy { public TestChaosStrategy(TestChaosStrategyOptions options) : base(options) diff --git a/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.TResult.cs b/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.TResult.cs index d2924b7f3a5..e6058581220 100644 --- a/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.TResult.cs +++ b/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.TResult.cs @@ -2,6 +2,6 @@ namespace Polly.Core.Tests.Simmy; -internal sealed class TestChaosStrategyOptions : MonkeyStrategyOptions +public sealed class TestChaosStrategyOptions : MonkeyStrategyOptions { } diff --git a/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.cs b/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.cs index 546a68f469b..8fb71d918ac 100644 --- a/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.cs +++ b/test/Polly.Core.Tests/Simmy/TestChaosStrategyOptions.cs @@ -2,6 +2,6 @@ namespace Polly.Core.Tests.Simmy; -internal sealed class TestChaosStrategyOptions : MonkeyStrategyOptions +public sealed class TestChaosStrategyOptions : MonkeyStrategyOptions { } From 3dd5703b0f290e3cdcb9413b986fa48d7ede8a6a Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sat, 11 Nov 2023 13:33:54 -0500 Subject: [PATCH 02/32] add missing docs --- src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs b/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs index 73cb4b52ba6..3b9702a67c1 100644 --- a/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs +++ b/src/Polly.Core/Simmy/Fault/FaultPipelineBuilderExtensions.cs @@ -11,6 +11,7 @@ public static class FaultPipelineBuilderExtensions /// /// Adds a fault chaos strategy to the builder. /// + /// The builder type. /// The builder instance. /// The injection rate for a given execution, which the value should be between [0, 1] (inclusive). /// The exception to inject. @@ -30,6 +31,7 @@ public static TBuilder AddChaosFault(this TBuilder builder, double inj /// /// Adds a fault chaos strategy to the builder. /// + /// The builder type. /// The builder instance. /// The injection rate for a given execution, which the value should be between [0, 1] (inclusive). /// The exception generator delegate. From 6c1eb6fab764da40556e35262fd54957973d4206 Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sun, 19 Nov 2023 12:49:13 -0500 Subject: [PATCH 03/32] WIP: * add logos * add Simmy basic docs --- docs/chaos/index.md | 40 ++++++++++++++++++++++++++++++++++++++ logos/Simmy-Logo.png | Bin 0 -> 23687 bytes logos/Simmy-Logo@1x.png | Bin 0 -> 10802 bytes logos/Simmy-Logo@2x.png | Bin 0 -> 23687 bytes logos/Simmy-Logo@3x.png | Bin 0 -> 37525 bytes logos/Simmy-Logo@4x.png | Bin 0 -> 25786 bytes logos/Simmy-Logo@5x.png | Bin 0 -> 113286 bytes logos/Simmy-Monkey.png | Bin 0 -> 11360 bytes logos/Simmy-Monkey@5x.png | Bin 0 -> 47653 bytes 9 files changed, 40 insertions(+) create mode 100644 docs/chaos/index.md create mode 100644 logos/Simmy-Logo.png create mode 100644 logos/Simmy-Logo@1x.png create mode 100644 logos/Simmy-Logo@2x.png create mode 100644 logos/Simmy-Logo@3x.png create mode 100644 logos/Simmy-Logo@4x.png create mode 100644 logos/Simmy-Logo@5x.png create mode 100644 logos/Simmy-Monkey.png create mode 100644 logos/Simmy-Monkey@5x.png diff --git a/docs/chaos/index.md b/docs/chaos/index.md new file mode 100644 index 00000000000..1b7f731642d --- /dev/null +++ b/docs/chaos/index.md @@ -0,0 +1,40 @@ +# Chaos engineering with Simmy + +[Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of policies to selectively inject faults, latency, custom behavior or fake results. + +Simmy + +# Motivation + +There are a lot of questions when it comes to chaos-engineering and making sure that a system is actually ready to face the worst possible scenarios: + +* Is my system resilient enough? +* Am I handling the right exceptions/scenarios? +* How will my system behave if X happens? +* How can I test without waiting for a handled (or even unhandled) exception to happen in my production environment? + +Using Polly helps me introduce resilience to my project, but I don't want to have to wait for expected or unexpected failures to test it out. My resilience could be wrongly implemented; testing the scenarios is not straight forward; and mocking failure of some dependencies (for example a cloud SaaS or PaaS service) is not always straightforward. + +**What do I need, to simulate chaotic scenarios in my production environment?** + +* A way to mock failures of dependencies (any service dependency for example). +* Define when to fail based on some external factors - maybe global configuration or some rule. +* A way to revert easily, to control the blast radius. +* Production grade, to run this in a production or near-production system with automation. + +# Chaos strategies (a.k.a Monkey strategies) +Chaos strategies (or Monkey strategies as we call them) are in essence a [Resilience strategy](../strategies/index.md#built-in-strategies), which means, as well as a *Resilience Strategy* is the minimum unit of resilience for Polly, a *Monkey Strategy* is the minimum unit of chaos for Simmy. + +## Built-in strategies +|Strategy| Reactive| What does the policy do?| +| ------------- |------------- |------------- | +|**[Fault](#Inject-exception)**|No|Injects exceptions in your system.| +|**[Result](#Inject-result)**|Yes|Substitute results to fake outcomes in your system.| +|**[Latency](#Inject-latency)**|No|Injects latency into executions before the calls are made.| +|**[Behavior](#Inject-behavior)**|No|Allows you to inject _any_ extra behaviour, before a call is placed. | + +## Usage +It is usual to place the Monkey Strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. + +[simmy]: https://github.com/Polly-Contrib/Simmy + diff --git a/logos/Simmy-Logo.png b/logos/Simmy-Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f55fd7e5c920a99731f149b9e4027f92517fa10 GIT binary patch literal 23687 zcmV)rK$*XZP)FRE@@N>|GQoiYN#u zRg~Trw(s*;#&bfD%EwivYJBy3X`#hH&W^OsRocDhHLl#+Nkwq3+WRXP{S!9t# z7FlGGMHX3PkwtqzQms3nPv7iC>^OP@m;~T(07C%uw7+ww*mDHHP5@f~tOu|Tz}-8h5&=;NATtoz`b_v|1%ON-$$+Ht@6hla|E#(glmY_} zUK_`%kNoIf=z>dA;8tb0`Cm*IAOkbwQJ>)E*n&rZJv zH}<(4pnB6EiHyFncX6@)JgQNK*|l-(WDG^kW_#sL|7)>dr3>E6Lm8t0oC{!vO$2Sd zzBvF&0gP+(T@1i-0Pg^J1;FO-`^C+o^C4xgaYk@9fDZty0PtG?BQij?{Izy0fIk7) z0N^D66S~OxX7L?GmJm9I$p9AEZ}4fIcpS-=JU+9JHT+p=}sw+Y7qt^(wK)m)ix# zlEop6Y#hRY;RWzS(AiWS(qdsjye z(bu*q9N&?hWbyq*mJkk%7XfrncjME~JrC2TPsfDuN5SQ4Jz_2#iD2IRk1+ea+4%6i zchWuFaRBZEaC5pl$m08rEFtV4mjE~|oejr~KN`RK)vs{mxG`;7-{W>;){N7{GH?Dl zxaaP>uzmBUbPoM%05987j#*^UE@W*8t%HXXKbp>lGtN94&piE9o5`R#rcRlJ=bnEK zhmRPU?$}!fsb`Tz8;~W0)^WcbKHM&hIchu}e&_)>99oACURGLy|33Kyy7lap&gKIE zT+^WeWbwU3mJm{-4}c%1v*A7W-kY&O6c!ZV);sPj1FYliBm9i_z~%BS^(fj868X(-+5#Sp(S$Cok$apIi|&Tu~;1UKkyJPy7*E& z@ZiHpB%0=~SJ%|y*4yvIC6``-|2*+z%KeU?kam*e&(qy7i|;40B4tZl1i+EbhIx4{ z;K{LfBs#3{(R9VFijIT|LPaw|CCbv?svb(y!U5||1Vzn5gZODF1hFjP4-b- zQj+eu46@@A7N)y{EWTgJN(e1+NxB;b0>KvFE&lA&X8-@J;j>98=Fj<{$?waSEp4%n z+M1elhs1GNM>fvl`-LnaGzE|Lo0#s#UwqNh^?&iDmp1wTMHlbm8&y$o)6KUu`TYmy zpWk91OF#cS-63(D#Shhy9c1zSK~`mGiYq#@@!PMxil5*3GxX}&qv5;r&OQ^}%F3{M z^=gb5F#^XO)6^bt?KM}SU%$TCym>PwPMCnvqee9OebHx2uy)0l9T`?0fHUl1r7W`8 zFS3Nt6jyd+V@4@%zx@t8@%Up+zUL&+oCq4@lxZgdII+d|+yHs|t+#e$NJ(6qC4?;6 zf~?B04`3IBDX+{6Eh6Qsz5X--w_%BYJ(zNX2 zX{VlwoE#rU9?|lUk3Ifh-1ox)F4)39R{(exK!*$5yil6Ap&OE79@Ye^xq~iT|JISI2x}wVPi&nnp5rmi9m4QCUVA=D#0Aw`Y z*y(aLd|o(j9(L?(Tj7(B7B0f3Z@zB$|A?{U(oJq^4O8u^&6&X2c3Jq>ZP#XN*<3%( z^sKmcL7L+ZLE`{AAp8)6Y>_ zT7nPf&c|QwyBEQLA6Hy{1unbd3V6L<7^c}|GXerhBB-jW!e1Zwv-obm2(n>1xBe2gJy+N8*K7UTq+QBudM=wR>MVzFhR} z+f;)YIbt~8{os8ZeO$)MCHAu`HMgb7%&E4DmadxiS{mDQ2xs-%2-!mcmUW`F7hO?8 z;BWi8)7d0-w?sQ5lLNl(j@vNuh?d>e9(w2jTyWt9m_L6$ zX20_`D);PZbst9^b1Y6h?KGTn@-!3|wXF2sy;~VByZmx2`6Od`N_}m6%+q$?NNx`> z>}O(>U3UI#Taro_t8Izzpy8qGN5iGB26H>?+nz;x&{b82<;^-Fw-?7Zsy-aDpA02a z5#%zDS{!%mMD*ysPp#l2^5NVCc>n#`m^b@9oIG;!ZXkP4}ZM1so{|mKqr$xXX4Mc)NxR7(-aEE9XM`hmJB+8 zuI!|}Doq39w}SklB8(h87WH+tSh;-Pu!oNxgJX|79=&_D9#0@i62^@kgJ1vtHY{8E zxrlJ&=s$P}X3Ux;KCfB5y5ajn05Q8r?LooAH;h7mtOd!*dKEf~u1pBrj_@}C*LQ)j z>=&nH zkUbJ8%i0Y(imo2Ub%X8d8r%iO(kkw}<8~1*ki@AcpCpzfbi=^=AI!yvAI`yhZ@k{{ z{nAet;nBZ6f~lvRib*G&fK#WPB=*x>rAXqu^UggK2;qx^WlTJA(kT4l=+%InwHss# zheBK@_k(Y+t>0Y|%fDQKlct`~VrUySZo<3o&Bh0_XEzB+ZVp~kkuMMZxd_u|osO9^ zXJYK=mgbY^o`1fpUV9?m$R% zyKvJKQy3AM!<{9A4B}7;<$BxJOS>cz@wo6NJoWT*4a18>qu97Uy_lRYmM;@UR5(JR z5bnG0zK)hrI~ch4V6~8Y

{qdJ{Tdif0aqv8d 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 literal 0 HcmV?d00001 diff --git a/logos/Simmy-Logo@2x.png b/logos/Simmy-Logo@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3f55fd7e5c920a99731f149b9e4027f92517fa10 GIT binary patch literal 23687 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

{qdJ{Tdif0aqv8d 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

Gs}CDRCHu(=X?Nkava{&)1mj;eAd||FY>2 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

-$(2CA>l=~U%7}t~P5~VKSEO^7Gajr-7 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�gfa_3-t)mR;Wimn_ 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Ξ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 IePR{#Kh0E&c>n+a literal 0 HcmV?d00001 diff --git a/logos/Simmy-Monkey.png b/logos/Simmy-Monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..b5e670a5f39d943eee33176779fc5e2f597aeafc GIT binary patch literal 11360 zcmbVSRZtwjmW?36VQ^=d!9BQZUI!<=%(2PNqyH$#|qg(P}ryzCg5F{|h=9(8&Se>=S4Ao(N)#&>^nCCrKL{2&4zy zuOw%AaOsz|UEfk-53E*Yt<`NUv~gnWK7Cn3V}3*Dta4%EEz6X2w2jqtBIR+?bHbg@ zJU>>P;D3XCzDQX8CMXz{SCixleTz*W*^Zuh_+?^wyr!aCS0BC_dkKdAW9d`&roF`S zxef-WIk$oMJg+niBRnHB0^q2*?$=v)yvwG$FO%=RFK7R&Y(o#_Cy6$(7OZ9jE-K+O z%kH%9y6!L-9ng;u@!VmFl`ZoAqi(8w!Ypd2{)Qm1q?5UdozZvkScxc7%zXnqawOSV z8KYa!y)M~lqiDy5VT@Ic*qn#RyJN?-vg{Nq+oQ%Layv4 z);#wco=j9SDMYs|;YnVDhS37O=e1`w+L~KnrLr_Yi1@Y(7(g*v-*7_@=g|$Dr2RWi zjxT84Cj4;+p0=#{Xo$0>#7UICC@JNnG`@SfGR2z~2P&P(6R9Wo>{JCImtX4&>3X@H zj7KIQ8a)E}rg_f$3iQT`$LDl2)TBQw?M4q(V8T8=@?C8C*JQpe#Wr*B&4gTK)ui8K zTr=s<4R70@4Rf1jjo9zXhV0FGZ4KF-8wayOKMzDu`QKf{E3*3j%~+n zncnA|?GMkJ_&!ydoyaOGEq^yWBi=1j2Pb{rkZ_oiZC`u_X5?yCiM1W)v58j>)s(TM zTw%o1JQ50OIAW}bBmsM=>T*^V4z7*e8!%UZ8%tBnlYZG_hP8c z1H$P%$Z-8>%U1v6i~n|t{gE;<*9w*m?tLQolN7Gc*sI{{05H0wwA7?WBK-34g`Wgu zCCItyV95s|w}Z3O<|Fvd77tmSoE$$Z6PRG--}a1@(X%z$Eo6uw;7|P-7^su#xxaki z_L2jS&*lYVI7GC$caL4RV7I8_dc7CMv@?~)@#mxMKwS?+VRH%nvSu3ajf?gjo{aLq ze4p(8V<$}HH@C1?a3;z*E#2;XlAg)fLudrvhCR>tnA5b+7MW}cdw8$k3u@Qv<_vbh$#OZR#CwpLG!Z3(5mq zVa^RQh8wnCLTM;>l2`OWrZ?rzuIZ#e)|nOuRW9A9aNoM!wf%v@@51d?>-f!-31=G( z0yBfT8hLB8efJuaN&~%CKZyE3B%z#=MELmDK1@38$^4!mN63@Y(G@Bf-)ARYJ<^YV zn|?N2kfeDInbduC&F|g_wu3d*@*7A&jLUd2w9V5ChHoi6oBGm)A?$LEG1>n3XwCax z=jN|oe{OWr#aLYQ?8@5MRBT@Jc@Uvpi#Ci(L!UVSP)o0%qciR(_m1|lE2{>R>T(zq zZP(k(GPlTSchCPmQcDrOJ1>Lb>lV?{7Y>X2Nsyg*9MscZyWZAH8|)#(Cg#41WjZY+ zEs2(P$rx+kCs`dqT{REd@Obwgj3!*YyWUHB|K+@Hrim6zs_V+%<#E`x8nq(-#J;HK z&3;}u=;rK9#mxVEY2Q)WoU{V`uJIpEPMgb1@mLUB#*k)d?$PcN>%AErV-9YPG3pJa zx;!Sdbs-BCdf$N-um1i$@nfkvigi2Sa`!=h`%_^SfYWtpyYS#AxX1D!MajE-)?1mk z!VDZ1^0EmK4PFt&>k(ka?Z{8*Ib%X4!fo}G8hY}xpd3bz)zU%98K zbTxp4hwtL37J`&@uOpn(_k&c&&pbJ zhbQ%JUm_dtz29Ju!U*4xs(Jv{nNFGvvTg5sps$X)xLjI4{)v+VOut%=%Z1}3SKY*< zf^gc=&$y>cFPNA`(W1U!CB)k;`n=(?no8$YR%RycPZ;0+#@2S59!Tf(ybrD@_Q45itkEXKXszdCEa+GzYQ z)Q;~jMc~L%wdR)BC$NSMoR$o%!f%7|R%h`LGdc9OELbE#lj+>(hl`A+HX`SR(`&A? z2v)AY>3@l8Gsd+#_j;EP3a={A)mPm?&~hRh1JZYEwpq2>%RRM|hY1Z+r2ax7mx^tdno4U7Z*3#}*dk$Bj)52{Xuf6om$39(tmZ}2d7n6?tU(O2DR$3R2FRQIj7Lr@r z?nc>z9OHx>9a-fB9>IE5&$KGRq(Snt?|Ds;{iE25O9Ywc)~0|^y2_3yC=`I>^#Dxc z6gTuZ4*B^Sp2Fu$tHo(+vUq1*!e=Bcm}KesR8!?;qLfMhZs3O9d?hb>PM5W8YJl=6 z4LWx_vIB?WT)I@^7`2f5?an}mNaV!qG|1a8^jN)VU8u6p*gS$P0DnwFn|)>*Wama5X63fR%gQ=DIsq=W_;X;iRjsk|w1f|Z`KXdtIqgp`$>!lO*-8xhz2$#@`5D8M;ds#7NU6=}<9xSHoGZlgpH zyK5L=ET}H}iB9Wk%XJh|%Q*9M)5QLGb9IWR{!iqs@Ph4WhKrJ_5h4;2-jrZ;E)ij% zEOyck)zD54Mbl1giIFCIy5{mFGiHw)c@w!|LytGzbOBp@+Upp1 zRkZ>Otwiy-%#R-kAPT{s*k~zx3M0FJBZN*pa=c2v1~SZ1 zZDeY2!bv~@g69Uo55xxUJLkcFE@o(eIUYr5McZ;LI~0~D%3f;SKx8P+^91`#hbav~ z*U_ZT$>=Be3}b3RnB%Jv$L1e&M6FBu7L{d`L_gnF@H8m0uv?I@SA2aw{(QQkCNc0v z>*u=#94dzOPUn8bD@>?&Q2fanMr&w)41@IzVstr$dU#>$BKa!+6%Qp?QPI~5dg+B=kvjZ2A9M{H;d6%2NR6ibOc2>06{Cs2b!D4BTdZI zbD+Fhl<7TBs_Re5(eng10&i*;`BM(IuB>d_at*{vmRWmL-q^7pan<{1!m8TCwMaT4 zp!Hy|##A7N?tQjJq?ru-MS^X<^8un}qj!+053vKzQm~mDmAaXH_|nOUpVV{z6F+%k=~O(_GM56|V^uc+LW9xpf zqmhz>L9QQQ{JOgf;wsfzv$n88fzf&$#u-kt`^X*FB_V#PZkVo_9V8^Qn{l6b`CCud zz;rq1VA4^Jc=9xsmTDqhdLo{#+Jw{;U1WCcuyQ`n zXz=zuzw(CPYrbO1!PsGF9BBL7nCmGTe#EzsJsZj3P`F%I> z-W~Y0a5HS@x9H;fp|8pApcdpUPs|_LJs?JF7?R@>dY_8EE z#6gFoUO!Kt$jpK&b^$e&(ulWMVAoCOUVnssklli#ayqVtiykY(9`jMjR(NDgTRQCj5J37XYCu)&x>Bx0^9j)U*{KaSJbzlx^3R+w ziZq@|h~tIZZx>SLUTPl0QO-2?=g52NRh`K3bEBmxXp9wSV{5PyZi8oa51iBd>g97X zFtAa!bTJt~9B4Q~#2!1Zb$2n`Hg83@YDquA#IS4$w#GgFY-`OQl}nyJz$yZmIrKMz zuuccnnbAV$C1w*Fs5yF98{?!)c0vn_N<`v4doKrj63Ms?3uoW!pTEG}fkF{lUq$8V zslRimNd1(td}O4@=h#)l#$Tt+Yh{N+skZMKe;;@CaieH~4V;_jRNRz#njl_ntlRRB zR&O!EB*~IhQ23aV(s%(_{n7*B=;zQ_{4}S0w#&)XK3VmCBd4jUInAD+H#S0^rfMhw z`cm;y}$y)HHQq0g3r%0wm0lPJZ+ zn>9TY*<&!7ZMAwAvy(?GhCF#7C1|?Q?pji8A$|&x3PY-)g_@fskf&!F1V%BE)K>0X z!n(g!P`vCM$W>b`*EWJ|I<06i=Q?62An3=z<;5^*rFN0&5e%MOtt%^)(L2o_Y8&wQ zn801sNCYk2(+MFZj@jzao=@9eFq=AB<(SorYyMu!uxIWJ3K`!N40%h#I23m_=t~1zRIf_^S>(Dp)79X ziPEq#DCDDqEeH&Mq13rtW75)t98;;RUq&*mt-kS!(i=E;q$FloigpDoVv6|g&C_t- z6KIRdQf;lz`x@mq2V1SR0R5lsU+3#u-cq^CH`NDc3M?N^IN7BjumZkn*VnuI;NadH6bO(;-2{jt7 zqy%*8^H-3sOqCrlB3kt`A#otQVXKv5?`KQtqmb*}NG z7jJC)(n{DT$HIt!;VH7?xP5~68451Ti9c>PPe?#kzPI6n=KwZIkz<=7>=1kn>D6e$ zKvqptl5(|eO%}n5XbYd{#}sF_Ut_ju+jCg3U7En9TX2?2-7lm}q}Mj`g85ok8$rBq zI1R#Qu1@at<9ov1i_6LiA2$K=(qXoZ8{BkNZdeyzpBxjEl$Ym}mL_(1(mq(6@wkvu zwmbDoDm|>*k_auT%n8A|?^fm3IDI^~Caf_DjH+4c(W?9GbE|s#&2WlmS;4txqjsrg zsScr^DRdGTOPw1M%Z?8nkY{SjJu#@5xfPaz`Y(8IqFcFuw8l0YrfevD1{)v_jH#{? z0YT^f`8B@@lqjQ3e&;K|nRmXKP?arO84ci;X*BIi-N^D5;WVY8=vA@{tONUw`p@m~ zX7XwT?qH%m!zX4R5!46#p7llsi4OO%dBq zE_et!w9H*!;X6N~UH#Vv!1$eYChh?X>nHO(?Jokq&W;iWHr^>)vpKB8(kkZt7%jfP z^}{H-+uaT z5z0vI->^B^VTi(K^q?{FhbJziX*B($J6W*ZpKqxmfKsHy1Yp%@j*vKVoLir)EYKQ^ zpO-O6U=w}_NBQ()pv(rMG1*y#P!CgWQh$bysX6!cN{!tkt|it^qI@T?-fZKJ8zQ?h z`dz0n*TUu{G67O3EQJJD(}JZvlpayZep4J84QIfgZT@i=^o9c!hgJ-BrO5J9O%ja~ zH|b1-D1=raEjx1oN;TycSf~s~N5xSB3dL$FQP@<3x+CXw!+{Zgt+@A%Od_Sgmb0b+ zO0KYEYTvQqRb8S?&Vils%e3e(jaH(K`wgrMG>5vJZ-u`(FleRs?sBJ>5XJFTH#USh z7sT7{lrLxKkRGl#HxA+^MJfwgNfru*gYsF*yVvnBb|cRdcT@Mj*`tCDyWQ&T2!7%# z%VBC-cC^TIMv2wj^eH`3jPow&kC<6n+t({i20Z7L)e>CJ?Uu)zF-+HRNR%5+jfsR$ zj=CUqKADszy~RSWGe1dT77OnJk3KSaOwEdG^`Xz-N&B*Eo-GclxYk!$h$aX2FPl7tFu&)$g^TY_sq6 zY*pRbKavI#qU_^{Qe5h8$hNyzgNux4nV3r=k0)Y4ooMxywavsqyUhW+Y5hrwFZ0)k z=?Iz1PvLtF(p?0N^YcWhpyTdT&f$wtj8boVA2yY5C{kDhe)BU~ttwqZuV)_RDb{CR z7Cf3%jhoY%WWxYh(5+o4=dv_!&EG7v*;XHlFz;j`2sU4@Oo`ei-xVzOR zpyl*4oZqcE67pZKMQGRYfKJ4vwAV*7*nF>Zar_*$F5|7JD+@b2=Z-A{m>L=y>)*fU zG&Hs##?Yg#l)1%6XrJQnIuq)e{5{FZ_Ycdn{*94>NK1aETMh>5ZWCaj?|p2coQVRIK6lCi=vDNc=$Kg!$A6Xs# zWB?C?T-dfZ`*{X%6gySuJrg@@`NIk=)YI=SIsi zAnH52hH&l5a@Q73JG)BIb(2+HV6=O`*CRA20OnU9g*0<^j%!3(%gV50=}FLo@+l&N zCr2LA?mWH>i}H)s7c zIESYx751j0ru6gz=YJqnT#8(ha*9hqH@;&6h-ut*J`<)q)G4-~>!*>Ato=p^-cqzT zM80mNCsqD-q?uMh<$|Y0ectuH>1nmy{#Uo#oOLK=MRUwinX&67H((v@2NMCmgZ#Zx zw4Ek^gJt_}>YNt?8@*L<@Z1D&VZgQ+0WS$rg&fsObp5#cOt_jKam3EJU&K2$0|G+6 zT984qOTsu*tRv8$V(krsFL%~92|ePN(<`MbyB;O@9v^h}J+dGi*pp|#Sd_Gw@%NQ016X#x0dh6C2SLXb{GA?uV6ZSMiU?2g z?@?$#_(0>U(W0k03R?u@fpD(A;iRq)HIjag|n z?ZK_b=ftgsJpnXSSG}YpJwKWn;|$<)mY!#;FP(pHdJ_$h2k*Kjrm+mx=v*_4g^Kqq zneJIpy&HgptEOD>D8x5dIY zwE-iMW_Li9B=$w>9 zgl7IAv`A2ey z`U!z}ZazYZ5SH)Gu46w|{hCu28_}eeOBL{tQB?8kvwA5QFA^FttynWOPup3@T=DtzXg32Nb<=QPnU2?&I=jF;r}w+FUwR zCri{+ilKaq_Ag~WYEb)M&z_rIz5M5w@2G#08vCB+lNpCV1;3`X_uxP9mqMm>tPhFG z<*x@uVLCixcpg>;;XRVk!-&^YLruno8}39K60@~xQ3%7atc10c(%`Tk-Z}haOrH?K6mo4#o}Hs5=Z&m1vVu zL&3};HW(qifHXmhG|$+UyYaMf$SzBR`J@^`DG7lcxAJ^g$Q)W2ct&_q{s9jN{V_5B z>0|w`iE291A@(N&kbDQH-_&pigQzEDOiW~Hmxd^H!`tl}GN+nY<-wr=hc3e7FMod}qrKO8I(Z_>ywHuUZ8 zv*U-}Y4aqjhSvIDS>As~uFilTJ|GkR#|t1h7~(@1&TdIo%CvAOyh4=VWce|*0S2G0 zRg>sR5>dm&*^;Eyo4NE_UHO^J$ZOcwPNQWbR;&>_*Fr|Q{h7H`kCX3BTAM%;$-5z6 zjwV-~mA)DAjP3j$ks^Kg-aZAwZEU}CG2cStb1e|0Cy2Y87`n$2iM5;=wn;0dPd}-@}*k(=24EigInH+ZWrOiCE{udunHuUC%*fqs3t_1 zQ?VL>X36ZQT6n&P2jmo&0!Gq`o7#coS+F@eXl62UE`R^*{WH44^dF-tsTEK`2s!#q zS%9C{%0-Mlh+?_9<(5#j`tNHNzESKctaT1ahi?oXxsLh+rdl#oOyM8*^mr@#Tz*td zB66X4n9^=0#qpK|D8^Fr3x({f4U9J!)67+-Pi8LKaz@yObu59UXlehj8F>m~aj%j| zj^q9{bZp?J2qn_ljI2%wxWBREQVj9a0R2^o{n(SpFe^{%g0hHVrscH1LJy>|TCozXARKaH?EJ$SInQ~~G`_WrbYbH8R7CUVl^^%4I06)DxO{AyZ+uB{Yv^a_Qgf*t9Zzn(pp1va4=a23b$c# z&3L8u6}V0J&9xoA|9p^OpT_u?u*P8Q2t0a<7rHg7psbrrBl$@n~T)&$j5&IH57SXe=1Gtf?RK8FNrmHC)0&;j zX1{l^v^E)=Zn0SFZuG={ltF&)nbYk1#fAM03Kk)`fU`4+9vVheO)@|qbkwI}*yAnH zxkZfH!L&n33vpZmTfz3l5VfeEzOGuF9Xfq)v-wl4ykhb8rJ?QIvRkVuFj42^BHl+v z>XGMDWX0h3N$50#FwZVr9cBF#7nO@{D63)=HBOpzQw|ezzY~`LM{bZo22>v}HV^~Jz3Kss2QDE;=ww=I4M{J{k>?m=O?fjvT0mZ`7-j0wVd^OvvuI0+|Cu=2P+6xp_dda|P1O6@xlk z%Dd&jbBce5uecR>VIaWgCT?w{ri3~LDHKSZA1+k|hZ8#0l_`P2o`37;Zayqa&$vdo z3G$HcDDQ6F10?bjNsLdvxekk)J0-f zoGnr{-R9E7rc1;lFtO&H!zC}QEMFd#e2o2gWEhJv9}frmB{eo+PT$Oa+6|WEu?Ull zk0%eKmNzd&6YE_>GPK&4-STN;*$&Sxjq^Pa^GMWna`ZP(K4nC>cr}S?Kvj|qNVZbF zT(J?e1&=i1&?tsA)~X=N@fQus<7%^y-*<5bWDPkeu@YDon%Zy7^`*a4IVRyqrJ&{n zu*O^C_x!=K3d5rL7Vi?)sJ`()n)NPu@jm}8}tu$;Ec@&;jGdhxe` zomORXqX`=Aunwpc4-Of9PYrSLw6$^$sAW)-vGFbG1FGl%^VSJ%A}@JDU4Y?@dJ}lV z$yoWc3h4?Yn+^FMMi7Qk!kgKcuNAH0E}FSw0cNE7 zCWD^X{lHC3MMdqQ4?4|43rh|fhsl|W#Jrjz4s$}yLYm(!P__@!L?HONr=H%bh&SYs znK6mf=3)VC3Ns;J%yaWGFlNLgLFDuc7 z(h7IvJbW%14&@rR`PWR}YY{>@LA(tn4cNZW+lj-xVoTLTf3*4DZuYN)3CG z6f)y(YIA;+T$QE9D93Ix%K7ZJXZ!d0LXZT?GEBAZ zAxn4?m1;6~=!u~nm9;j85r9~0Gv5L}#8(pZ0=^5w$SG50Jl?o9?T z!Ktk5W>W|}tN5jU4+HuI#pN*ud2GTQCm##&hxI*6RCKLX1=&G&CL&`9mA;xcb!&g5 zD5-JEiS!q?Y#$$W>AZ+SsD~!82aGVEY8CWH{BBm;uCA=DEb|U0hRjqnK$oobD3j0WLks0LXkHog3dn9IC zu?i%&4I|v!hFJQ{A_e7PU8-{DhdN+^GXH7wJ!*;eVdydK3){}G2_p=TWXXGp1D4oC z>dI58uL2sJgPm;}+|$bY&t)>OZh$e8K&< z?#q-Ct{6520Md3Yeg)mi>;GiYwz=(oOSydM7XJU<*X09W5FOtKzWDF|laUS5y#UnV zw2c|15UT{BLD$by%&fha@4VJ?8zPLL8W0^wCfaN$ z8oCA#9sr{uX&~onJW<11h$N^%b$2jV5b`!uSGhzjYpV9Wats+SN`ZX5oR?Q~ddAoR zZipoRYqq}pN$%jUU-A8*>z;2r{e%{NnnV*YsSR&e;Rl0cz&1#(QTV9eP8SU^5sjL#h+Aiag>pf1Wfq`bsx$p z{K)*f{~O)t-TU_=KOetfl31RtwOnCrhRa0F`*MNSLGKW3^v5{PoxXiRHAf9H0WE-* z=-ZLRUvhKfiuvC5cYj9QLkD?-NC%Co4@81wb1wNP-h51!h0m%(WCH>^s~$4+4lBVo z$lM8yMFV!GV;a^@sMYA*tRN%s?!(dJ3vxcRNzrSpR=308-Q9Pwo?<)pZ*Qo&^C!Kc z2BJxJ{w|sg9nDwx&kyl{d=N>Ib93H~9DCQ@GX!yfQbBjf-Qs3^bo~58IO2D-)LvU) z;=n|%3RMSV|uPo^q0$Rf|2L%oKg;Xi92w8xhKwC_BG+Vk_ zT3S;L_WGiK=d^1{f-I6lWjDd>4>9;t)2-0WKpO3070Hi37sZANIW}p!1wn5R6!tTY z2nmgAh`T94(fx|xDp%Ow#hnqRoc^tz5Lm$w>HPog8pNFmdO5TrwS3K|x$ z4|zPPBjq*^dhq$8`HKDFh55AgPZZgmRsCCW+(&VcX(3OJ)7SD`oo*+DZz#D-8Q2v3 zcF8BV`za7@lK;CL30)LR;|J`CIE$Mx0<43dGSEA&u4)!wE`C;`Gk^+J=#=*RafW5{0?>Y@O@|^w+R5ssj zJ<#)%q@8i4)I7KZ^Yy9vj@RRV$EeEbWcqG*5ZW^>l3(VG_bho1m7=Ev zUmyfI`CYpIZ23bjw2~A5!1KRx7n#JxeXRGzU*4hnbkUH9eti^GugUGav!j=bNhpAo z_0klm|2Ha^4&80C;(1_u>!PU65fmM?d4Ck`THh65@oytL#dB?*pc}sG#J)7A%d0J> zXaS%6*TE*d21pMn59I_llQ{_RuoqP2P~SX?{|0ol$;s}|p4oe#CGQeI!7GL8!*0a2 zqyN&mUzwVDV4yx7q7wU~Rv*|CxUL7@{SL2Pdh~j)&JfM_vw(kPT?LkVqJ|S4EH3_K z!0hpV=ikhzl$QKis}=DZIJZc^H`4__`r@`-tuMYxB)$OFfEnG1`1YnjQco|H{Wiz% zDv}HFhI5Y*lmm{KR#WH2ker6agP8TD!%aQc-CgS;s86>4P2lkjYvf=Teth)P2^hXP z78CyVr54Ad-}A_ew43=Cb_D+O68V#V0_7~9x1+h}UP`9OuRXsqZgOyNUw)C8tEf9A z^t?BgcD-~kG$<%>juX~JM%6)I6CWL|y+iMa5B6pEaF|#EgR*oko=j0HpA4R0vvVkI zP_h!*MKRg!q%09nwb(3cLidGpO-Uot=bf10-_^RY93?3b*~e?4z~|5Fk1wVk9W+io zj^R*u?x-+vlXxN9rhj`Zlh_}y1yIe@VquM9VjLA-&Rm(HtY zi?T%fhoE53!4I@@H*|o-UYc2I)7g#qpZnhbCQEC zNh2M31%(LF=90p~;j{I-JFou!{^5#_?(XjB4c>xjW~R5S?Ci;GFK2iqf0_%oB&Ma6 zK!3W0GAQwK=~!PMec0;$>?#XkJ?rzL=4{>p65phx|KlKq)36+3dye$-Eu-y~oRFfk zGq+)b-4_5=3#7weTum~nrVrDp|G`K}Ng1A;Ok)DKd7SpfQHi`;?erIM{iLfMKe(tN zTNVI%aetkbYbjn28Xg|jkhHJ=FAP$K90Yb&ow^2gN0Mr6XBj#Cicn?L{MV(}?p{iV z4I>Jqm^m(0=dr`H!x#~6u%->1N5Sd@V4qI6Up`7POxsFNsimdNYo43_UQd@p)1{j9 zVw>vmJ+@v{xln(aBFASq>|nL2iuJr9+6}CcKO}Z?aA0Hmbay$EDfFqZye8*DH^-)Qsq<^lRR5y%JxE-Em4=3mHndE=}j19HfIPP*RFS1#s}v127VC^$^Do3 z9q7fZk`du`lj42(ve6nQCY8Z@-q_^zAHm%EY-XkURi<~3o6npj(0PE@WD3#@Y3b^I ziHE@7!VPGGgM*!)VbC!md0t*#u1Avg8P6bp4_So3{VdN>-xMW@3KO3o+pR(sT|S9v ziK2#O2C-c2615bl2mkP@kD+9v)4WiD2Es}5F} zpJ5{*Cy$b+_C|WVJ)PYh^*vswtbNfA#9*yJ0*fYHW`E94Sr>dh>QzX*3urw8;4`CC z`?fX$3kC8xq7MfJ-*~NGq;i@ZE#mN;)-~GB%2mWKFoX2O&=ln4!ft?LtNi}`dw9W( zzB%mS?+idOs+fL1o2r^>7e&OxBtsuy%X{ifsWvf8>V)1rHfuO&Xcu0a(_T;a`#A;0 z#e+soW6u|I+%xmE`m98icNcv)H6EviT^A@%z|ggiX>qo;$%1$4Um{654o9@5IJpj zcBn&g%9z{&fSbuY*IZCd{r~D37$1t(rBh$Ti$5rwHk_uIM=cEG12HgDu3Pb>zkD2o zfI|~-XCW35@M5p)@>&0EbgFk7pz(=2Kjs*&_&8_bA_Ffq)-d;q%t@Q_3K7dT zS`gNILQwrvCm)(N1Nxd>c5a-t!$H+H2FyTYG3@Q{R~Xi(Sl*s2YXRU`&-t`jy47*X zoQxXWp7-k2D{->tVH1e`0=ww#l2t7#9UYxiU&nYU$`z7E7%%Wcv>OOiF?hB1I~JnJ zDRc{vhn+4Z0wQ7&a47XD?9PyUZ%-0i-H(gie|JgZR57EU{Ta^?6F-~Yj@s@RHc@w% zvN?HAs>|(mpy7>Q?YgJrEg~_38aSTL4=~!S?2k8fhD6B1pCEy7zb-txqL-6{rJ4ox z><^F3C~C;(2}5}WHcp-Q#hIN3Wi@f4XnbLve;15g)6JE{2e`|_Z@YYMPa+}k%Xrt% znB}_XN9>+A2h%=nzujoX%qoJb_F#_>S_TFzu~Z^@W4%=rX_TR3&lOdjt_BCtljRU~ z2uz2X*QnkmFW9M{`=gX*VX|kCu?}I7JYI2f|E?Vu!mGtRb1AB;BH}N!jErH(UBpC0 zM25rxHcatpnOqcha6or_S0@d;R+sBf$xDE=vD8*N<&4q83sX+t|4L2GweL@NXLZ8`DBTQ zg`ZzHI$u3$(UjGz%1`QiqhoIXJJuenk6V9RjspW;*|bsaX;PI$6ZoY0`n!rDAw1_! z)p{;0@*J%Iff;(`R=LNmuB_a**7C`_K^v8@T~|jZ^zZRvMQawPgk+gLi1Ke+Dlb-_ zS3;zr@m?U1^jOWTDo}+-7k?P=a{Rniyt#K4>f?@~RfvxCdbl~HU(B*Tn!GujZD4-* zy3}e3Xi<>L)V4&I%`{!AFH@eCAC-v5T>e4TE=iUq=81=;ANqXrQ_{kj1oUj3$6<+^ zsJ_1|w@^>#%rFG2urSM~t1CtrV6%ScuNV%>8bq8o{h=d6++_P?ydPpHL1jEPnf{qH zsB+lV2fUrVxdXZZDk@ljY$^**y<>7~G%6S=`-wQEihOGB_5z^nY(5cJE$P8m;hz$5 zp;HHik;V|5@?5Hz3G^vnRBrK|mmK1OK+s$*HN?|E;$kV@Y)|D$GqbTt>*x@szj2Ba z_kZyEp%yY=*%O9MQSG=Y&;lZqfrD8qm1-~deR#UL zakCwWBKjEkK~nNFU%=CyPvE)8dAl|%3ybFN<4VhE<7z$Y!y`EKDq@H`#xxh~)I^Nx z#!8u#kx}vOVmwnw8v_l^xg1+lQ*&lCh0O%6BFqNyyK^q-dc=OSMyso<%W}I85Ku)9 zjLvmI1DrnYR*O(Q)N5i6Lj`_*{-}tJJn8VlrKPuNEB_KJi-^c-(WL+Fvb6~uUe$gT zMYoxCHyH>o7_pXF@)TX;!73p6VB^m1wBFiang0gBwx*RUfP@LczN5aNOpub6Hi7>d z9#&}4`HAlb@aS|uxzH4_%`bZD9n8C7>K#?)e&f3ErB{ktyTUCkE#KZaWg9K#9t8l* zLJgL&TxVU7pWnMT$h(c>@#A5`pZa56J@ zAI_GncfKIX)S%@g3(oF%4#HvY;&s~0u4-hl$pCylf z`is~v{BU_B=P+uN0p_&ciZTy!ZZyoo7di*r7N4f7%g6IBwr!qEL_^R)Q8?EqcT6WO za>dLA-jD0l@84N;_4Hc(Z5)s0%04z&{qFsu7RdPOj|&sbvC6cAP;u%S$dPt%p|bZh z7jK8TV;1hxOi^4ydT1+6J60Tj^Ja|C0O)RP*Cz&D+qv5RY1p8IfraJvz}wf?SLA-Y z&;sk=Ada4Eaxya!W$RS~MQr26TaZ>tSbxPiu)$3`YdaTj8i*J4Jj>*JH;h{%?%N-M zr{&^OW0dm_#1Y1l?UK5!utuMMh6$$ncw>Yaq=Qz7WKXE!W7*_-@cI^0z5G) z!ra0l?`D`jUO`e)QXi&bXsb;uUUap|Wz?v01jKmOW(w;m%kSmtPv;%bBh`zMwXyzw zZma@2z6=kj-7UcMSQtb57b=bRu37*DOa7XawAU-FvsGfh__KEDe5FBodXj$FiraC8 z@9^QcDlMJgo^cU@wtyTFaHLY%K&*IO=HW_c;h~`inm5XV99(_ehO|Tyoz${9cAGTf zes6gs>!p$X)v|mP;Odtjh64%jGpocp0=5*J9wV3z9kF0v_@bdYRi_*aTtst^I5zWW?^Pdh!;MB z8GyMnF>5BczoS6cUsdUdMe0u;?s@z@pBp-imb4>^=(BCFAeO@~qY47JLF= z+Le#{1*t^Z0`I6VNy9GRFdzD|;B1pP06vYDyL-b1Kb)@f{tv~-yVr;C<>r3V-_vmx zq=7p`)a_hNs~_7`r|Cb!e*wk}*O#!cBl!2`U@BzX5g>$F)~bp|xJd}Gx3twbe1!g~ z002F9^ZCGFu<7$tR20UqbbidSR1RqX)A0!iIyO)&Co+Y;aa$m;va$JJ-Lo>GbX$N{ zZ#M9-`tDG1F6~Z_1OTu)1k#VGNlA{FuO2zKdH21CCN)^;=Z@os_dZnz&3Hw;<2EuG zu!0g1f=)l6l5J}C0Q}ql&*?4e%90x7dS$l4=vq}}*0sUr2w;EGEc!95Q^exU|1fi< zB^LGg!RXz)LduSh4TfT@&1Qa=U-|^FDFvr?z+pNv;iG3qumBNTHg8}t<;D|4T*Yt} zCMfnAp)zNFipd95d^QPv0-7va*c1X@yLDq@V?_YQoBSlmh5DWZ8-TEO{)Irp>r_;` z#n{`WXE?M=8NjwE46c^>vbPiSD+1ONl(LYdxAiuOa{z^2-_(EONCu*h_rmHcjRl$R zv0060yh#&(x{xj_ER^8^0|PvtRy&%sx+S{0x)MIJM`<_T|H*IPRwZiL0;U{m zJ6mi4>`rM}nPh=nEVpGpnkejM_Md{^<%QprKz{Vh!Wo#EbeRM)Ty)PrU}B%)WyMf;nBz zfOP?UDMF#YLT=IG4WcA%ya*uq1E>Se!jSs)R<#}|ZDJd%-|3dCAj?hIssDk#C zWQRs|JT!>=-99|Xs^2HP0R0lDrX2nYQAL9D#Cd0;x}3iSa!FBnIV+Jun-z0a(8hTZ ziDL#X-=9&Lh&xpNOy=}o(1Rn<+ zkCtHz9|w-}FE-DS05er6zShQOAy7N+R`n+{hSA6_50FIfNvFfU;j}Aly-7&Z?D_)uesUVs9%LXUtC+(u+7t= z&NY#lBHM(opSEP#2<64e%UkHhkaVBQr>Ap|QrCTsD`#ekl#A-DCzXh!WjS+{A(L4m zOqC{WdOjCDs9D6#-Q5z0->tI~0XyUmZ%tKMS)y#4YKDMXga6&d?-@XjAGM3?J{<#c z;4CM{XGKLdj?Z114CBpR4=nGpwqr$DUDe>o1_#DTR9_&TNqqPjLM-&HK}{PEIU_&h z{D>HvoG;;ea?@)k*4^|&Ul?}tGyL%%0}%O}SW{C&%4dW7&)dJaaIW&>iXI52mya_) zU1?Bj@&uC4-P84?#q0TVq*;Jj{p0EQtcP|2MqY{DM2UJ%D%-JbgSuh8%}XK@5|LBQ zyUQV(R|V6hkJjbXdPN~v&i+sR1b$_wzmc5v_o*QPmjZ~*CLs+~BLsYllc=&)%hEVv zyYU#yUtIey-#KgQ2ahJby-~kD@qd7(BWHNyVf`mL#426&(aF<&_S(`p`@=%%9g(}OjLht(#jA~{kv_edk@U>{+r zB-n$wM*%eU#lF2Hry(ml66ftjR!Bbw(@=v~*664bAtB-2&r9le01k7Sh%zuBDW`D` z0NFJ@oZ1Hs9UVR3D%Kx^ipBIKoDD96H`_qet(@;u(p6`mL;L<{%LKc1{a|VEjpd`% zsfJ!f6~7mb=m%hzlZ(}|SWh>*%qAqyF#u3cLO?*^TZYtg1wP%mq&*Y~xT#zw%2Q9n zuJzPKkj)clV%}iOp2hEwx1(~E<_5xoGx(n93}yC;ezS_O+LkmZP?XKX_2+#49u+C1 ziYi&Hmg};qLg%k1A?F^D<@=MmNj?!tt)<}(zb@gh)G-^@wYz2VQ(xXir!vSPIod{P z{IuyLRlZ;-d9z6$SMIjQ_4u1MH>^{olZ_6epBXvdzLl1V+fC(uz5xuKvB(H!d^1JU zK$!bFBt(t02v2`(LxBWzerz7I*(3k=2&Xbg|LEXL;it^WXrvdNxjaE!?sJ?4zA>i>SEH5udK@+J)@6R3NB(he)pr$*U z7<2;aHRSvcLDXjh_ToqOU3=(Mow>;Qx81RpX6v&IQDP;O)VRk^40apCfnDy$dWS9h z*-5W?d13ixTH4xsuv>updbc~Bhyrz+)<9|#ZYLCCPyBfh^x#K)#TWSymtd6|nxaLL zq&Ut_MDt`+47+;p1s90PeXWa=;e4SbJp$Un#e4D%7j$pPQp<788O^rSEf{2WjrbZlt26b2|7E0OkTmE; z^t?~wMbr`#f?oL$0=iwYa}+k9~ZV142r#gr^MrX>+mb%4NmwA zs;klc+p~2e&P-m9ledM1cb#YWS?eXeaxs>>(Td#xF1uXvGI zq3cXA0OVW^jTCgu>2>INU-T*5<_IPsE z`g}+Zh=%O;qFg?2Z|{$0iH#(8>*m^dCdZp!k9}7VO1Hu@R8{4A{LV0-=o)DMuNQ!% zGPB8HIlnn~Wx3iSUq9l64%{yK5xWMEDH&5N9uaIif%8jVjH8)lF8K#{P^*Vs7iK-e#BnV z`YP$`*E=e6?TYsm%*Pg4rTji!0?AbYp+4z-+$7Dv!zi4OE1N7Ywt9fFyS($omy-;@ z6BcyYMk3}ijREAe6+lPaZ;gRQ0Ov7|rmfT$Y~2as6q?T~U0Y1l3U@?{%16+;b+rWMT! zY@g@t1^|&A#npL-08r;{AZ_0NHouXp5iIu1Ja4b{8~Vv1&_PZ`RLIw~D*#P?+$6Jk z2JHIHw1TJmmUpu){@YHLM>uT$5uy`aE_-xx=Wb_f1{-S4mxB~y+i*Z0vI#gWIS1&f zpZSGN3+;hgf%E~5yC6Kj{P8t*`~xAbAfTFU0nPMJr^)Nz{xemyaX)R=)tI~sXc}cw zVYQL=UuHb&lz))_L^k+IMqa+aYAEhtz9NkhWX+%YCi<<#m+|*0-=GxZU{b%r+)z`abA7>+@5_= zaq++A2cZ5F)MK6y|3oF^DkBc=$wroYuOXo`f{5m*Pn^3XrWJk=GbV!lG|!Y-`mbw zF@f@ew6XEp`@ns`4Sn0@!O{72rQA|ZOGWUGl;*my6uZwWF>SeW@Q;0gk`v%0*8`G> zQOI{KB{!cRsN^w}mbaef}j=`)L|sH-%~Y)tAs`z*Z|l z1)3kq&z@squxxvRk=0CmN4~z&iYDf`Yq7pAf=ytmZQ>%B(?gydI%`GFnx%ySq0oUG z&4`@rB+kIF8|7F`dFOV!P9St)yDfSD_mKA_hlGHDet)-Q?Fl%OQGvw_N?S9b`>n@6 z+n8b8LiXDJ+3dH6dznc-0DIkE?~CwFDcjJ1^^j$e^n(L!4OXy zSy+9y+pNJZCDSVBXxpqZr}S!FTV3o`C7_9|+^>Pi=ID638grG(F$;vvSK3pF`+Yk; zth?`RHtodlN~H-9a9RmPCs-qvVD-EHR}W;fD0->hQ&jQrkUsM6E88|~^BI=o2Kd(l zt8#+c2IqDf&zE(Re`Lo{r*zJPD^QrzpP2&gmfJ1rEpO*FTPh@_l!gw@I-sTl<#&pvR-YJ*@4vXf8BDRat^UZT&+6Y_%MzRL zuk8bc)c@5BpYE^sbeo#;d_WEANYypo!`bFF`dm7non8T3n_X+2?LBzBEw}%-?8nda zg84%<>MWb3+V|0m4|_#vrrZ0Oi$Zm^xom2`Ckjbd-H06KwDR$l&^cjAv?flgcOU(Ql^FE{J+I2Td| z)5*NP+24rd>3c83d2Ipl(b4^LC>JNES}W{!wdlO-*>rlQYgd(a5&^R5K;7u#L!uS9 z!xO-=Bx(WpGFPm|iU8)a=fp2=i_tsDdV9C5cE}naZUWwl_v@ZXfsF7|st(N3t}AdC zr9<}X(L$g;qbXY$2xtx0ckK&jB#x@=W}RzA;(7H0K*2BxaE=+QF$*h+0Ssae_9iE>tTrJfr6}BZ60jq`*D*;z=amIe_9lJvkrK#sA^#-89;X9PuKUxP zqx2%FMM^><$ms7q*`Q)MXbpKQVL?P~EMI*$Dkx@_)dsV`qP(KweV!{(x`a*a(~}>i zh{vxYCwD;cx2Tg1Dr-=sz4tkAsEihO(LjT6QIN*hdY+r6ahd^XXTCz;{_GD>DNgI4 z$q9I1VJD8>cC`G)b|H>>Zku%c1v4BvvLtGmn3%{pA6ZiB#<7{y1v_<8`#UsOrp-^b zG+eA?H2m3j~)bUtKF$;>y8k&Y3GfB%b%TrL_V-5M z{$o|7zuzn`TtH40KvhHTaH)oV!)piI*!Q&IMb{RPo-Tm&v;$)-_6-N zMPE3M{D%*Wy?uRq9lmYdi9ns~@ZnY-@TT+ggP~_+PDxC!n?5dDO&+&=>&67Zi-JA4 zfkMc}OPcQSe7R0ep2IsyBl=rtczG@d@cS6+Jl@= zg+hJ0#(hZqEjchDz=a=btgT^TPCU__RKx*5x8tdWdX-4Vc_lV63^U;(EwWTi3{~(o zR-esh43OtF#j8(ZCP5 zmSHWdLQ)rLpWc|fXse-;ethHw^J&;40ylk&7G%fxarpXD&EI^wOE?Sk3n8KGj~wth z+^(E37ax_%W2|;3e|MWkFKp21yx4ovu;~{NgyvM_u8&^oT_2;szmOBaxg9GMW58qa ziX%8P1!;9&y7%RqK@PBc-hxHBevQ6q3jkV!hLl_i8X!axynzm)z@pI9NjG16Ua7iKzu5hRjd4POW?lvn$hIII zRKF+h#wGS!w19RVCxgBr(vnN42g2}yc?W=s=3s0=O#RQioW1$y)Wo1@FeL%ovqm8N z-(#`v;s#xUK3t5u&}_`=$4!8W!3U)&T!1USV>O)dAQ;5!N1yyz|6w$dqg?1!Bs!=M z_zU?SC>wmim(!(BOzi)@j8Hf0;O!y0M&zVDgCp2aj2OQ*~UJ*bf` zi3YgwlY2SniKIJ(PA%#Z#Qu=ocXoz@FqN^x1QZY{r7(*`WZ+45XN;3Q`R4|9Aa=xR zWCxv~IjJ(sN)1{5=rwh$W=)4u*g&BIzXZg<^tKI?b&f7{Ar0e8YkDfhy4H!?Wl{)QC2<+`IFusF}OZ*+5{rsrYkjz>*$z z1wp}gG(n=BAxFUkgQWyYf3Agtz&___fM*|834(J3|0PZ7&95@G8F=OnA{n^<7XkcI z-U=HaZtXc53mvTJ&IenD&_MjQC$cb2Jhwr(2`C4Vd6!~`23VZ$AF)3l;C9oQJhjAH zfh&-ZGJ-<%myj{}@`ujqykKrTDE8GxZt6PK99JxSxM-M!lTsjDY9xi3fk2Ou0{Um8 z`}6rag2SS!8qoeI*E7rxQ-f9NCl<=;W>TOdh+QvN=E)$1td#E<_VY05hE#_yerOE; zLLlf`T`~dPCdc71(5Equ#Q1=^py!q{MRyf`;t;vvJMD>d@Hd(*cErm9C4~@tGXnah zw<_VUEwY+3o4dw}hei_O<7oGMg~3|`O2SJliPo(3qPbXR+;XeQaZd=#19Nnv$%G@| zNeY1Duo}_%U@;gqVyHEFjfzyN4+>L<)?U@80kb*MSeZB0H-1acIkdlVFmSs%N9%U5 z(!{J$x*b~H{!%<(vvUZPb1cU#(y;p>@VjJljI9aQ5sa~VPNcsKSIxU~*DN|szj@r_ zyI2Gbq%@)r6eXF-b-e3G*bxC2tag8+jO4j8*7*uOk6)#5?6_byx$&Du`kIaYc&(|0 zPAQ1`LkI&YJ;<@-v(>$&l-*u!R#LkoZ*v{PtQexe^{_A zgMP-=EL7P)Ltq^%fzMA>7LW0;$#Odff-TnQQX2%Lv6~F`elOu2JI>CI6*VP9)ZD?#-TeJjtgN)IZjwtqbZ5Gpe+fyQC6P|pWP*_*7?E$17%}+Jhe-&6*Iv`Mkq&bQK^^a;&r}~&UB$VS7Ec!V7O$`Kg4Ns{P;{D992*x8PuO4)2@j% z#jwx_{idV5Ru*Wpm9WDpBav>hG}*TFY7sg}wyELk8e~`@`{>`e&^lCa$lwHWB$_G= zVniUc@u;05ek&I!2l*>pRsh{wN$pkJ*sR|Q03^x$`xKqhsT)M9f#g*QgDCx zir(kj`8<=k!;;frheX zQQ{q?5URhC>&J8fqyBH()Ty3~9(gr=wKP`krHv369_k$vwCytZv^AE?=rZh6>Bf~S z#1=U^3r${gH*#?QKu#cc^ffC_7E6&Fy3fuF3J5%=C_1=JC!kR#96*_Fg z$Z~9}^xob2tDl!exF~zBNJ?R`15q6YqElay#0MLP)Gi5cgA~j3ohiPSw zreZP8jT~;aQG$Z_gI~8gnW$S!m-Cq~jbs#3mNP!kl2Bf;H<|xveXhPtpdrtpnU0Gz zcZIuTh5c&*^K%%(Q+?|4fkeQ+$Cil$3RnT55i|@2bCB%YwpRk%8+9 zqx3u5O$iSJ@Lo$R^gy)4$43YJvSq=Tsp8k;4oZ_b$m0G@&a`(cVr!jTD@MS zq@Z$qo&79esDjc_q0mu>jPJ@<=9SgM`pHaGgAXKxX;f%~(FNnGbWEXvT8t)|S9ze|g{tsq0h=1>0vV*_k28MKQB}7`A7jL1Ex0l>qO2G~jNsh4x z7nkKl;akqb$p@9ppJ5$b*l9NXf zLPy2PxT6#$g6;wz55X&pwCbxh2wPJ^TU$aI)25`|{J_^$Udg+jHW{R1eq#z5#Nw3*v8;*mk?*jD*hO!W!bKP@)K4&TkJ} zNVYiQOZ0^Bp)aLiXL8nfBPVC06&4G0cb|>BI2KEad#Jc@-EgLm5O*6JpeXCIuoJzi zPS#&;Og&j82b*e#R>>H;nCu=}PkRQb$>bnCV;Tne?jGS!oa4<(5EBxFZ=tB-rf-1r zY%B37)8eW_WoY@R?cbdA89Dif-Cyf>m*?}UxYeI!f9zI0b+q2K-P@hXRWL%JOEPxW zVx?Qfl5`7yiRQG1Jecd{J7Z9ju5UHmxXy;l5L!V#e?O$*@s2mj10Fgfonc;#9wbTD zQ;zA4V1P&(95fa7J>sJ;HZX*QjgJv&3|>B1S88{DB}Z;LXBUq-ZT5Oir-er77Q~da)`x~E<)yt0!4XM%m3h=*2 z^T*uYS319Px{P&)QfzXbdrZ3%{xlL1yn>XgU%!L;W8>md$3zf|;jO|LWg1UVwY_R_ z>D##PDNtN!LUxJV+&44{&rKtHE3Y*J{7~6-Z@Z~5(GshiD*{4<3%-cN$P$~UE@?&D?Twox{VCVY?;M)m$nod zxM{EjbubbTjv`?0lIo^KZuL+Fqj*LPHb4K8bM*-~g!Z50UZU_E*7!;~tg`JQ=T#Qf zN@r-ad%hZt{}|ppr2 zr9~%f+uuGBdaROsVhU#S)(Y-`Sbj~5Zft=!p?EoEaTM(K`f^d$)kXNB4t8ts1-c4I zX$vz~>wXl3lqLWA!o1Ojvac5yHv>C%%qeQF!Vg5eh}zcIMF-xUnkqdQimEH4B5Fy0 zmobkzAVVL}ZK7}>LJdwNYe0GDi9EpxC;nm7M0DPHY3A2vF7}IcT2(kl-4{k6y!!Q8 zXGVfDC+;qQ0C({drAi))W%q1|ph+aHLG`cqOo`8{l)IH#k)w4b$HalIJKAPp>A16d zC=54k+P9?3NYzqf(bW~^qR*VkRHpH3X2tn7Lt5uQpRgPGrnTQ7JR90Rc7*$YC$ZW^ zAwfm>z?mZ?gZeSH?lmi2#poz-gFbMW_P(7Db6h!fq!Y9M6pUa=2xX7 zO5i{NvX~sc(fwP=SQj5})&?q{9BxrIo1ojklL@la{@go>P``zd!MHHZwf`> zn%#+2llQaU{ww>&)r)%mm5)mz)3@q5bnTbsq%6jU#C~G>Mm4AV}7`U<>$U`eu+BbY(WjN7$Ja?$EbDP(q1DpKf3B=G;8M3?^Ngm@{_-_@Z%Q zV&xwkpJlFwtpQYGLZ$Im+v?SDNs zD`Iq%wfn55s=OZl zczSMO)%|RId9=%Tr^uzV0=&$%x7iB1`y|FLbbFkHhw5KG7CWMt8o67n%y;oPt9zo_ zx?(r_8frTu)QAms(@rWRXI3vWO1iCA%ZcI5+A`ZkspVbGO=GeotcR?jQ}w%us}f=T z%W8u%U1g;_ryB--zdd5@Rxx9lR3&AudrV1_Rjc(#c6MV*%vm@>2h5Fr&l+szjXMgp z+Cnt3Srn9`qN-g7gnz+5yeuytoi5ka4h6)Qfw@y|lyVO^TmwXM;;lbOEY=PQu@hwHnaI6$SN;n^rCttEU_fK}}x5yig$VTM`lIQyL(M0lOlL@OCnar~zBq-vYX6?%C*#g>bStSAW@^d28~E>KBCbepCTiJlJpVJe{|eU zzD^2adRR0OjY2rJo1l_(nB?L97A$u6l(Dzx?=|}wP1Qd5E6m=a?1z@+SOIE~w;}7) zzt>c;BjMN}Q}<(xdA6d>m(DUaJ2wVI|}NNZ@xRgyuSoQ#|u})A6@3f0kDQmuBHYpNR8n zYmrnlieJ8-2~fV_gg4CYygsv9-GAXUL!?S93*Lw=X1;HE7e4ssCo-s`$npjk~d^hdPeGChS}%-pIrWYW;* z8^{Z())&>znEZBPEKhiV!72Yy3fhOf?U(LC=s2>6L(mp#Y$rI0Ik&IDHyf@%;j1_7 zE-d$9?E&>m8yc*!BJE$sZ8Wakr_5|^h4iX6LblD#Yl67zWzu!18B52=)UPRaE=+_Pv@Y~X$MdUvF`eWhz! zxxzn!C{R1JP~htS-4S< ze1*OWgBHpW-i-&~{i&5|3UT?B?`G{s%AJeO{d!hUAsizzlTEvPd_vpQG;%Xw_46bo zCt5l@j#fyB7@MLv+JvluILhJ)v!b1fWTl#^*T_xwJ~6hGlezUk)VF%6D=?7iV$?PF zgq2`h-e*-yQ^Z$gp>qXC)jn#9P+j)QERq~Z0^uxkq1z_*j@d63zvO)QGb^@i==AR& z0zgRoeSSa)!OUv(X)M^-(n*iSw9JiVIIL=6dCrfXf=z#nWTRu=h8{!M(Oe@ZDOM0p z$wBY=8|S;Kq8{hxzSa0Yn)<=-J%Q3As->mW^bZ4JtS|-fvms^~qF~E(y4F4oo$Tc= zqq7EAZL$@<<(1D*_*=(R`hlqF{Rn|nA4Cw(?TQqY6$LEYHqk;f4?jKX_XSrEu4{UG zyct!ebYc3e-l|{`&`VKyO9+sUi%-+%udd|V7}Ao@Mcsc9M4WL?#0Hc7vLHO8>G9HkPhii>F(}^p<#xBd*1uI_rrW+hP}^TXYaMwdY*si!=-ps2JfNi za-Gq>rowD77T#MEu8z^2$z~}mCE7O;$KN^B+{wbSgSEZYdNnWtDN9Z}*^w`&&04A= z{N$!s+l0kYx0OZcKJd&&Z%E1CQ-ukh1{I#)d@E!2xMMDYG3e)e;&-3{A^WU<`$`wG zY0dnkB5gs;NAZyPf%p7;-;r4Xr$TaKMpaBlQsdycvkU1L3gY5}V+7O)ii@T9x93=+ zBq1y7vIVC)SfiwFA3d1hDlacDxS`=)|4_-?%7f*i_%6ByiP9T1s}1CU0LM2kwfSmQ z*;>TwZtCyTXp2X!xKvFzxRIIq2&jSz?b+6Kl=u+1m4DIPDb6uM zE)La9m`^vX(!4(gW%Gi(=J2`GdwmJMSjcR&>Rj`DbWAZS{2{}_gDCIe7sZ$pwsp)z z)pIbu3D{>h2iz91fZiwS8rI$3zXT1>{gj94zo)UyuzNYcwKrKO_XB~_9@&bdxD)B$ z0oUSv4ir6pS;x;|OI1xYb#8)sv8apr z(&SQ)2^!dj$89+KgRmmDM0qYryLh}$6t{BJXS-5VNUW0=JsD50e=9$=(?Gtz<7t;C z=ko*eA~7|*T_v3d+?bMC0_Qy6da+1&3dMthgPpF;1QZng@Sn5{41x{Xu(zVQI*01a zZPhh2B4c6*Lc*EA3F5`rm~~6Ug!{Wd3w@|4{smE|r0(>bqxCPnlciR^{u{@3_?j=; z#^`UP%?_NnERBB6wQr-vM5UfykM2g>nqqd?xe_|&rWro~>#u!FjWo4*9KfL7qJd8q z7l0Kwjpdj8AWCrP|ANNQCb)#~D2i!s9`dfF=opqq!`%7AKqYeQ>$TO;@I8h?h@xo| z^fs34H?5!`j^)JOV}5|$&(qf-YOU?l>VW=Q)1jZq1fg?tX4`w)U%Hg+CHKC$U92IK zh`%_qYuBKsDk|<6gf>`hi5Dg7?61<+@)PHM)Q_L$Mv?V=^5Uoe(8)3qZ!cl)o?7nk z;<>%^;N0uD2n@TCJ1X&~id6aYzXd^WjfBhpJ|(-G0TRXia}^ z1)S%oKlM7?o}MX=m4W(;9amzPbid#=Co3EiU&xk&f)KdvmeerG1(4+8sS;gJ17LS_ zPfIym+*urtPlvH}{8qT}(Aii9e!A$BhA+4W zQ;0f*Eymt*)LQ+ZU_0MMWjAv8?* z9xInu)QB;PH~CAk<)qSle%yb`F@T5dJ(kXc6HWXYQ%L7X?be>nX|Q5^wq$E&yDFg3 z>|H+LsK>3_%XmL9V0pD{>H1$4!i)T$W~MZvkup-DRIram0aOe_KXsw73S2H`sOpzb(I@ttwOJgLPhdqSIL zTf6mE)BxD&>e0-;tiJ2Gv{J@3DZpf)?HAWq(k6KwBuX&S*AIEvfa0#V#SbK@b{?c| zg@?&)ZSE!|;GWU;grgm?HRU_4notXQ+TzYTpeYr|YUN;Z4B(N?7aq*}*=ygf_j#oh zn0muYn2mOVzBeEhc`l--M~{j@kkqyeXTWWEi#MFeNUxvSuRFynwco!d+b%1i>Klx8 zt+g1}@;oY7O~}3QE|Bsl_!ppXe*^9dkSS3q;&DIgNC&~#%*=C$d|pN2!Qw~$GKKm1 zXn>@Mw$+V1T8`R}5KzjwLbKY1o`lvQmt1P31oS@eV#u)~GHt0J>j)q;FTcnNtnKj< zXDGfdG76MAXmXiP^!Y%lq@vb)mjjg9Hh=v46vBV8_nYh~%>?O}3jwTitjHBxIGTF4 zmin`72XkjhiAB%-d;oupEI#D!G~6Esp%;9>Ol8-J1x~l^G$Vn6x*1|Wti40xZyW9V zbqovxrvH8#0$NDgqs3|wGX4?VYGZy!_|mt*5iLC105a$LYW#TiaOYnFB&VqwCy6n( zj~++qr#KU=QOoIecF4HK+d@bdzAeQPd(`cfJ`?NOrIQ>3vzP=ZJ4r52BUX)h(MwBg z(#G?t%7Jq`Pu2Pth~SiST7o!ix==G=&SCMNJHqm>$FM0pUD@|onox7$(AO{&K7G6y zvZQA&PKZ}wLdwQTTx)U^?}R##0-raHcFX6%jruB*lI*|~!={T+O}DxYtyUUpmrzRa zlHekl;6e0TzM_N0%Bwu~EBZp7d|ZnMoU$`swamCO&^00~ zJKKH-wL9Yfbe}!#)i_Y5Q>(E?i3_-@C|`~80IK4nu~o!cuIJ_Us(D(FDtx9f7Umj` zcfWt1v3}XuH=qtuYxha{v{djsKb-W9JL9MSYPm}f-sR%k8dD+*2|&zZ=vjc6>kk1v zLryKma@vrhiC{5Ba`nD*0$Xb>2xD1IN{vTHpT3_iP%RoP;sm4I$qvO;;*yXsyjc9j zMFPFq(or%=w37bVL&~n-{Fc|^`G;n?z(3^7XB0Wk{r7~ z8UXmaqpxOFZ4>gU&sZl&qoNdQOa_FP0bBnRa3%I4{NU-tb$hu<7#S%~huzIC3a^hL zL8`Rl>j(Ge4|=UX48<3EPWKG%LvKR3IicgIgg=<@qh?`=<@Ayp<3?qMPWK1H#eij-@-)HX7?a3vG4d^an8p;l zATw>Br8-oz1*-1v5-zgONhujbJ>5=8rVq8O^;XZ~)|tR@nV#kWJZt}b$ej+xpZ0SAM)4Ri;tPgfbR^$#+>>8S%m?(ri8 z5C-Cq&bm4{5f6u?OK71?d9CXqC_bP7(DNFk6 z1S+=VtPGO}B#~dcNhm@ZvW&uLX%raBpUb}y1y{iXcCqG%jW(ytj;3#~FMZmr-?2Jh zUzmWB8G@c|Idt0#k53D|~ zgpwB)PEh#ys>d#nSd99$nub5T6;0TB1@{ddt+nV;t{VQ1xb!P&$I@!>`@7@CXGN!8 z_h9)h-uEqv*ZpOsnDkozqZlt=fcDAKLF9_P;Y1#5ElD&s1h#DbDzmp zd>HjQeRF)x|0w^=%?$!T5P-M${@<8gSSknaRH-_vlFOb&KJMTO75wldBT|?yks90K zM}Af|#Tt)G^|NJHINJrg0mz-6GkA;V%a_N4e~dtYy86QIpjNAmmH2^`DQGHo@xQ)3 zY~OmkYJ9zoO)f1VGnW&jfA=@qg}93NE0T1-&+kGeS94%ev3un`{MvEoRV@FszQZNd zU#Ks{oaX&t;TsO0hA6nw!u{<3t(?_pHCxP^>vaGE%(`;-a6c>cn&#=J*Q-A3>qo7( z;f&k^H~;-|K#5H&B=j*C?kC(|t7#;_Z;;G{SX;~E;x47Y;zO&_t$SLsS0o?kH}62~ zslmZJTB!Z?Yt-&geT~n9@&bHIZ?BTno#+aOq4iVFdY@DB|3*cw>&oCCb z-fns3wN~7HChU>FSA>0V1eY-6D?cW$E)D&7x`VPHgqow%h?%~uJ>FYJWEr=k z;Pf~_PocL*AB!|c_^#V^QtVwc8|5ot-eeGP+z5?Azw;7C$A~sxZMuwT z*MxU=Pme?Y+>?JW&igYVfz=1`pQ6MvCON;t$9D_~=oqp9?`Vm*$&phrO$p5@@^F3{ zX?rH`lXk8t8a!Sf5A-1*N?$NZy2lq3A`%7`g>aCk=bl=vf>S!L* zFj|h-xT9RxkM-=_D1&rfdwI@#MdGdAW9L!-BE41416$585qj}q3?yGPFZ=?&p9jlq zawrUB?dVfO`m4=s+kJSD0WFeI_aeh6Q_uA=;IVlR>tRD0DWCPXb(cybDgcdF>j(Z-)YQvg1PpFeSf zo13-!2V`hLAR;`xg6qp!o<0<;w-ZdXfWaj(UTy(s0*cecf3gpp7#0fu^M_1GySAYL zv!w<3-}rdiYI0Ii{MwpmHYkVfl}fpIuI~2^W}|$*h+(*k^k4GGBX^iugKMS9N58%E z@`+KI{bRoftArDSX%9b4(Q-Sf+c&^Tl^mV0Sw@HZS(#8@8FVfjSjzb!>?E5$DtEGE z4RX~HPFtZ)orCuBTiezio@Bb!%@&{U0Tw z!dVi&E^m)VSn;eyd-TI8%G8zz`aVSo%7xb)wW$Qwct>|qNNA{I+Pa0NHI*O$^*M2y zC;1s4|TKRuFo!2u<)i1XD4{RTRV^wC=T119X;kU~l}nzS7a<8hkH(>yUW#Q~jk z$=!~v9l;Uo&#qnt4+SJ80P&9UdRe`44tqjB(B)E#IQL_^Rymp8UPD%t-!DS$ zP-ME!O-j%R`;p_)4V)TdH**5ICkb#>0Rr(OyI!M89P;DcB1gNV1%+B*jcf<*ygx3w zAeWYzV_ry;Fc-Pzp$ZLqN1&GU=4VZ2E^mEYKbtj{cs@l-Co#W=4_k9x#RTaVBYu8! z(RUSy#w_A&0mYwv0+S=cQSzo5s{H*qH;L0_o~7OZ;Hs%w`h9p$ifCfhzD_?yZqq@% z=EK~q>4q{_?02%KOJAXHV2r)ER%(Ozs%bnJT=`lH0kYbo(drt>=Ofz5Y;h8g6ant% z!CDZ9`o0v5CF#waEhda<%dWf5ylbT8@fZ_SWXX!R(azPIjlOwACP|Z%oe8G@wfFwgL z#p7*il!BJ@D+%S}|K)5xXM}kAcm5$|Bbo!p9Y5J+xYH#&wx|RPPtLw+m$OGTBOPZ4 zNJqy-Sgk0Q;6ZbHS;quOG2guD+v-8&@dO(`!!8M3u1QBYA7)j%Om+v)KYTw55oil+ zLH|mEi3gnOc5IU`LfmHNY)Yb8lzu>JqaSBlG^NO-%P~I__XAQyaxh)$RAHV zQ}?ob>S@W9Ni8QW6aaozNBBPtZxXhVQT~lQ6~gA0h3Lfj1xU7*($Od*=r-glc~@S& zo~@&%Q<%e0!IyR|hOTKFQfNPElz%ZZNBtnc!$VHku*)y~QOFF|`Xa&d83~D&FYt%e z5l0|W2of6YJKWEl=iXdx9(tB9lOi`4`-%Fi%ggH-IhTiC7azAr&c-f$5B)Ybp`DgF zZo&wG0v&K_XLp^RS0VtS>#vpLr3+NvH4>CO4ns$0RFZ7|4cd1TymfojYoeh#39I(h zC%cr30@X7#KOxrV1Uu^ae`5U5VM|RhtD2E6*eaZ1M7Que;z1_1w{_3sKsm9ni9$-5 zoa49yUnb&dex7+1`YCST@{5UpgjxVDGr))W7ET$q`Eu{Vu6xS`Y`D0pATM&x)+0VY zR8Vyq_30X6c#{*t2+jw?Y8-_WQ0#}P$WN<{e2b)B1+pvCO>QX}sD#rnbLB;p+TV_W zf^ZaKCq_jiyH;X(oslDxIk^YUemHYZB88N9sRUP%v2G&=RPaW_-&JNu|2+OEAVdcI zLw&c$_25d!oQg}lF6UhfAjjq0@VzncvuugOzDL+gC1Jf6BjSjDdDFkkBDmh)Cspbk ztZ&9)j<$N2Fi_1!8HV`B}roqn9Bk?Trcl_@+P1S>V9 z(^Ing!xoatY<-F}mqhgo4dcRao}i^cIOdlx$=AZ>35ls40(=rI3wqE@_6v%+Yfdo>9@3C~42;qowcD#7rYT+aP<&A5- zY%(1Cv4MHyz@Id#I#H$}uE1n0-K8lnq=HPuJ!UOt*SM>4D4LiD*aXu@?nv;cR}MXcln)y6V_=?#0ZV<$9J5}WQb^}R5Z0U8jD^}gurCS z#vfRi*KeXReZ!r1Ccd{wp9!SrF1Qjr?YhfNH+0+?Hh(!{yZO6FOLeR~TWfRV`%3E9 zS{-Th+M2VlHi?YsXWO1~cH&zYExv*;Jp{#=)gGv(TQPKWmn--8o_}eUXU=ToYP*k2 z{Mi}Kc?C8INfa`g63=77S^FjrlNkUa6^i}HZsBs~3#g-B%dl!=StLW*W8c4LF) z3qNPLtHNFF#Po?E-c~l4h*s#A7dJ#zI)4+MQX z-wV+XpBPN=ebLke+n6Wt6z5f?nov*$FaTj6-Pu|R&g{ry8ziHs%@v52>Vm6OJfvS+ zLvZ{!BhK!vN?ijs{$z5bcj{;%DgMPMy0M9>x4GKT0l+k%&pE+eU@ z(kgy(#h1AnLyR$2HrL-o6e@Nc2<|A{49GNW#j2ff;5B{PNm(=L37n#_!-o*^ONdTh z@vG2%b5yzyza8*i5t#;|n=r;CoYXH6TmP%%%(JFhFd57{8W^Z76uzT>KbaX5pXGJgsjT zP9)3e4lGZ>WhDG;9^#-sT7Lzn*(Cc_SqtN_U?qiYxzF`O#GPI3R@mhsLv#- zwz`=DdDqhU&jz;iR@$)j52_cv9gV_iwTg4mIOG;3wDu3|GK@|38ZyA!}P=$A%VcY==>J{_)1)F zc^TH?dZ_!N1sM6ls9{Ho*J8%^e)$FM?R?6oU9(o6q8ZHtgX$l=s*};(2SlW?km2}K zn8HnNeXl7pjj|jCzylf=e_1HtVuLykj(y;b(9)lUx&4vzg?$`)G%fD)2sQM8oh^Rh z_rsBl$${6cWapQ`C+VZpO5ac!Ule5(>&%)yIZJ>ZZ~bI@bNGt-u>SA~{SuK7psGTM z&2x`d1Z`MnI=)I$Jneb}?t88A2VDryd*4fs;B}`x~-9KLD5A0e{OI#q;49=7e;Xa}^8LYuspOByY?CnHH*w4JBP$8yGN9d1@**xsQ)4(+pPU|WRrdAX>PNuX z7ow{>{6ph0PARTqJ9#6wd5+TRO*5A=3uT<=x;lalsbmCTZ;4EeMh~#&_hm3=;g~5J zpi`3)V>Ic(;V0{FG^W5H|9>rj9H-o`mgzHsj##)Cs}m*`mV5n#N!yUk7~&tj0yGzE z$G(fBVAZJ7gGD-ZJ3sLIkgUaY{Yq6uj$3}yX4)=q;kJ9XOiZXj`L>9N$n3oqIl10d zTGyKG`&-TAR3c}eb@sBVDhWeFLs?zOMj`s+fG|!OD2oXOcRJs7@(L6AUTugS|I|7? z3imzz#hQ#C%Gq~{eBJs(XA&-yGS2=gn&Dl52_yf&8tjuCTcar0v_A+-9;K_$v4aJ8 zeXK*GLW8eancm;JWwLLqUeV*DA%UmmsDIyaz24-h7BspCM{a4U>+6qbKGjJpEsl<* zccQBrBK!WHFLSKVn#1ZV+DywdY=^H@%;l>;G3@o_!CFvdj*~u%zAG&MMD3rgmPxVflOe*OS1;$T+!nYZ~K0H*F&_ z?C^rS^>&<}yAh#zZB8|j<$lv?2JAng%q*w-5lki;ywOV)wir@w&axWM?FP=<0$qQ#&YRM z!5KQMOT!^pgx5&@x9^=p{JfL&o$AL|Uhy*yzMy~`zfC#OrA!me*P{prNgkD>tHb&T z)h1i6QMW~daDc%rE|KyY(&lzG7W_6BqWB$I8z-C9VjR*(hs30Wp;d?TQsM;YyD3_RJWf z!Ntw=)dhWU96x#9v*=?K>us$UZ_EYEMMrAufX9!Tj6BPECz9!i?UK^(cG`10l(^32 z-QC?dV^t^`%$Y>6id9)oMhZ{k{{6%9bp9ho{-cIYsw%13_!}8Ved!g!Z?j^DN1Bkr z?hm2e#CmGE*!j!PfuC8=>JJP&T#otnNwGBGe8FtU8*^W?#`&%!xd0T?Rvh}N@L8gphG3z9$7C;9$>y;ca->dCVExUv4wv$HDe?y^j0%A3k}aycoE3sGM*6KTdsD?d7)2ufjN>7 zojZ4@IM{<+EMa8lQhmIOg$Gp_xYo)-;LuCNe=35@XlpZnmI*a)t0hf&u+1mDOuxVs~X-1Phcm1Y!l<1JiN&`^Sau~4+iZ% zo^J6C7JkZTWhw(75TEAh)MMO6Og#{3l0ml}^`l|~pxBwYT|-AQpDG*Vk^*1V6uLs$ z6L<^qwrarDDI71!0%pX!&nB18D@@fxVXG=q#xRo(y$QYaoyI>F7zi#36q=g*%q+wH z@R8{V7FA44VE}N<%-GRG0T(AymQn^~=(fWjHp;I0jit~)*-G1!5Quk-9%br2jr5sE zvAs8sK=Hc5D<}C+HUm>SF2oV82(GHwzzh+JHHJjW7iysGS||xDyTlk@tSv*DLFQpgGtCthe0_bUnNPXMIJl?QePMbkA7`T< zPB8A$*Qh*bu66>f9=bg=7C|mTxA+uqUryn&(TrvObp3nG|6`>Gd6#L_A(GGWSC{j+R-PU#}rjoH9YK1m?{ z4+9GwxQPZ3yX{q_iE#fQ#9kxzCU?vq#2PQkQPca5qL1~_AU8wbtLVJZ6TGnuUPRY} zF+Nhr6kBZJv8OBwm~ z1q3}SfB2AIa;*3UK=!JWiu((`?c*U0uvjGSo7COegx^AH(d1kvxjaf#?hBy(!3FOr zv>TwaX~S#Lv|n3aievQHTkyEh6gP218`1KlW$2Y4Q#r`pc@;~)FUy^*0(u5QOD!Xtn*PpxXyR+Sd)`EoeviuG|I(inSl$3NxYba z#dDyJQvK{)49c>t3yU*n>n_c`j?bpWeU~XTyu|s12Kt2!y;abIc7{BdERvQ8LDcY9 zD|AjxItlu^m%eNS|EnumA8#G{Q6jo{A6ZBP4FK`=DGM4z-b_H{Y^WH4&@KfM^sh9X`N0>}l_24bq;#JM#Nf1Ie>4{UC!|G&?j?vInVqaZb`HOSE%4mHL9n|`O9U@cXvvudC zCfY)ee{+E`yj*24Z*6 zr4v3QT0_R4!^o?8C;i=3bYFtdp5>@J2mzWz(?B4OX{@^=y#HM}2FFXsyX0hoVUyu8 zM;J@$lrlXJ;iae$<>YkWr8}k{??EMBCtnMpxe~IZGfh>mR$@5M%^#lA)B0NIuq*d& z`Z05cHWEL2KYeOd3VrIO7;?8Doc4yoOMaU0GaE=qBRC~oE}ls}G{8@)o(cw7&%*+V)Lt1e*f%l{rle?Vui zP~VS_SNeh-atoy&ao$0o^v*PY=&Jc}QhYSO-OIaj-=ve4rW;^8<_<9%C* zR&G+|fL2DSlbEf2dK6gJ)aUy9xPDpH-5dJwua^TTEKvJHX6tLMrs@BqPlIB9f>=eV zxEz|dT?mMZJB?UL+YPz=uaoNQodgJA9nAMDH8mPl_}v_E*hpYKIF3}9#R%)hcqO;? zqiHwdkKzJf6$Xpk8uEkecBa8|BdqGp88FT;1D8zTW_*QqA2qiHle7pq$7+%IL#ekW z4B#b3?~mpU#tIq+u6yL=&Xp6`o7eA&L-J~*j;&Tc+Cr!Md40rh15t|G4Em>`^XQ)f^D{& zh=?L5+~ewkY-FJ&=Mi^*AlP0+Z#AVi6HT3rc%V)tVLyg9pBM(IoXgmkeiuC5p2zrj zXI?$uD1xs?6~Py6<+Wa}9KG9UbP1)M>o(uMb%Ip=^Zf4nx5ER7nDUpdNrrgQI`!=3%K&7Hr>0CH}(#`md<$Lo5J{rfo-@3d;DHA_XZp=kaL@|0!%0DJz@ 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 literal 0 HcmV?d00001 From 202bddc95f30e3be2561465b194a8f704052c55e Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sat, 25 Nov 2023 06:24:17 -0500 Subject: [PATCH 04/32] WIP: * add chaos engineering menu and its options * fix fault options docs * add fault strategy docs * document common options across chaos strategies * remove chaos engineering option from the advanced menu --- docs/advanced/simmy.md | 6 - docs/chaos/fault.md | 138 ++++++++++++++++++ docs/chaos/index.md | 10 ++ docs/toc.yml | 14 +- .../Simmy/Fault/FaultStrategyOptions.cs | 4 +- 5 files changed, 162 insertions(+), 10 deletions(-) delete mode 100644 docs/advanced/simmy.md create mode 100644 docs/chaos/fault.md diff --git a/docs/advanced/simmy.md b/docs/advanced/simmy.md deleted file mode 100644 index 4bdbc2ff8b0..00000000000 --- a/docs/advanced/simmy.md +++ /dev/null @@ -1,6 +0,0 @@ -# Chaos engineering with Simmy - -[Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of policies to selectively inject faults or latency. -Head over to the [Simmy][simmy] repository to find out more. - -[simmy]: https://github.com/Polly-Contrib/Simmy diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md new file mode 100644 index 00000000000..0b47be5839c --- /dev/null +++ b/docs/chaos/fault.md @@ -0,0 +1,138 @@ +# Fault monkey strategy + +## About + +- **Options**: [`FaultStrategyOptions`](xref:Polly.Simmy.Fault.FaultStrategyOptions) +- **Extensions**: `AddChaosFault` +- **Strategy Type**: Proactive +--- + +The fault chaos strategy is designed to introduce faults (exceptions) into the system, simulating real-world scenarios where operations might fail unexpectedly. It is configurable to inject specific types of exceptions or use custom logic to generate faults dynamically. + +## Usage + + +```cs +// Fault using the default options. +// See https://www.pollydocs.org/chaos/fault#defaults for defaults. +var optionsDefault = new FaultStrategyOptions(); + +// The 60% of calls will be randomly affected. +var basicOptions = new FaultStrategyOptions +{ + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.6 +}; + +// To use a custom function to generate the fault to inject. +var optionsWithFaultGenerator = new FaultStrategyOptions +{ + FaultGenerator = static args => + { + Exception? exception = args.Context.OperationKey switch + { + "DataLayer" => new TimeoutException(), + "ApplicationLayer" => new InvalidOperationException(), + _ => null // when the fault generator returns null the strategy won't inject any fault and it will just invoke the user's callback + }; + + return new ValueTask(exception); + }, + Enabled = true, + InjectionRate = 0.6 +}; + +// To get notifications when a fault is injected +var optionsOnFaultInjected = new FaultStrategyOptions +{ + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.6, + OnFaultInjected = static args => + { + Console.WriteLine("OnFaultInjected, Exception: {0}, Operation: {1}.", args.Fault.Message, args.Context.OperationKey); + return default; + } +}; + +// Add a fault strategy with a FaultStrategyOptions{} instance to the pipeline +new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); +new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); + +// There are also a couple of handy overloads to inject the chaos easily. +new ResiliencePipelineBuilder().AddChaosFault(0.6, new InvalidOperationException("Dummy exception")); +``` + + +Example execution: + + +```cs +var pipeline = new ResiliencePipelineBuilder() + .AddChaosFault(new FaultStrategyOptions // monkey strategies are usually placed innermost in the pipelines + { + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.6 + }) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = new PredicateBuilder().Handle(), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, // Adds a random factor to the delay + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); +``` + + +## Defaults + +| Property | Default Value | Description | +| ------------------ | ------------- | -------------------------------------------- | +| `OnFaultInjected` | `null` | Event that is raised when the fault is injected. | +| `FaultGenerator` | `null` | Generates the fault to inject for a given execution. | +| `Fault` | `null` | The fault to inject. | + +## Diagrams + +### Happy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant F as Fault + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>F: Calls ExecuteCore + F->>+D: Invokes + D->>-F: Returns result + F->>P: Returns result + P->>C: Returns result +``` + +### Unhappy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant F as Fault + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>F: Calls ExecuteCore + F-->>F: Determines Fault Injection + Note over D: The user's Callback is not invoked when a fault is injected + F->>P: Throws injected Fault + P->>C: Propagates Exception +``` + +## Patterns + + +## Anti-patterns diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 1b7f731642d..2c4433e7a91 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -36,5 +36,15 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili ## Usage It is usual to place the Monkey Strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. +## Common options across strategies +All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.Simmy.MonkeyStrategyOptions) class as it contains the basic configuration for every monkey strategy. + +| Property | Default Value | Description | +| ------------------------- | ------------- | -------------------------------------------- | +| `InjectionRate` | 0.001 ms | A decimal between 0 and 1 inclusive. The strategy will inject the chaos, randomly, that proportion of the time, eg: if 0.2, twenty percent of calls will be randomly affected; if 0.01, one percent of calls; if 1, all calls. | +| `InjectionRateGenerator` | `null` | Generates the injection rate for a given execution, which the value should be between [0, 1] (inclusive). | +| `Enabled` | `false` | Determines whether the strategy is enabled or not. | +| `EnabledGenerator` | `null` | the enable generator that indicates whether or not the chaos strategy is enabled for a given execution. | + [simmy]: https://github.com/Polly-Contrib/Simmy diff --git a/docs/toc.yml b/docs/toc.yml index a33dab8ea79..c46e9d6eabb 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -24,6 +24,18 @@ - name: Circuit breaker href: strategies/circuit-breaker.md +- name: Chaos engineering + href: chaos/index.md + expanded: true + items: + - name: Fault + href: chaos/fault.md + - name: Result + href: chaos/result.md + - name: Latency + href: chaos/latency.md + - name: Behavior + href: chaos/behavior.md - name: Resilience pipelines href: pipelines/index.md @@ -45,8 +57,6 @@ href: advanced/performance.md - name: Testing href: advanced/testing.md - - name: Chaos engineering - href: advanced/simmy.md - name: Extensibility href: extensibility/index.md diff --git a/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs b/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs index 23b4e2a0b36..e3ddb3fea7e 100644 --- a/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs +++ b/src/Polly.Core/Simmy/Fault/FaultStrategyOptions.cs @@ -14,7 +14,7 @@ public class FaultStrategyOptions : MonkeyStrategyOptions public Func? OnFaultInjected { get; set; } = default!; ///

- /// Gets or sets the outcome generator to be injected for a given execution. + /// Gets or sets the fault generator to be injected for a given execution. /// /// /// Defaults to . Either or this property is required. @@ -23,7 +23,7 @@ public class FaultStrategyOptions : MonkeyStrategyOptions public Func>? FaultGenerator { get; set; } = default!; /// - /// Gets or sets the outcome to be injected for a given execution. + /// Gets or sets the fault to be injected for a given execution. /// /// /// Defaults to . Either or this property is required. From 6db206fdbfaf15af4d351645ae2ea52a5c9eb79f Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sun, 7 Jan 2024 12:29:02 -0500 Subject: [PATCH 05/32] add latency monkey docs --- docs/chaos/behavior.md | 124 +++++++++++++++++++++++++++++++++++++++++ docs/chaos/fault.md | 11 ++-- docs/chaos/index.md | 4 +- 3 files changed, 132 insertions(+), 7 deletions(-) create mode 100644 docs/chaos/behavior.md diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md new file mode 100644 index 00000000000..463cedb20ca --- /dev/null +++ b/docs/chaos/behavior.md @@ -0,0 +1,124 @@ +# Behavior monkey strategy + +## About + +- **Options**: [`BehaviorStrategyOptions`](xref:Polly.Simmy.Behavior.BehaviorStrategyOptions) +- **Extensions**: `AddChaosBehavior` +- **Strategy Type**: Proactive +--- + +The behavior chaos strategy is designed to inject custom behaviors into system operations right before such an operation is invoked. This strategy is flexible, allowing users to define specific behaviors such as altering the input, simulating resource exhaustion, putting the system in a given state before the actual operation is called, or other operational variations to simulate real-world scenarios. + +## Usage + + +```cs +// Behavior using the default options. +// See https://www.pollydocs.org/chaos/behavior#defaults for defaults. +var optionsDefault = new BehaviorStrategyOptions(); + +// To use a custom function to generate the behavior to inject. +var optionsWithBehaviorGenerator = new BehaviorStrategyOptions +{ + BehaviorAction = (_) => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.6 +}; + +// To get notifications when a behavior is injected +var optionsOnBehaviorInjected = new BehaviorStrategyOptions +{ + BehaviorAction = (_) => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.6, + OnBehaviorInjected = static args => + { + Console.WriteLine("OnBehaviorInjected, Operation: {0}.", args.Context.OperationKey); + return default; + } +}; + +// Add a behavior strategy with a BehaviorStrategyOptions{} instance to the pipeline +new ResiliencePipelineBuilder().AddChaosBehavior(optionsDefault); +new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); + +// There are also a handy overload to inject the chaos easily. +new ResiliencePipelineBuilder().AddChaosBehavior(0.6, RestartRedisVM); +``` + + +Example execution: + + +```cs +var pipeline = new ResiliencePipelineBuilder() + .AddChaosBehavior(new BehaviorStrategyOptions // monkey strategies are usually placed innermost in the pipelines + { + BehaviorAction = (_) => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.6 + }) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = new PredicateBuilder().Handle(), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, // Adds a random factor to the delay + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); +``` + + +## Defaults + +| Property | Default Value | Description | +| --------------------- | ------------- | -------------------------------------------- | +| `OnBehaviorInjected` | `null` | Event that is raised when the behavior is injected. | +| `BehaviorAction` | `null` | Custom behavior to be injected. | + +## Diagrams + +### Happy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant B as Behavior + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>B: Calls ExecuteCore + activate B + B-->>B: Determines Behavior Injection + deactivate B + B->>+D: Invokes + D->>-B: Returns result + B->>P: Returns result + P->>C: Returns result +``` + +### Unhappy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant B as Behavior + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>B: Calls ExecuteCore + activate B + B-->>B: Determines Behavior Injection + B-->>B: Inject Behavior + deactivate B + B->>+D: Invokes + D->>-B: Returns result + B->>P: Returns result + P->>C: Returns result +``` + +## Anti-patterns +❌ Do not use it to inject delays, use the latency monkey instead as the Latency Chaos Strategy already correctly handles synchronous/asynchronous delay executions, cancellations, etc. diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 0b47be5839c..45a07313614 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -109,6 +109,9 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>F: Calls ExecuteCore + activate F + F-->>F: Determines Fault Injection + deactivate F F->>+D: Invokes D->>-F: Returns result F->>P: Returns result @@ -126,13 +129,11 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>F: Calls ExecuteCore + activate F F-->>F: Determines Fault Injection + F-->>F: Inject Fault + deactivate F Note over D: The user's Callback is not invoked when a fault is injected F->>P: Throws injected Fault P->>C: Propagates Exception ``` - -## Patterns - - -## Anti-patterns diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 2c4433e7a91..184b877eea2 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -28,10 +28,10 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili ## Built-in strategies |Strategy| Reactive| What does the policy do?| | ------------- |------------- |------------- | -|**[Fault](#Inject-exception)**|No|Injects exceptions in your system.| +|**[Fault](fault.md)**|No|Injects exceptions in your system.| |**[Result](#Inject-result)**|Yes|Substitute results to fake outcomes in your system.| |**[Latency](#Inject-latency)**|No|Injects latency into executions before the calls are made.| -|**[Behavior](#Inject-behavior)**|No|Allows you to inject _any_ extra behaviour, before a call is placed. | +|**[Behavior](behavior.md)**|No|Allows you to inject _any_ extra behaviour, before a call is placed. | ## Usage It is usual to place the Monkey Strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. From a60a1e000359edd9b0412998bf2334e29267fd86 Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sun, 7 Jan 2024 14:08:14 -0500 Subject: [PATCH 06/32] add latency docs --- docs/chaos/behavior.md | 10 +-- docs/chaos/fault.md | 4 +- docs/chaos/index.md | 2 +- docs/chaos/latency.md | 141 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 docs/chaos/latency.md diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 463cedb20ca..385d834211b 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -11,7 +11,7 @@ The behavior chaos strategy is designed to inject custom behaviors into system o ## Usage - + ```cs // Behavior using the default options. // See https://www.pollydocs.org/chaos/behavior#defaults for defaults. @@ -49,7 +49,7 @@ new ResiliencePipelineBuilder().AddChaosBehavior(0.6, RestartRedisVM); Example execution: - + ```cs var pipeline = new ResiliencePipelineBuilder() .AddChaosBehavior(new BehaviorStrategyOptions // monkey strategies are usually placed innermost in the pipelines @@ -74,8 +74,8 @@ var pipeline = new ResiliencePipelineBuilder() | Property | Default Value | Description | | --------------------- | ------------- | -------------------------------------------- | -| `OnBehaviorInjected` | `null` | Event that is raised when the behavior is injected. | -| `BehaviorAction` | `null` | Custom behavior to be injected. | +| `OnBehaviorInjected` | `null` | Action executed when the behavior is injected.| +| `BehaviorAction` | `null` | Custom behavior to be injected. | ## Diagrams @@ -121,4 +121,4 @@ sequenceDiagram ``` ## Anti-patterns -❌ Do not use it to inject delays, use the latency monkey instead as the Latency Chaos Strategy already correctly handles synchronous/asynchronous delay executions, cancellations, etc. +❌ Do not use it to inject delays, use the latency monkey instead as the [LatencyChaosStrategy](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 45a07313614..14215cb532e 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -67,7 +67,7 @@ new ResiliencePipelineBuilder().AddChaosFault(0.6, new InvalidOperationException Example execution: - + ```cs var pipeline = new ResiliencePipelineBuilder() .AddChaosFault(new FaultStrategyOptions // monkey strategies are usually placed innermost in the pipelines @@ -92,7 +92,7 @@ var pipeline = new ResiliencePipelineBuilder() | Property | Default Value | Description | | ------------------ | ------------- | -------------------------------------------- | -| `OnFaultInjected` | `null` | Event that is raised when the fault is injected. | +| `OnFaultInjected` | `null` | Action executed when the fault is injected. | | `FaultGenerator` | `null` | Generates the fault to inject for a given execution. | | `Fault` | `null` | The fault to inject. | diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 184b877eea2..ceca7543396 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -30,7 +30,7 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili | ------------- |------------- |------------- | |**[Fault](fault.md)**|No|Injects exceptions in your system.| |**[Result](#Inject-result)**|Yes|Substitute results to fake outcomes in your system.| -|**[Latency](#Inject-latency)**|No|Injects latency into executions before the calls are made.| +|**[Latency](latency.md)**|No|Injects latency into executions before the calls are made.| |**[Behavior](behavior.md)**|No|Allows you to inject _any_ extra behaviour, before a call is placed. | ## Usage diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md new file mode 100644 index 00000000000..f6806cc43cc --- /dev/null +++ b/docs/chaos/latency.md @@ -0,0 +1,141 @@ +# Latency monkey strategy + +## About + +- **Options**: [`LatencyStrategyOptions`](xref:Polly.Simmy.Latency.LatencyStrategyOptions) +- **Extensions**: `AddChaosLatency` +- **Strategy Type**: Proactive +--- + +The latency chaos strategy is designed to introduce controlled delays into system operations, simulating network latency or slow processing times. This strategy helps in assessing and improving the resilience of applications against increased response times. + +## Usage + + +```cs +// Latency using the default options. +// See https://www.pollydocs.org/chaos/latency#defaults for defaults. +var optionsDefault = new LatencyStrategyOptions(); + +// The 60% of calls will be randomly affected. +var basicOptions = new LatencyStrategyOptions +{ + Latency = TimeSpan.FromSeconds(30), + Enabled = true, + InjectionRate = 0.6 +}; + +// To use a custom function to generate the latency to inject. +var optionsWithLatencyGenerator = new LatencyStrategyOptions +{ + LatencyGenerator = static args => + { + TimeSpan latency = args.Context.OperationKey switch + { + "DataLayer" => TimeSpan.FromMilliseconds(500), + "ApplicationLayer" => TimeSpan.FromSeconds(2), + _ => TimeSpan.Zero // when the latency generator returns Zero the strategy won't inject any delay and it will just invoke the user's callback + }; + + return new ValueTask(latency); + }, + Enabled = true, + InjectionRate = 0.6 +}; + +// To get notifications when a delay is injected +var optionsOnBehaviorInjected = new LatencyStrategyOptions +{ + Latency = TimeSpan.FromSeconds(30), + Enabled = true, + InjectionRate = 0.6, + OnLatency = static args => + { + Console.WriteLine("OnLatency, Latency: {0}, Operation: {0}.", args.Latency, args.Context.OperationKey); + return default; + } +}; + +// Add a latency strategy with a LatencyStrategyOptions{} instance to the pipeline +new ResiliencePipelineBuilder().AddChaosLatency(optionsDefault); +new ResiliencePipelineBuilder().AddChaosLatency(optionsWithLatencyGenerator); + +// There are also a handy overload to inject the chaos easily. +new ResiliencePipelineBuilder().AddChaosLatency(0.6, TimeSpan.FromSeconds(30)); +``` + + +Example execution: + + +```cs +var pipeline = new ResiliencePipelineBuilder() + .AddChaosLatency(new LatencyStrategyOptions // monkey strategies are usually placed innermost in the pipelines + { + Latency = TimeSpan.FromSeconds(10), + Enabled = true, + InjectionRate = 0.6 + }) + .AddTimeout(TimeSpan.FromSeconds(5)) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = new PredicateBuilder().Handle(), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, // Adds a random factor to the delay + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); +``` + + +## Defaults + +| Property | Default Value | Description | +| --------------------- | ------------- | -------------------------------------------- | +| `Latency` | `30 seconds` | A timestamp indicating the delay to be injected. | +| `LatencyGenerator` | `null` | Generates the latency to inject for a given execution.| +| `OnLatency` | `null` | Action executed when latency is injected. | + +## Diagrams + +### Happy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant L as Latency + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>L: Calls ExecuteCore + activate L + L->>L: Determines Latency Injection + deactivate L + L->>+D: Invokes + D-->>-L: Returns result + L->>P: Returns result + P->>C: Returns result +``` + +### Unhappy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant L as Latency + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>L: Calls ExecuteCore + activate L + L->>L: Determines Latency Injection + L-->>L: Inject Latency + deactivate L + L->>+D: Invokes + D-->>-L: Returns result + L->>P: Returns result + P->>C: Returns result +``` From 4b0a1ac367288f39d3b2cc1977301690815aa3f9 Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sun, 7 Jan 2024 19:30:30 -0500 Subject: [PATCH 07/32] add outcome docs --- docs/chaos/index.md | 2 +- docs/chaos/result.md | 140 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 docs/chaos/result.md diff --git a/docs/chaos/index.md b/docs/chaos/index.md index ceca7543396..23bff4e08ea 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -29,7 +29,7 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili |Strategy| Reactive| What does the policy do?| | ------------- |------------- |------------- | |**[Fault](fault.md)**|No|Injects exceptions in your system.| -|**[Result](#Inject-result)**|Yes|Substitute results to fake outcomes in your system.| +|**[Result](result.md)**|Yes|Substitute results to fake outcomes in your system.| |**[Latency](latency.md)**|No|Injects latency into executions before the calls are made.| |**[Behavior](behavior.md)**|No|Allows you to inject _any_ extra behaviour, before a call is placed. | diff --git a/docs/chaos/result.md b/docs/chaos/result.md new file mode 100644 index 00000000000..61f996d0eb7 --- /dev/null +++ b/docs/chaos/result.md @@ -0,0 +1,140 @@ +# Outcome monkey strategy + +## About + +- **Options**: + - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Behavior.OutcomeStrategyOptions) + - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Behavior.OutcomeStrategyOptions`1) +- **Extensions**: `AddChaosResult` +- **Strategy Type**: Reactive +--- + +The outcome chaos strategy is designed to inject or substitute fake results into system operations. This allows testing how an application behaves when it receives different types of responses, like successful results, errors, or exceptions. + +## Usage + + +```cs +// Outcome using the default options. +// See https://www.pollydocs.org/chaos/result#defaults for defaults. +var optionsDefault = new OutcomeStrategyOptions(); + +// To use a custom function to generate the result to inject. +var optionsWithResultGenerator = new OutcomeStrategyOptions +{ + OutcomeGenerator = static args => + { + HttpStatusCode result = args.Context.OperationKey switch + { + "A" => HttpStatusCode.TooManyRequests, + "B" => HttpStatusCode.NotFound, + _ => HttpStatusCode.OK + }; + return new ValueTask?>(Outcome.FromResult(result)); + }, + Enabled = true, + InjectionRate = 0.6 +}; + +// To get notifications when a result is injected +var optionsOnBehaviorInjected = new OutcomeStrategyOptions +{ + OutcomeGenerator = (_) => new ValueTask?>(Outcome.FromResult(HttpStatusCode.TooManyRequests)), + Enabled = true, + InjectionRate = 0.6, + OnOutcomeInjected = static args => + { + Console.WriteLine("OnBehaviorInjected, Outcome: {0}, Operation: {1}.", args.Outcome.Result, args.Context.OperationKey); + return default; + } +}; + +// Add a result strategy with a OutcomeStrategyOptions{} instance to the pipeline +new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); +new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); + +// There are also a couple of handy overloads to inject the chaos easily. +new ResiliencePipelineBuilder().AddChaosResult(0.6, HttpStatusCode.TooManyRequests); +``` + + +Example execution: + + +```cs +var pipeline = new ResiliencePipelineBuilder() + .AddChaosResult(new OutcomeStrategyOptions // monkey strategies are usually placed innermost in the pipelines + { + OutcomeGenerator = static args => + { + HttpStatusCode result = args.Context.OperationKey switch + { + "A" => HttpStatusCode.TooManyRequests, + "B" => HttpStatusCode.NotFound, + _ => HttpStatusCode.OK + }; + return new ValueTask?>(Outcome.FromResult(result)); + }, + Enabled = true, + InjectionRate = 0.6 + }) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); +``` + + +## Defaults + +| Property | Default Value | Description | +| --------------------- | ------------- | -------------------------------------------- | +| `OutcomeGenerator` | `null` | Function to generate the outcome for a given execution.| +| `OnOutcomeInjected` | `null` | Action executed when the outcome is injected. | + +## Diagrams + +### Happy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant B as Outcome + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>B: Calls ExecuteCore + activate B + B-->>B: Determines Outcome Injection + deactivate B + B->>+D: Invokes + D->>-B: Returns result + B->>P: Returns result + P->>C: Returns result +``` + +### Unhappy path sequence diagram + +```mermaid +sequenceDiagram + actor C as Caller + participant P as Pipeline + participant B as Outcome + participant D as DecoratedUserCallback + + C->>P: Calls ExecuteAsync + P->>B: Calls ExecuteCore + activate B + B-->>B: Determines Outcome Injection + B-->>B: Inject Outcome + deactivate B + Note over D: The user's Callback is not invoked when a fake result is injected + B->>P: Returns result + P->>C: Returns result +``` From d3ddc4bba9f3d8fd9d67c6a6152a63c450799df6 Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sun, 7 Jan 2024 19:57:00 -0500 Subject: [PATCH 08/32] fixes docs styling issues --- docs/chaos/behavior.md | 1 + docs/chaos/fault.md | 1 + docs/chaos/index.md | 18 +++++++++++------- docs/chaos/latency.md | 1 + docs/chaos/result.md | 3 ++- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 385d834211b..6599e39d118 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -5,6 +5,7 @@ - **Options**: [`BehaviorStrategyOptions`](xref:Polly.Simmy.Behavior.BehaviorStrategyOptions) - **Extensions**: `AddChaosBehavior` - **Strategy Type**: Proactive + --- The behavior chaos strategy is designed to inject custom behaviors into system operations right before such an operation is invoked. This strategy is flexible, allowing users to define specific behaviors such as altering the input, simulating resource exhaustion, putting the system in a given state before the actual operation is called, or other operational variations to simulate real-world scenarios. diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 14215cb532e..3e606a2ab4e 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -5,6 +5,7 @@ - **Options**: [`FaultStrategyOptions`](xref:Polly.Simmy.Fault.FaultStrategyOptions) - **Extensions**: `AddChaosFault` - **Strategy Type**: Proactive + --- The fault chaos strategy is designed to introduce faults (exceptions) into the system, simulating real-world scenarios where operations might fail unexpectedly. It is configurable to inject specific types of exceptions or use custom logic to generate faults dynamically. diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 23bff4e08ea..7701dbd25ac 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -4,7 +4,7 @@ Simmy -# Motivation +## Motivation There are a lot of questions when it comes to chaos-engineering and making sure that a system is actually ready to face the worst possible scenarios: @@ -22,21 +22,25 @@ Using Polly helps me introduce resilience to my project, but I don't want to hav * A way to revert easily, to control the blast radius. * Production grade, to run this in a production or near-production system with automation. -# Chaos strategies (a.k.a Monkey strategies) +## Chaos strategies (a.k.a Monkey strategies) + Chaos strategies (or Monkey strategies as we call them) are in essence a [Resilience strategy](../strategies/index.md#built-in-strategies), which means, as well as a *Resilience Strategy* is the minimum unit of resilience for Polly, a *Monkey Strategy* is the minimum unit of chaos for Simmy. -## Built-in strategies +### Built-in strategies + |Strategy| Reactive| What does the policy do?| | ------------- |------------- |------------- | -|**[Fault](fault.md)**|No|Injects exceptions in your system.| -|**[Result](result.md)**|Yes|Substitute results to fake outcomes in your system.| -|**[Latency](latency.md)**|No|Injects latency into executions before the calls are made.| -|**[Behavior](behavior.md)**|No|Allows you to inject _any_ extra behaviour, before a call is placed. | +|[Fault](fault.md)|No|Injects exceptions in your system.| +|[Result](result.md)|Yes|Substitute results to fake outcomes in your system.| +|[Latency](latency.md)|No|Injects latency into executions before the calls are made.| +|[Behavior](behavior.md)|No|Allows you to inject _any_ extra behaviour, before a call is placed. | ## Usage + It is usual to place the Monkey Strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. ## Common options across strategies + All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.Simmy.MonkeyStrategyOptions) class as it contains the basic configuration for every monkey strategy. | Property | Default Value | Description | diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index f6806cc43cc..0f9ff1e8605 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -5,6 +5,7 @@ - **Options**: [`LatencyStrategyOptions`](xref:Polly.Simmy.Latency.LatencyStrategyOptions) - **Extensions**: `AddChaosLatency` - **Strategy Type**: Proactive + --- The latency chaos strategy is designed to introduce controlled delays into system operations, simulating network latency or slow processing times. This strategy helps in assessing and improving the resilience of applications against increased response times. diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 61f996d0eb7..193b044f72e 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -7,13 +7,14 @@ - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Behavior.OutcomeStrategyOptions`1) - **Extensions**: `AddChaosResult` - **Strategy Type**: Reactive + --- The outcome chaos strategy is designed to inject or substitute fake results into system operations. This allows testing how an application behaves when it receives different types of responses, like successful results, errors, or exceptions. ## Usage - + ```cs // Outcome using the default options. // See https://www.pollydocs.org/chaos/result#defaults for defaults. From 11b69e15990761939532bb2993436f07d10fa88d Mon Sep 17 00:00:00 2001 From: Geovanny Alzate Sandoval Date: Sun, 7 Jan 2024 20:00:43 -0500 Subject: [PATCH 09/32] more docs styling issues --- docs/chaos/behavior.md | 1 + docs/chaos/index.md | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 6599e39d118..9a195e27d65 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -122,4 +122,5 @@ sequenceDiagram ``` ## Anti-patterns + ❌ Do not use it to inject delays, use the latency monkey instead as the [LatencyChaosStrategy](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 7701dbd25ac..1e21108a818 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -33,7 +33,7 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili |[Fault](fault.md)|No|Injects exceptions in your system.| |[Result](result.md)|Yes|Substitute results to fake outcomes in your system.| |[Latency](latency.md)|No|Injects latency into executions before the calls are made.| -|[Behavior](behavior.md)|No|Allows you to inject _any_ extra behaviour, before a call is placed. | +|[Behavior](behavior.md)|No|Allows you to inject *any* extra behaviour, before a call is placed.| ## Usage @@ -51,4 +51,3 @@ All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.S | `EnabledGenerator` | `null` | the enable generator that indicates whether or not the chaos strategy is enabled for a given execution. | [simmy]: https://github.com/Polly-Contrib/Simmy - From ceb9992769edaa35d103d76c0877e9940f31aafb Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Mon, 15 Jan 2024 10:27:12 +0100 Subject: [PATCH 10/32] Move code samples to snippets project --- docs/chaos/behavior.md | 12 ++-- docs/chaos/fault.md | 10 ++-- docs/chaos/latency.md | 12 ++-- docs/chaos/result.md | 8 +-- src/Snippets/Docs/Chaos.Behavior.cs | 84 ++++++++++++++++++++++++++++ src/Snippets/Docs/Chaos.Fault.cs | 83 ++++++++++++++++++++++++++++ src/Snippets/Docs/Chaos.Latency.cs | 85 +++++++++++++++++++++++++++++ src/Snippets/Docs/Chaos.Result.cs | 83 ++++++++++++++++++++++++++++ 8 files changed, 356 insertions(+), 21 deletions(-) create mode 100644 src/Snippets/Docs/Chaos.Behavior.cs create mode 100644 src/Snippets/Docs/Chaos.Fault.cs create mode 100644 src/Snippets/Docs/Chaos.Latency.cs create mode 100644 src/Snippets/Docs/Chaos.Result.cs diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 9a195e27d65..d7c7e5611d9 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -12,7 +12,7 @@ The behavior chaos strategy is designed to inject custom behaviors into system o ## Usage - + ```cs // Behavior using the default options. // See https://www.pollydocs.org/chaos/behavior#defaults for defaults. @@ -21,7 +21,7 @@ var optionsDefault = new BehaviorStrategyOptions(); // To use a custom function to generate the behavior to inject. var optionsWithBehaviorGenerator = new BehaviorStrategyOptions { - BehaviorAction = (_) => RestartRedisVM(), + BehaviorAction = static args => RestartRedisVM(), Enabled = true, InjectionRate = 0.6 }; @@ -29,7 +29,7 @@ var optionsWithBehaviorGenerator = new BehaviorStrategyOptions // To get notifications when a behavior is injected var optionsOnBehaviorInjected = new BehaviorStrategyOptions { - BehaviorAction = (_) => RestartRedisVM(), + BehaviorAction = static args => RestartRedisVM(), Enabled = true, InjectionRate = 0.6, OnBehaviorInjected = static args => @@ -50,12 +50,12 @@ new ResiliencePipelineBuilder().AddChaosBehavior(0.6, RestartRedisVM); Example execution: - + ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosBehavior(new BehaviorStrategyOptions // monkey strategies are usually placed innermost in the pipelines + .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed innermost in the pipelines { - BehaviorAction = (_) => RestartRedisVM(), + BehaviorAction = static args => RestartRedisVM(), Enabled = true, InjectionRate = 0.6 }) diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 3e606a2ab4e..75a369a146b 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -12,13 +12,13 @@ The fault chaos strategy is designed to introduce faults (exceptions) into the s ## Usage - + ```cs // Fault using the default options. // See https://www.pollydocs.org/chaos/fault#defaults for defaults. var optionsDefault = new FaultStrategyOptions(); -// The 60% of calls will be randomly affected. +// 60% of invocations will be randomly affected. var basicOptions = new FaultStrategyOptions { Fault = new InvalidOperationException("Dummy exception"), @@ -35,7 +35,7 @@ var optionsWithFaultGenerator = new FaultStrategyOptions { "DataLayer" => new TimeoutException(), "ApplicationLayer" => new InvalidOperationException(), - _ => null // when the fault generator returns null the strategy won't inject any fault and it will just invoke the user's callback + _ => null // When the fault generator returns null the strategy won't inject any fault and it will just invoke the user's callback }; return new ValueTask(exception); @@ -68,10 +68,10 @@ new ResiliencePipelineBuilder().AddChaosFault(0.6, new InvalidOperationException Example execution: - + ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosFault(new FaultStrategyOptions // monkey strategies are usually placed innermost in the pipelines + .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed innermost in the pipelines { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index 0f9ff1e8605..8eb6dd08fa8 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -12,13 +12,13 @@ The latency chaos strategy is designed to introduce controlled delays into syste ## Usage - + ```cs // Latency using the default options. // See https://www.pollydocs.org/chaos/latency#defaults for defaults. var optionsDefault = new LatencyStrategyOptions(); -// The 60% of calls will be randomly affected. +// 60% of invocations will be randomly affected. var basicOptions = new LatencyStrategyOptions { Latency = TimeSpan.FromSeconds(30), @@ -35,7 +35,7 @@ var optionsWithLatencyGenerator = new LatencyStrategyOptions { "DataLayer" => TimeSpan.FromMilliseconds(500), "ApplicationLayer" => TimeSpan.FromSeconds(2), - _ => TimeSpan.Zero // when the latency generator returns Zero the strategy won't inject any delay and it will just invoke the user's callback + _ => TimeSpan.Zero // When the latency generator returns Zero the strategy won't inject any delay and it will just invoke the user's callback }; return new ValueTask(latency); @@ -52,7 +52,7 @@ var optionsOnBehaviorInjected = new LatencyStrategyOptions InjectionRate = 0.6, OnLatency = static args => { - Console.WriteLine("OnLatency, Latency: {0}, Operation: {0}.", args.Latency, args.Context.OperationKey); + Console.WriteLine($"OnLatency, Latency: {args.Latency}, Operation: {args.Context.OperationKey}."); return default; } }; @@ -68,10 +68,10 @@ new ResiliencePipelineBuilder().AddChaosLatency(0.6, TimeSpan.FromSeconds(30)); Example execution: - + ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosLatency(new LatencyStrategyOptions // monkey strategies are usually placed innermost in the pipelines + .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed innermost in the pipelines { Latency = TimeSpan.FromSeconds(10), Enabled = true, diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 193b044f72e..6b906b48ce9 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -14,7 +14,7 @@ The outcome chaos strategy is designed to inject or substitute fake results into ## Usage - + ```cs // Outcome using the default options. // See https://www.pollydocs.org/chaos/result#defaults for defaults. @@ -45,7 +45,7 @@ var optionsOnBehaviorInjected = new OutcomeStrategyOptions InjectionRate = 0.6, OnOutcomeInjected = static args => { - Console.WriteLine("OnBehaviorInjected, Outcome: {0}, Operation: {1}.", args.Outcome.Result, args.Context.OperationKey); + Console.WriteLine($"OnBehaviorInjected, Outcome: {args.Outcome.Result}, Operation: {args.Context.OperationKey}."); return default; } }; @@ -61,10 +61,10 @@ new ResiliencePipelineBuilder().AddChaosResult(0.6, HttpStatusCo Example execution: - + ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosResult(new OutcomeStrategyOptions // monkey strategies are usually placed innermost in the pipelines + .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed innermost in the pipelines { OutcomeGenerator = static args => { diff --git a/src/Snippets/Docs/Chaos.Behavior.cs b/src/Snippets/Docs/Chaos.Behavior.cs new file mode 100644 index 00000000000..cb683e272d2 --- /dev/null +++ b/src/Snippets/Docs/Chaos.Behavior.cs @@ -0,0 +1,84 @@ +using System.Net; +using Polly.Retry; +using Polly.Simmy; +using Polly.Simmy.Behavior; + +namespace Snippets.Docs; + +internal static partial class Chaos +{ + public static void BehaviorUsage() + { + static ValueTask RestartRedisVM() => ValueTask.CompletedTask; + + #region chaos-behavior-usage + // Behavior using the default options. + // See https://www.pollydocs.org/chaos/behavior#defaults for defaults. + var optionsDefault = new BehaviorStrategyOptions(); + + // To use a custom function to generate the behavior to inject. + var optionsWithBehaviorGenerator = new BehaviorStrategyOptions + { + BehaviorAction = static args => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.6 + }; + + // To get notifications when a behavior is injected + var optionsOnBehaviorInjected = new BehaviorStrategyOptions + { + BehaviorAction = static args => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.6, + OnBehaviorInjected = static args => + { + Console.WriteLine("OnBehaviorInjected, Operation: {0}.", args.Context.OperationKey); + return default; + } + }; + + // Add a behavior strategy with a BehaviorStrategyOptions{} instance to the pipeline + new ResiliencePipelineBuilder().AddChaosBehavior(optionsDefault); + new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); + + // There are also a handy overload to inject the chaos easily. + new ResiliencePipelineBuilder().AddChaosBehavior(0.6, RestartRedisVM); + #endregion + + #region chaos-behavior-execution + var pipeline = new ResiliencePipelineBuilder() + .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed innermost in the pipelines + { + BehaviorAction = static args => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.6 + }) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = new PredicateBuilder().Handle(), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, // Adds a random factor to the delay + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); + #endregion + } +} + +internal class RedisConnectionException : Exception +{ + public RedisConnectionException() + { + } + + public RedisConnectionException(string message) + : base(message) + { + } + + public RedisConnectionException(string message, Exception innerException) + : base(message, innerException) + { + } +} diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs new file mode 100644 index 00000000000..6b673589f6e --- /dev/null +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -0,0 +1,83 @@ +using System.Net; +using Polly.Retry; +using Polly.Simmy; +using Polly.Simmy.Fault; + +namespace Snippets.Docs; + +internal static partial class Chaos +{ + public static void FaultUsage() + { + #region chaos-fault-usage + // Fault using the default options. + // See https://www.pollydocs.org/chaos/fault#defaults for defaults. + var optionsDefault = new FaultStrategyOptions(); + + // 60% of invocations will be randomly affected. + var basicOptions = new FaultStrategyOptions + { + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.6 + }; + + // To use a custom function to generate the fault to inject. + var optionsWithFaultGenerator = new FaultStrategyOptions + { + FaultGenerator = static args => + { + Exception? exception = args.Context.OperationKey switch + { + "DataLayer" => new TimeoutException(), + "ApplicationLayer" => new InvalidOperationException(), + _ => null // When the fault generator returns null the strategy won't inject any fault and it will just invoke the user's callback + }; + + return new ValueTask(exception); + }, + Enabled = true, + InjectionRate = 0.6 + }; + + // To get notifications when a fault is injected + var optionsOnFaultInjected = new FaultStrategyOptions + { + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.6, + OnFaultInjected = static args => + { + Console.WriteLine("OnFaultInjected, Exception: {0}, Operation: {1}.", args.Fault.Message, args.Context.OperationKey); + return default; + } + }; + + // Add a fault strategy with a FaultStrategyOptions{} instance to the pipeline + new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); + new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); + + // There are also a couple of handy overloads to inject the chaos easily. + new ResiliencePipelineBuilder().AddChaosFault(0.6, new InvalidOperationException("Dummy exception")); + #endregion + + #region chaos-fault-execution + var pipeline = new ResiliencePipelineBuilder() + .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed innermost in the pipelines + { + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.6 + }) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = new PredicateBuilder().Handle(), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, // Adds a random factor to the delay + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); + #endregion + } +} diff --git a/src/Snippets/Docs/Chaos.Latency.cs b/src/Snippets/Docs/Chaos.Latency.cs new file mode 100644 index 00000000000..a3f78474062 --- /dev/null +++ b/src/Snippets/Docs/Chaos.Latency.cs @@ -0,0 +1,85 @@ +using System.Net; +using Polly.Retry; +using Polly.Simmy; +using Polly.Simmy.Latency; +using Polly.Timeout; + +namespace Snippets.Docs; + +internal static partial class Chaos +{ + public static void LatencyUsage() + { + #region chaos-latency-usage + // Latency using the default options. + // See https://www.pollydocs.org/chaos/latency#defaults for defaults. + var optionsDefault = new LatencyStrategyOptions(); + + // 60% of invocations will be randomly affected. + var basicOptions = new LatencyStrategyOptions + { + Latency = TimeSpan.FromSeconds(30), + Enabled = true, + InjectionRate = 0.6 + }; + + // To use a custom function to generate the latency to inject. + var optionsWithLatencyGenerator = new LatencyStrategyOptions + { + LatencyGenerator = static args => + { + TimeSpan latency = args.Context.OperationKey switch + { + "DataLayer" => TimeSpan.FromMilliseconds(500), + "ApplicationLayer" => TimeSpan.FromSeconds(2), + _ => TimeSpan.Zero // When the latency generator returns Zero the strategy won't inject any delay and it will just invoke the user's callback + }; + + return new ValueTask(latency); + }, + Enabled = true, + InjectionRate = 0.6 + }; + + // To get notifications when a delay is injected + var optionsOnBehaviorInjected = new LatencyStrategyOptions + { + Latency = TimeSpan.FromSeconds(30), + Enabled = true, + InjectionRate = 0.6, + OnLatency = static args => + { + Console.WriteLine($"OnLatency, Latency: {args.Latency}, Operation: {args.Context.OperationKey}."); + return default; + } + }; + + // Add a latency strategy with a LatencyStrategyOptions{} instance to the pipeline + new ResiliencePipelineBuilder().AddChaosLatency(optionsDefault); + new ResiliencePipelineBuilder().AddChaosLatency(optionsWithLatencyGenerator); + + // There are also a handy overload to inject the chaos easily. + new ResiliencePipelineBuilder().AddChaosLatency(0.6, TimeSpan.FromSeconds(30)); + #endregion + + #region chaos-latency-execution + var pipeline = new ResiliencePipelineBuilder() + .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed innermost in the pipelines + { + Latency = TimeSpan.FromSeconds(10), + Enabled = true, + InjectionRate = 0.6 + }) + .AddTimeout(TimeSpan.FromSeconds(5)) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = new PredicateBuilder().Handle(), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, // Adds a random factor to the delay + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); + #endregion + } +} diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs new file mode 100644 index 00000000000..d58ffbf0739 --- /dev/null +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -0,0 +1,83 @@ +using System.Net; +using Polly.Retry; +using Polly.Simmy; +using Polly.Simmy.Outcomes; + +namespace Snippets.Docs; + +internal static partial class Chaos +{ + public static void ResultUsage() + { + #region chaos-result-usage + // Outcome using the default options. + // See https://www.pollydocs.org/chaos/result#defaults for defaults. + var optionsDefault = new OutcomeStrategyOptions(); + + // To use a custom function to generate the result to inject. + var optionsWithResultGenerator = new OutcomeStrategyOptions + { + OutcomeGenerator = static args => + { + HttpStatusCode result = args.Context.OperationKey switch + { + "A" => HttpStatusCode.TooManyRequests, + "B" => HttpStatusCode.NotFound, + _ => HttpStatusCode.OK + }; + return new ValueTask?>(Outcome.FromResult(result)); + }, + Enabled = true, + InjectionRate = 0.6 + }; + + // To get notifications when a result is injected + var optionsOnBehaviorInjected = new OutcomeStrategyOptions + { + OutcomeGenerator = (_) => new ValueTask?>(Outcome.FromResult(HttpStatusCode.TooManyRequests)), + Enabled = true, + InjectionRate = 0.6, + OnOutcomeInjected = static args => + { + Console.WriteLine($"OnBehaviorInjected, Outcome: {args.Outcome.Result}, Operation: {args.Context.OperationKey}."); + return default; + } + }; + + // Add a result strategy with a OutcomeStrategyOptions{} instance to the pipeline + new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); + new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); + + // There are also a couple of handy overloads to inject the chaos easily. + new ResiliencePipelineBuilder().AddChaosResult(0.6, HttpStatusCode.TooManyRequests); + #endregion + + #region chaos-result-execution + var pipeline = new ResiliencePipelineBuilder() + .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed innermost in the pipelines + { + OutcomeGenerator = static args => + { + HttpStatusCode result = args.Context.OperationKey switch + { + "A" => HttpStatusCode.TooManyRequests, + "B" => HttpStatusCode.NotFound, + _ => HttpStatusCode.OK + }; + return new ValueTask?>(Outcome.FromResult(result)); + }, + Enabled = true, + InjectionRate = 0.6 + }) + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .Build(); + #endregion + } +} From 966bb9569c487545f95d64e81574d4c08e8c3e43 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Mon, 15 Jan 2024 10:29:11 +0100 Subject: [PATCH 11/32] Fix spellcheck issues --- .github/wordlist.txt | 3 +++ docs/chaos/behavior.md | 2 +- docs/chaos/index.md | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/wordlist.txt b/.github/wordlist.txt index 3c447baa572..6968808c5ec 100644 --- a/.github/wordlist.txt +++ b/.github/wordlist.txt @@ -32,6 +32,7 @@ nuget oss pcl parallelize +paas pluralsight pollydocs pre @@ -47,6 +48,7 @@ rethrow rethrows retryable reusability +saas sdk serializers silverlight @@ -60,6 +62,7 @@ telemetrylistener testability timingpolicy ui +unhandled uwp waitandretry wpf diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index d7c7e5611d9..00035b4a504 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -123,4 +123,4 @@ sequenceDiagram ## Anti-patterns -❌ Do not use it to inject delays, use the latency monkey instead as the [LatencyChaosStrategy](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. +❌ Do not use it to inject delays, use the latency monkey instead as the [`LatencyChaosStrategy`](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 1e21108a818..ba3745541d7 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -45,7 +45,7 @@ All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.S | Property | Default Value | Description | | ------------------------- | ------------- | -------------------------------------------- | -| `InjectionRate` | 0.001 ms | A decimal between 0 and 1 inclusive. The strategy will inject the chaos, randomly, that proportion of the time, eg: if 0.2, twenty percent of calls will be randomly affected; if 0.01, one percent of calls; if 1, all calls. | +| `InjectionRate` | 0.001 ms | A decimal between 0 and 1 inclusive. The strategy will inject the chaos, randomly, that proportion of the time, e.g.: if 0.2, twenty percent of calls will be randomly affected; if 0.01, one percent of calls; if 1, all calls. | | `InjectionRateGenerator` | `null` | Generates the injection rate for a given execution, which the value should be between [0, 1] (inclusive). | | `Enabled` | `false` | Determines whether the strategy is enabled or not. | | `EnabledGenerator` | `null` | the enable generator that indicates whether or not the chaos strategy is enabled for a given execution. | From ebf3fa53f57bfd7cb9818f158ddcd68abf651470 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Mon, 15 Jan 2024 10:30:35 +0100 Subject: [PATCH 12/32] Format markdown tables --- docs/chaos/behavior.md | 8 ++++---- docs/chaos/fault.md | 10 +++++----- docs/chaos/index.md | 24 ++++++++++++------------ docs/chaos/latency.md | 10 +++++----- docs/chaos/result.md | 8 ++++---- 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 00035b4a504..7dc2681c02b 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -73,10 +73,10 @@ var pipeline = new ResiliencePipelineBuilder() ## Defaults -| Property | Default Value | Description | -| --------------------- | ------------- | -------------------------------------------- | -| `OnBehaviorInjected` | `null` | Action executed when the behavior is injected.| -| `BehaviorAction` | `null` | Custom behavior to be injected. | +| Property | Default Value | Description | +|----------------------|---------------|------------------------------------------------| +| `OnBehaviorInjected` | `null` | Action executed when the behavior is injected. | +| `BehaviorAction` | `null` | Custom behavior to be injected. | ## Diagrams diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 75a369a146b..75683dd9875 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -91,11 +91,11 @@ var pipeline = new ResiliencePipelineBuilder() ## Defaults -| Property | Default Value | Description | -| ------------------ | ------------- | -------------------------------------------- | -| `OnFaultInjected` | `null` | Action executed when the fault is injected. | -| `FaultGenerator` | `null` | Generates the fault to inject for a given execution. | -| `Fault` | `null` | The fault to inject. | +| Property | Default Value | Description | +|-------------------|---------------|------------------------------------------------------| +| `OnFaultInjected` | `null` | Action executed when the fault is injected. | +| `FaultGenerator` | `null` | Generates the fault to inject for a given execution. | +| `Fault` | `null` | The fault to inject. | ## Diagrams diff --git a/docs/chaos/index.md b/docs/chaos/index.md index ba3745541d7..08842dfcdf8 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -28,12 +28,12 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili ### Built-in strategies -|Strategy| Reactive| What does the policy do?| -| ------------- |------------- |------------- | -|[Fault](fault.md)|No|Injects exceptions in your system.| -|[Result](result.md)|Yes|Substitute results to fake outcomes in your system.| -|[Latency](latency.md)|No|Injects latency into executions before the calls are made.| -|[Behavior](behavior.md)|No|Allows you to inject *any* extra behaviour, before a call is placed.| +| Strategy | Reactive | What does the policy do? | +|-------------------------|----------|----------------------------------------------------------------------| +| [Fault](fault.md) | No | Injects exceptions in your system. | +| [Result](result.md) | Yes | Substitute results to fake outcomes in your system. | +| [Latency](latency.md) | No | Injects latency into executions before the calls are made. | +| [Behavior](behavior.md) | No | Allows you to inject *any* extra behaviour, before a call is placed. | ## Usage @@ -43,11 +43,11 @@ It is usual to place the Monkey Strategy innermost in a Resilience Pipeline. By All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.Simmy.MonkeyStrategyOptions) class as it contains the basic configuration for every monkey strategy. -| Property | Default Value | Description | -| ------------------------- | ------------- | -------------------------------------------- | -| `InjectionRate` | 0.001 ms | A decimal between 0 and 1 inclusive. The strategy will inject the chaos, randomly, that proportion of the time, e.g.: if 0.2, twenty percent of calls will be randomly affected; if 0.01, one percent of calls; if 1, all calls. | -| `InjectionRateGenerator` | `null` | Generates the injection rate for a given execution, which the value should be between [0, 1] (inclusive). | -| `Enabled` | `false` | Determines whether the strategy is enabled or not. | -| `EnabledGenerator` | `null` | the enable generator that indicates whether or not the chaos strategy is enabled for a given execution. | +| Property | Default Value | Description | +|--------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `InjectionRate` | 0.001 ms | A decimal between 0 and 1 inclusive. The strategy will inject the chaos, randomly, that proportion of the time, e.g.: if 0.2, twenty percent of calls will be randomly affected; if 0.01, one percent of calls; if 1, all calls. | +| `InjectionRateGenerator` | `null` | Generates the injection rate for a given execution, which the value should be between [0, 1] (inclusive). | +| `Enabled` | `false` | Determines whether the strategy is enabled or not. | +| `EnabledGenerator` | `null` | the enable generator that indicates whether or not the chaos strategy is enabled for a given execution. | [simmy]: https://github.com/Polly-Contrib/Simmy diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index 8eb6dd08fa8..6e9c0de74da 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -92,11 +92,11 @@ var pipeline = new ResiliencePipelineBuilder() ## Defaults -| Property | Default Value | Description | -| --------------------- | ------------- | -------------------------------------------- | -| `Latency` | `30 seconds` | A timestamp indicating the delay to be injected. | -| `LatencyGenerator` | `null` | Generates the latency to inject for a given execution.| -| `OnLatency` | `null` | Action executed when latency is injected. | +| Property | Default Value | Description | +|--------------------|---------------|--------------------------------------------------------| +| `Latency` | `30 seconds` | A timestamp indicating the delay to be injected. | +| `LatencyGenerator` | `null` | Generates the latency to inject for a given execution. | +| `OnLatency` | `null` | Action executed when latency is injected. | ## Diagrams diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 6b906b48ce9..f6afc748ce5 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -93,10 +93,10 @@ var pipeline = new ResiliencePipelineBuilder() ## Defaults -| Property | Default Value | Description | -| --------------------- | ------------- | -------------------------------------------- | -| `OutcomeGenerator` | `null` | Function to generate the outcome for a given execution.| -| `OnOutcomeInjected` | `null` | Action executed when the outcome is injected. | +| Property | Default Value | Description | +|---------------------|---------------|---------------------------------------------------------| +| `OutcomeGenerator` | `null` | Function to generate the outcome for a given execution. | +| `OnOutcomeInjected` | `null` | Action executed when the outcome is injected. | ## Diagrams From d8adb49ac5d04fda3143aca0de81b89f77f0dbd1 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Mon, 15 Jan 2024 11:16:48 +0100 Subject: [PATCH 13/32] Apply suggested changes --- docs/chaos/behavior.md | 10 +++++++++- docs/chaos/fault.md | 2 +- docs/chaos/index.md | 16 ++++++++-------- docs/chaos/latency.md | 6 +++--- docs/chaos/result.md | 2 +- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 7dc2681c02b..ef5b02b9618 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -123,4 +123,12 @@ sequenceDiagram ## Anti-patterns -❌ Do not use it to inject delays, use the latency monkey instead as the [`LatencyChaosStrategy`](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. +### Injecting delay + +❌ DON'T + +Use behavior strategies to inject delays + +✅ DO + +Use the latency monkey instead as the [`LatencyChaosStrategy`](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 75683dd9875..59eb6a68f37 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -134,7 +134,7 @@ sequenceDiagram F-->>F: Determines Fault Injection F-->>F: Inject Fault deactivate F - Note over D: The user's Callback is not invoked when a fault is injected + Note over D: The user's Callback is not invoked
when a fault is injected F->>P: Throws injected Fault P->>C: Propagates Exception ``` diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 08842dfcdf8..113e6517910 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -1,6 +1,6 @@ # Chaos engineering with Simmy -[Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of policies to selectively inject faults, latency, custom behavior or fake results. +[Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. Simmy @@ -13,22 +13,22 @@ There are a lot of questions when it comes to chaos-engineering and making sure * How will my system behave if X happens? * How can I test without waiting for a handled (or even unhandled) exception to happen in my production environment? -Using Polly helps me introduce resilience to my project, but I don't want to have to wait for expected or unexpected failures to test it out. My resilience could be wrongly implemented; testing the scenarios is not straight forward; and mocking failure of some dependencies (for example a cloud SaaS or PaaS service) is not always straightforward. +Using Polly helps introduce resilience to a project, but we don't want to have to wait for expected or unexpected failures to test it out. A resilience could be wrongly implemented; testing the scenarios is not straightforward; and mocking failure of some dependencies (for example a cloud SaaS or PaaS service) is not always straightforward. -**What do I need, to simulate chaotic scenarios in my production environment?** +### What is needed, to simulate chaotic scenarios? -* A way to mock failures of dependencies (any service dependency for example). +* A way to simulate failures of dependencies (any service dependency for example). * Define when to fail based on some external factors - maybe global configuration or some rule. * A way to revert easily, to control the blast radius. -* Production grade, to run this in a production or near-production system with automation. +* To be production grade, to run this in a production or near-production system with automation. ## Chaos strategies (a.k.a Monkey strategies) -Chaos strategies (or Monkey strategies as we call them) are in essence a [Resilience strategy](../strategies/index.md#built-in-strategies), which means, as well as a *Resilience Strategy* is the minimum unit of resilience for Polly, a *Monkey Strategy* is the minimum unit of chaos for Simmy. +Chaos strategies (or Monkey strategies as we call them) are in essence a [Resilience strategy](../strategies/index.md#built-in-strategies), which means, as a *Resilience Strategy* is the minimum unit of resilience for Polly, a *Monkey Strategy* is the minimum unit of chaos for Simmy. ### Built-in strategies -| Strategy | Reactive | What does the policy do? | +| Strategy | Reactive | What does the strategy do? | |-------------------------|----------|----------------------------------------------------------------------| | [Fault](fault.md) | No | Injects exceptions in your system. | | [Result](result.md) | Yes | Substitute results to fake outcomes in your system. | @@ -37,7 +37,7 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili ## Usage -It is usual to place the Monkey Strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. +It is usual to place the monkey strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. ## Common options across strategies diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index 6e9c0de74da..78855c42bfe 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -94,7 +94,7 @@ var pipeline = new ResiliencePipelineBuilder() | Property | Default Value | Description | |--------------------|---------------|--------------------------------------------------------| -| `Latency` | `30 seconds` | A timestamp indicating the delay to be injected. | +| `Latency` | `30 seconds` | A `TimeSpan` indicating the delay to be injected. | | `LatencyGenerator` | `null` | Generates the latency to inject for a given execution. | | `OnLatency` | `null` | Action executed when latency is injected. | @@ -115,7 +115,7 @@ sequenceDiagram L->>L: Determines Latency Injection deactivate L L->>+D: Invokes - D-->>-L: Returns result + D->>-L: Returns result L->>P: Returns result P->>C: Returns result ``` @@ -136,7 +136,7 @@ sequenceDiagram L-->>L: Inject Latency deactivate L L->>+D: Invokes - D-->>-L: Returns result + D->>-L: Returns result L->>P: Returns result P->>C: Returns result ``` diff --git a/docs/chaos/result.md b/docs/chaos/result.md index f6afc748ce5..8714160830b 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -135,7 +135,7 @@ sequenceDiagram B-->>B: Determines Outcome Injection B-->>B: Inject Outcome deactivate B - Note over D: The user's Callback is not invoked when a fake result is injected + Note over D: The user's Callback is not invoked
when a fake result is injected B->>P: Returns result P->>C: Returns result ``` From ae445bea97e16f61d7cb38b21f58cc7c67cce414 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Mon, 15 Jan 2024 13:22:06 +0100 Subject: [PATCH 14/32] Fix a couple of docfx issues --- docs/chaos/index.md | 2 +- docs/chaos/result.md | 4 ++-- docs/docfx.json | 1 + docs/index.md | 2 +- docs/media/Simmy-Logo.png | Bin 0 -> 23687 bytes docs/strategies/circuit-breaker.md | 4 ++-- 6 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 docs/media/Simmy-Logo.png diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 113e6517910..0576c1af715 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -2,7 +2,7 @@ [Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. -Simmy +![Simmy](../media/Simmy-Logo.png) ## Motivation diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 8714160830b..e4f6a741578 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -3,8 +3,8 @@ ## About - **Options**: - - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Behavior.OutcomeStrategyOptions) - - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Behavior.OutcomeStrategyOptions`1) + - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Outcomes.OutcomeStrategyOptions) + - [`OutcomeStrategyOptions`](xref:Polly.Simmy.Outcomes.OutcomeStrategyOptions`1) - **Extensions**: `AddChaosResult` - **Strategy Type**: Reactive diff --git a/docs/docfx.json b/docs/docfx.json index c3e49fe2506..bcf4076eada 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -56,6 +56,7 @@ { "files": [ "media/*.pdf", + "media/*.png", "icon.png" ] } diff --git a/docs/index.md b/docs/index.md index 9e9c7a2af3d..b552fb55de3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,7 +33,7 @@ Polly has a rich documentation that covers various topics, such as: - [Dependency injection](advanced/dependency-injection.md): How to integrate Polly with dependency injection frameworks and containers. - [Performance](advanced/performance.md): Tips on optimizing and getting the best performance from Polly. - [Testing](advanced/testing.md): How to test the composition and configuration of resilience pipelines. -- [Chaos engineering](advanced/simmy.md): How to use Polly to inject faults and test the resilience of your system. +- [Chaos engineering](chaos/index.md): How to use Polly to inject faults and test the resilience of your system. - [Extensibility](extensibility/index.md): How to create and use custom strategies and extensions for Polly. You can also find many resources and community contributions, such as: diff --git a/docs/media/Simmy-Logo.png b/docs/media/Simmy-Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f55fd7e5c920a99731f149b9e4027f92517fa10 GIT binary patch literal 23687 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

{qdJ{Tdif0aqv8d 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](xref:Polly.CircuitBreaker.CircuitBreakerStrategyOptions) + - [`CircuitBreakerStrategyOptions`](xref:Polly.CircuitBreaker.CircuitBreakerStrategyOptions`1) - **Extensions**: `AddCircuitBreaker` - **Strategy Type**: Reactive - **Exceptions**: @@ -328,7 +328,7 @@ sequenceDiagram D->>-CB: Fails Note over CB: Moves to Open state CB->>+BDG: Calls Generator - BDG->>-CB: Returns calculated
duration + BDG->>-CB: Returns calculated
duration Note over CB: Break duration start CB->>P: Propagates failure P->>C: Propagates failure From 722bca1e228b2f5ae41fed67e414ec3cecbbc6a6 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Tue, 16 Jan 2024 10:19:48 +0100 Subject: [PATCH 15/32] Use unicode emojis to describe scenarios --- docs/chaos/behavior.md | 10 +++++----- docs/chaos/fault.md | 10 +++++----- docs/chaos/latency.md | 10 +++++----- docs/chaos/result.md | 10 +++++----- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index ef5b02b9618..0fd126355bb 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -80,7 +80,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### Happy path sequence diagram +### 🐵 sequence diagram ```mermaid sequenceDiagram @@ -92,7 +92,7 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>B: Calls ExecuteCore activate B - B-->>B: Determines Behavior Injection + B-->>B: Determines Injection
Decision: 🐵 deactivate B B->>+D: Invokes D->>-B: Returns result @@ -100,7 +100,7 @@ sequenceDiagram P->>C: Returns result ``` -### Unhappy path sequence diagram +### 🙈 sequence diagram ```mermaid sequenceDiagram @@ -112,8 +112,8 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>B: Calls ExecuteCore activate B - B-->>B: Determines Behavior Injection - B-->>B: Inject Behavior + B-->>B: Determines Injection
Decision: 🙈 + B-->>B: Injects Behavior deactivate B B->>+D: Invokes D->>-B: Returns result diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 59eb6a68f37..be211caef9d 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -99,7 +99,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### Happy path sequence diagram +### 🐵 sequence diagram ```mermaid sequenceDiagram @@ -111,7 +111,7 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>F: Calls ExecuteCore activate F - F-->>F: Determines Fault Injection + F-->>F: Determines Injection
Decision: 🐵 deactivate F F->>+D: Invokes D->>-F: Returns result @@ -119,7 +119,7 @@ sequenceDiagram P->>C: Returns result ``` -### Unhappy path sequence diagram +### 🙈 sequence diagram ```mermaid sequenceDiagram @@ -131,8 +131,8 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>F: Calls ExecuteCore activate F - F-->>F: Determines Fault Injection - F-->>F: Inject Fault + F-->>F: Determines Injection
Decision: 🙈 + F-->>F: Injects Fault deactivate F Note over D: The user's Callback is not invoked
when a fault is injected F->>P: Throws injected Fault diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index 78855c42bfe..6726bd762ee 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -100,7 +100,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### Happy path sequence diagram +### 🐵 sequence diagram ```mermaid sequenceDiagram @@ -112,7 +112,7 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>L: Calls ExecuteCore activate L - L->>L: Determines Latency Injection + L->>L: Determines Injection
Decision: 🐵 deactivate L L->>+D: Invokes D->>-L: Returns result @@ -120,7 +120,7 @@ sequenceDiagram P->>C: Returns result ``` -### Unhappy path sequence diagram +### 🙈 sequence diagram ```mermaid sequenceDiagram @@ -132,8 +132,8 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>L: Calls ExecuteCore activate L - L->>L: Determines Latency Injection - L-->>L: Inject Latency + L->>L: Determines Injection
Decision: 🙈 + L-->>L: Injects Latency deactivate L L->>+D: Invokes D->>-L: Returns result diff --git a/docs/chaos/result.md b/docs/chaos/result.md index e4f6a741578..f1591305113 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -100,7 +100,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### Happy path sequence diagram +### 🐵 sequence diagram ```mermaid sequenceDiagram @@ -112,7 +112,7 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>B: Calls ExecuteCore activate B - B-->>B: Determines Outcome Injection + B-->>B: Determines Injection
Decision: 🐵 deactivate B B->>+D: Invokes D->>-B: Returns result @@ -120,7 +120,7 @@ sequenceDiagram P->>C: Returns result ``` -### Unhappy path sequence diagram +### 🙈 sequence diagram ```mermaid sequenceDiagram @@ -132,8 +132,8 @@ sequenceDiagram C->>P: Calls ExecuteAsync P->>B: Calls ExecuteCore activate B - B-->>B: Determines Outcome Injection - B-->>B: Inject Outcome + B-->>B: Determines Injection
Decision: 🙈 + B-->>B: Injects Outcome deactivate B Note over D: The user's Callback is not invoked
when a fake result is injected B->>P: Returns result From 38b7ce8c1e96a8a498f2aa90e633ddad7ae9c520 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Tue, 16 Jan 2024 10:29:57 +0100 Subject: [PATCH 16/32] Fix docfx link issue --- docs/chaos/behavior.md | 4 ++-- docs/chaos/fault.md | 4 ++-- docs/chaos/latency.md | 4 ++-- docs/chaos/result.md | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 0fd126355bb..9e484f36052 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -80,7 +80,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### 🐵 sequence diagram +### Normal 🐵 sequence diagram ```mermaid sequenceDiagram @@ -100,7 +100,7 @@ sequenceDiagram P->>C: Returns result ``` -### 🙈 sequence diagram +### Chaos 🙈 sequence diagram ```mermaid sequenceDiagram diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index be211caef9d..b3bafe42731 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -99,7 +99,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### 🐵 sequence diagram +### Normal 🐵 sequence diagram ```mermaid sequenceDiagram @@ -119,7 +119,7 @@ sequenceDiagram P->>C: Returns result ``` -### 🙈 sequence diagram +### Chaos 🙈 sequence diagram ```mermaid sequenceDiagram diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index 6726bd762ee..fed323a6429 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -100,7 +100,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### 🐵 sequence diagram +### Normal 🐵 sequence diagram ```mermaid sequenceDiagram @@ -120,7 +120,7 @@ sequenceDiagram P->>C: Returns result ``` -### 🙈 sequence diagram +### Chaos 🙈 sequence diagram ```mermaid sequenceDiagram diff --git a/docs/chaos/result.md b/docs/chaos/result.md index f1591305113..523cc727566 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -100,7 +100,7 @@ var pipeline = new ResiliencePipelineBuilder() ## Diagrams -### 🐵 sequence diagram +### Normal 🐵 sequence diagram ```mermaid sequenceDiagram @@ -120,7 +120,7 @@ sequenceDiagram P->>C: Returns result ``` -### 🙈 sequence diagram +### Chaos 🙈 sequence diagram ```mermaid sequenceDiagram From 59b4cca73baf72538751a0ba825a0cfca0b8b13d Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Tue, 16 Jan 2024 10:39:51 +0100 Subject: [PATCH 17/32] Fix build by using another overload of AddChaosXYZ --- docs/chaos/fault.md | 2 +- docs/chaos/result.md | 2 +- src/Snippets/Docs/Chaos.Fault.cs | 2 +- src/Snippets/Docs/Chaos.Result.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index b3bafe42731..a3075877f1d 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -62,7 +62,7 @@ new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); // There are also a couple of handy overloads to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosFault(0.6, new InvalidOperationException("Dummy exception")); +new ResiliencePipelineBuilder().AddChaosFault(0.6, () => new InvalidOperationException("Dummy exception")); ``` diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 523cc727566..bdcd1cf00eb 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -55,7 +55,7 @@ new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); // There are also a couple of handy overloads to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosResult(0.6, HttpStatusCode.TooManyRequests); +new ResiliencePipelineBuilder().AddChaosResult(0.6, () => HttpStatusCode.TooManyRequests); ``` diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs index 6b673589f6e..c909c4f0f2f 100644 --- a/src/Snippets/Docs/Chaos.Fault.cs +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -58,7 +58,7 @@ public static void FaultUsage() new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); // There are also a couple of handy overloads to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosFault(0.6, new InvalidOperationException("Dummy exception")); + new ResiliencePipelineBuilder().AddChaosFault(0.6, () => new InvalidOperationException("Dummy exception")); #endregion #region chaos-fault-execution diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index d58ffbf0739..e08343b609e 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -49,7 +49,7 @@ public static void ResultUsage() new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); // There are also a couple of handy overloads to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosResult(0.6, HttpStatusCode.TooManyRequests); + new ResiliencePipelineBuilder().AddChaosResult(0.6, () => HttpStatusCode.TooManyRequests); #endregion #region chaos-result-execution From f33a29ffd995f1f164f716edc09ef709099b5209 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Tue, 16 Jan 2024 11:37:29 +0100 Subject: [PATCH 18/32] Apply suggested changes --- docs/chaos/behavior.md | 10 +++++----- docs/chaos/fault.md | 14 +++++++------- docs/chaos/latency.md | 14 +++++++------- docs/chaos/result.md | 8 ++++---- src/Snippets/Docs/Chaos.Behavior.cs | 10 +++++----- src/Snippets/Docs/Chaos.Fault.cs | 14 +++++++------- src/Snippets/Docs/Chaos.Latency.cs | 14 +++++++------- src/Snippets/Docs/Chaos.Result.cs | 8 ++++---- 8 files changed, 46 insertions(+), 46 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 9e484f36052..3f1606ca4bc 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -23,7 +23,7 @@ var optionsWithBehaviorGenerator = new BehaviorStrategyOptions { BehaviorAction = static args => RestartRedisVM(), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.05 }; // To get notifications when a behavior is injected @@ -31,7 +31,7 @@ var optionsOnBehaviorInjected = new BehaviorStrategyOptions { BehaviorAction = static args => RestartRedisVM(), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.05, OnBehaviorInjected = static args => { Console.WriteLine("OnBehaviorInjected, Operation: {0}.", args.Context.OperationKey); @@ -39,12 +39,12 @@ var optionsOnBehaviorInjected = new BehaviorStrategyOptions } }; -// Add a behavior strategy with a BehaviorStrategyOptions{} instance to the pipeline +// Add a behavior strategy with a BehaviorStrategyOptions instance to the pipeline new ResiliencePipelineBuilder().AddChaosBehavior(optionsDefault); new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); // There are also a handy overload to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosBehavior(0.6, RestartRedisVM); +new ResiliencePipelineBuilder().AddChaosBehavior(0.05, RestartRedisVM); ``` @@ -57,7 +57,7 @@ var pipeline = new ResiliencePipelineBuilder() { BehaviorAction = static args => RestartRedisVM(), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.05 }) .AddRetry(new RetryStrategyOptions { diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index a3075877f1d..0dc04d96204 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -18,12 +18,12 @@ The fault chaos strategy is designed to introduce faults (exceptions) into the s // See https://www.pollydocs.org/chaos/fault#defaults for defaults. var optionsDefault = new FaultStrategyOptions(); -// 60% of invocations will be randomly affected. +// 10% of invocations will be randomly affected. var basicOptions = new FaultStrategyOptions { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To use a custom function to generate the fault to inject. @@ -41,7 +41,7 @@ var optionsWithFaultGenerator = new FaultStrategyOptions return new ValueTask(exception); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To get notifications when a fault is injected @@ -49,7 +49,7 @@ var optionsOnFaultInjected = new FaultStrategyOptions { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.1, OnFaultInjected = static args => { Console.WriteLine("OnFaultInjected, Exception: {0}, Operation: {1}.", args.Fault.Message, args.Context.OperationKey); @@ -57,12 +57,12 @@ var optionsOnFaultInjected = new FaultStrategyOptions } }; -// Add a fault strategy with a FaultStrategyOptions{} instance to the pipeline +// Add a fault strategy with a FaultStrategyOptions instance to the pipeline new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); // There are also a couple of handy overloads to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosFault(0.6, () => new InvalidOperationException("Dummy exception")); +new ResiliencePipelineBuilder().AddChaosFault(0.1, () => new InvalidOperationException("Dummy exception")); ``` @@ -75,7 +75,7 @@ var pipeline = new ResiliencePipelineBuilder() { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }) .AddRetry(new RetryStrategyOptions { diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index fed323a6429..e98dc9ac10f 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -18,12 +18,12 @@ The latency chaos strategy is designed to introduce controlled delays into syste // See https://www.pollydocs.org/chaos/latency#defaults for defaults. var optionsDefault = new LatencyStrategyOptions(); -// 60% of invocations will be randomly affected. +// 10% of invocations will be randomly affected. var basicOptions = new LatencyStrategyOptions { Latency = TimeSpan.FromSeconds(30), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To use a custom function to generate the latency to inject. @@ -41,7 +41,7 @@ var optionsWithLatencyGenerator = new LatencyStrategyOptions return new ValueTask(latency); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To get notifications when a delay is injected @@ -49,7 +49,7 @@ var optionsOnBehaviorInjected = new LatencyStrategyOptions { Latency = TimeSpan.FromSeconds(30), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.1, OnLatency = static args => { Console.WriteLine($"OnLatency, Latency: {args.Latency}, Operation: {args.Context.OperationKey}."); @@ -57,12 +57,12 @@ var optionsOnBehaviorInjected = new LatencyStrategyOptions } }; -// Add a latency strategy with a LatencyStrategyOptions{} instance to the pipeline +// Add a latency strategy with a LatencyStrategyOptions instance to the pipeline new ResiliencePipelineBuilder().AddChaosLatency(optionsDefault); new ResiliencePipelineBuilder().AddChaosLatency(optionsWithLatencyGenerator); // There are also a handy overload to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosLatency(0.6, TimeSpan.FromSeconds(30)); +new ResiliencePipelineBuilder().AddChaosLatency(0.1, TimeSpan.FromSeconds(30)); ``` @@ -75,7 +75,7 @@ var pipeline = new ResiliencePipelineBuilder() { Latency = TimeSpan.FromSeconds(10), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }) .AddTimeout(TimeSpan.FromSeconds(5)) .AddRetry(new RetryStrategyOptions diff --git a/docs/chaos/result.md b/docs/chaos/result.md index bdcd1cf00eb..17891ea118f 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -34,7 +34,7 @@ var optionsWithResultGenerator = new OutcomeStrategyOptions return new ValueTask?>(Outcome.FromResult(result)); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To get notifications when a result is injected @@ -42,7 +42,7 @@ var optionsOnBehaviorInjected = new OutcomeStrategyOptions { OutcomeGenerator = (_) => new ValueTask?>(Outcome.FromResult(HttpStatusCode.TooManyRequests)), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.1, OnOutcomeInjected = static args => { Console.WriteLine($"OnBehaviorInjected, Outcome: {args.Outcome.Result}, Operation: {args.Context.OperationKey}."); @@ -55,7 +55,7 @@ new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); // There are also a couple of handy overloads to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosResult(0.6, () => HttpStatusCode.TooManyRequests); +new ResiliencePipelineBuilder().AddChaosResult(0.1, () => HttpStatusCode.TooManyRequests); ``` @@ -77,7 +77,7 @@ var pipeline = new ResiliencePipelineBuilder() return new ValueTask?>(Outcome.FromResult(result)); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }) .AddRetry(new RetryStrategyOptions { diff --git a/src/Snippets/Docs/Chaos.Behavior.cs b/src/Snippets/Docs/Chaos.Behavior.cs index cb683e272d2..90f2673dd9e 100644 --- a/src/Snippets/Docs/Chaos.Behavior.cs +++ b/src/Snippets/Docs/Chaos.Behavior.cs @@ -21,7 +21,7 @@ public static void BehaviorUsage() { BehaviorAction = static args => RestartRedisVM(), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.05 }; // To get notifications when a behavior is injected @@ -29,7 +29,7 @@ public static void BehaviorUsage() { BehaviorAction = static args => RestartRedisVM(), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.05, OnBehaviorInjected = static args => { Console.WriteLine("OnBehaviorInjected, Operation: {0}.", args.Context.OperationKey); @@ -37,12 +37,12 @@ public static void BehaviorUsage() } }; - // Add a behavior strategy with a BehaviorStrategyOptions{} instance to the pipeline + // Add a behavior strategy with a BehaviorStrategyOptions instance to the pipeline new ResiliencePipelineBuilder().AddChaosBehavior(optionsDefault); new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); // There are also a handy overload to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosBehavior(0.6, RestartRedisVM); + new ResiliencePipelineBuilder().AddChaosBehavior(0.05, RestartRedisVM); #endregion #region chaos-behavior-execution @@ -51,7 +51,7 @@ public static void BehaviorUsage() { BehaviorAction = static args => RestartRedisVM(), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.05 }) .AddRetry(new RetryStrategyOptions { diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs index c909c4f0f2f..08e9df54b7d 100644 --- a/src/Snippets/Docs/Chaos.Fault.cs +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -14,12 +14,12 @@ public static void FaultUsage() // See https://www.pollydocs.org/chaos/fault#defaults for defaults. var optionsDefault = new FaultStrategyOptions(); - // 60% of invocations will be randomly affected. + // 10% of invocations will be randomly affected. var basicOptions = new FaultStrategyOptions { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To use a custom function to generate the fault to inject. @@ -37,7 +37,7 @@ public static void FaultUsage() return new ValueTask(exception); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To get notifications when a fault is injected @@ -45,7 +45,7 @@ public static void FaultUsage() { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.1, OnFaultInjected = static args => { Console.WriteLine("OnFaultInjected, Exception: {0}, Operation: {1}.", args.Fault.Message, args.Context.OperationKey); @@ -53,12 +53,12 @@ public static void FaultUsage() } }; - // Add a fault strategy with a FaultStrategyOptions{} instance to the pipeline + // Add a fault strategy with a FaultStrategyOptions instance to the pipeline new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); // There are also a couple of handy overloads to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosFault(0.6, () => new InvalidOperationException("Dummy exception")); + new ResiliencePipelineBuilder().AddChaosFault(0.1, () => new InvalidOperationException("Dummy exception")); #endregion #region chaos-fault-execution @@ -67,7 +67,7 @@ public static void FaultUsage() { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }) .AddRetry(new RetryStrategyOptions { diff --git a/src/Snippets/Docs/Chaos.Latency.cs b/src/Snippets/Docs/Chaos.Latency.cs index a3f78474062..4ece0615cc8 100644 --- a/src/Snippets/Docs/Chaos.Latency.cs +++ b/src/Snippets/Docs/Chaos.Latency.cs @@ -15,12 +15,12 @@ public static void LatencyUsage() // See https://www.pollydocs.org/chaos/latency#defaults for defaults. var optionsDefault = new LatencyStrategyOptions(); - // 60% of invocations will be randomly affected. + // 10% of invocations will be randomly affected. var basicOptions = new LatencyStrategyOptions { Latency = TimeSpan.FromSeconds(30), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To use a custom function to generate the latency to inject. @@ -38,7 +38,7 @@ public static void LatencyUsage() return new ValueTask(latency); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To get notifications when a delay is injected @@ -46,7 +46,7 @@ public static void LatencyUsage() { Latency = TimeSpan.FromSeconds(30), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.1, OnLatency = static args => { Console.WriteLine($"OnLatency, Latency: {args.Latency}, Operation: {args.Context.OperationKey}."); @@ -54,12 +54,12 @@ public static void LatencyUsage() } }; - // Add a latency strategy with a LatencyStrategyOptions{} instance to the pipeline + // Add a latency strategy with a LatencyStrategyOptions instance to the pipeline new ResiliencePipelineBuilder().AddChaosLatency(optionsDefault); new ResiliencePipelineBuilder().AddChaosLatency(optionsWithLatencyGenerator); // There are also a handy overload to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosLatency(0.6, TimeSpan.FromSeconds(30)); + new ResiliencePipelineBuilder().AddChaosLatency(0.1, TimeSpan.FromSeconds(30)); #endregion #region chaos-latency-execution @@ -68,7 +68,7 @@ public static void LatencyUsage() { Latency = TimeSpan.FromSeconds(10), Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }) .AddTimeout(TimeSpan.FromSeconds(5)) .AddRetry(new RetryStrategyOptions diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index e08343b609e..33d07c884dd 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -28,7 +28,7 @@ public static void ResultUsage() return new ValueTask?>(Outcome.FromResult(result)); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }; // To get notifications when a result is injected @@ -36,7 +36,7 @@ public static void ResultUsage() { OutcomeGenerator = (_) => new ValueTask?>(Outcome.FromResult(HttpStatusCode.TooManyRequests)), Enabled = true, - InjectionRate = 0.6, + InjectionRate = 0.1, OnOutcomeInjected = static args => { Console.WriteLine($"OnBehaviorInjected, Outcome: {args.Outcome.Result}, Operation: {args.Context.OperationKey}."); @@ -49,7 +49,7 @@ public static void ResultUsage() new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); // There are also a couple of handy overloads to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosResult(0.6, () => HttpStatusCode.TooManyRequests); + new ResiliencePipelineBuilder().AddChaosResult(0.1, () => HttpStatusCode.TooManyRequests); #endregion #region chaos-result-execution @@ -67,7 +67,7 @@ public static void ResultUsage() return new ValueTask?>(Outcome.FromResult(result)); }, Enabled = true, - InjectionRate = 0.6 + InjectionRate = 0.1 }) .AddRetry(new RetryStrategyOptions { From fe9a97379ab9a62059ff71e8288f1d8d55ca163e Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Wed, 17 Jan 2024 10:58:02 +0100 Subject: [PATCH 19/32] Rename logo --- docs/media/{Simmy-Logo.png => simmy-logo.png} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/media/{Simmy-Logo.png => simmy-logo.png} (100%) diff --git a/docs/media/Simmy-Logo.png b/docs/media/simmy-logo.png similarity index 100% rename from docs/media/Simmy-Logo.png rename to docs/media/simmy-logo.png From 46b4fe5473e08879b49c5a685d756f280253141b Mon Sep 17 00:00:00 2001 From: peter-csala <57183693+peter-csala@users.noreply.github.com> Date: Wed, 17 Jan 2024 10:59:11 +0100 Subject: [PATCH 20/32] Apply suggestions from code review Co-authored-by: Martin Costello --- docs/chaos/behavior.md | 2 +- docs/chaos/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 3f1606ca4bc..a815ea440a5 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -127,7 +127,7 @@ sequenceDiagram ❌ DON'T -Use behavior strategies to inject delays +Use behavior strategies to inject delays. ✅ DO diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 0576c1af715..be6ead06bc9 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -15,7 +15,7 @@ There are a lot of questions when it comes to chaos-engineering and making sure Using Polly helps introduce resilience to a project, but we don't want to have to wait for expected or unexpected failures to test it out. A resilience could be wrongly implemented; testing the scenarios is not straightforward; and mocking failure of some dependencies (for example a cloud SaaS or PaaS service) is not always straightforward. -### What is needed, to simulate chaotic scenarios? +### What is needed to simulate chaotic scenarios? * A way to simulate failures of dependencies (any service dependency for example). * Define when to fail based on some external factors - maybe global configuration or some rule. From edf0d9a84fcb08fc08a02777df4f24b9ac800ef1 Mon Sep 17 00:00:00 2001 From: peter-csala <57183693+peter-csala@users.noreply.github.com> Date: Wed, 17 Jan 2024 10:59:52 +0100 Subject: [PATCH 21/32] Update docs/chaos/index.md Co-authored-by: Martin Costello --- docs/chaos/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/chaos/index.md b/docs/chaos/index.md index be6ead06bc9..29ab37cc4d1 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -2,7 +2,7 @@ [Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. -![Simmy](../media/Simmy-Logo.png) +![Simmy](../media/simmy-logo.png) ## Motivation From 7269a662e45051dfb6ce8ca8fa069fd57bca04bc Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Wed, 17 Jan 2024 11:19:27 +0100 Subject: [PATCH 22/32] Fix chaos strategy registration order --- docs/chaos/behavior.md | 12 ++++++------ docs/chaos/fault.md | 12 ++++++------ docs/chaos/index.md | 2 +- docs/chaos/latency.md | 14 +++++++------- docs/chaos/result.md | 18 +++++++++--------- src/Snippets/Docs/Chaos.Behavior.cs | 12 ++++++------ src/Snippets/Docs/Chaos.Fault.cs | 12 ++++++------ src/Snippets/Docs/Chaos.Latency.cs | 14 +++++++------- src/Snippets/Docs/Chaos.Result.cs | 18 +++++++++--------- 9 files changed, 57 insertions(+), 57 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index a815ea440a5..775bbef381a 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -53,12 +53,6 @@ Example execution: ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed innermost in the pipelines - { - BehaviorAction = static args => RestartRedisVM(), - Enabled = true, - InjectionRate = 0.05 - }) .AddRetry(new RetryStrategyOptions { ShouldHandle = new PredicateBuilder().Handle(), @@ -67,6 +61,12 @@ var pipeline = new ResiliencePipelineBuilder() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) + .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + { + BehaviorAction = static args => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.05 + }) .Build(); ``` diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 0dc04d96204..ef93976518b 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -71,12 +71,6 @@ Example execution: ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed innermost in the pipelines - { - Fault = new InvalidOperationException("Dummy exception"), - Enabled = true, - InjectionRate = 0.1 - }) .AddRetry(new RetryStrategyOptions { ShouldHandle = new PredicateBuilder().Handle(), @@ -85,6 +79,12 @@ var pipeline = new ResiliencePipelineBuilder() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) + .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + { + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.1 + }) .Build(); ``` diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 29ab37cc4d1..94274f94c77 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -37,7 +37,7 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili ## Usage -It is usual to place the monkey strategy innermost in a Resilience Pipeline. By placing the monkey strategies innermost, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. +It is usual to place the monkey strategy as the last strategy in the resilience pipeline. By placing the monkey strategies as last, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. ## Common options across strategies diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index e98dc9ac10f..e4b0a11c921 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -71,13 +71,6 @@ Example execution: ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed innermost in the pipelines - { - Latency = TimeSpan.FromSeconds(10), - Enabled = true, - InjectionRate = 0.1 - }) - .AddTimeout(TimeSpan.FromSeconds(5)) .AddRetry(new RetryStrategyOptions { ShouldHandle = new PredicateBuilder().Handle(), @@ -86,6 +79,13 @@ var pipeline = new ResiliencePipelineBuilder() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) + .AddTimeout(TimeSpan.FromSeconds(5)) + .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + { + Latency = TimeSpan.FromSeconds(10), + Enabled = true, + InjectionRate = 0.1 + }) .Build(); ``` diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 17891ea118f..e19491385b7 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -64,7 +64,15 @@ Example execution: ```cs var pipeline = new ResiliencePipelineBuilder() - .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed innermost in the pipelines + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline { OutcomeGenerator = static args => { @@ -79,14 +87,6 @@ var pipeline = new ResiliencePipelineBuilder() Enabled = true, InjectionRate = 0.1 }) - .AddRetry(new RetryStrategyOptions - { - ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), - BackoffType = DelayBackoffType.Exponential, - UseJitter = true, - MaxRetryAttempts = 4, - Delay = TimeSpan.FromSeconds(3), - }) .Build(); ``` diff --git a/src/Snippets/Docs/Chaos.Behavior.cs b/src/Snippets/Docs/Chaos.Behavior.cs index 90f2673dd9e..42edb35df42 100644 --- a/src/Snippets/Docs/Chaos.Behavior.cs +++ b/src/Snippets/Docs/Chaos.Behavior.cs @@ -47,12 +47,6 @@ public static void BehaviorUsage() #region chaos-behavior-execution var pipeline = new ResiliencePipelineBuilder() - .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed innermost in the pipelines - { - BehaviorAction = static args => RestartRedisVM(), - Enabled = true, - InjectionRate = 0.05 - }) .AddRetry(new RetryStrategyOptions { ShouldHandle = new PredicateBuilder().Handle(), @@ -61,6 +55,12 @@ public static void BehaviorUsage() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) + .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + { + BehaviorAction = static args => RestartRedisVM(), + Enabled = true, + InjectionRate = 0.05 + }) .Build(); #endregion } diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs index 08e9df54b7d..e4fdf837765 100644 --- a/src/Snippets/Docs/Chaos.Fault.cs +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -63,12 +63,6 @@ public static void FaultUsage() #region chaos-fault-execution var pipeline = new ResiliencePipelineBuilder() - .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed innermost in the pipelines - { - Fault = new InvalidOperationException("Dummy exception"), - Enabled = true, - InjectionRate = 0.1 - }) .AddRetry(new RetryStrategyOptions { ShouldHandle = new PredicateBuilder().Handle(), @@ -77,6 +71,12 @@ public static void FaultUsage() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) + .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + { + Fault = new InvalidOperationException("Dummy exception"), + Enabled = true, + InjectionRate = 0.1 + }) .Build(); #endregion } diff --git a/src/Snippets/Docs/Chaos.Latency.cs b/src/Snippets/Docs/Chaos.Latency.cs index 4ece0615cc8..8407a542e5e 100644 --- a/src/Snippets/Docs/Chaos.Latency.cs +++ b/src/Snippets/Docs/Chaos.Latency.cs @@ -64,13 +64,6 @@ public static void LatencyUsage() #region chaos-latency-execution var pipeline = new ResiliencePipelineBuilder() - .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed innermost in the pipelines - { - Latency = TimeSpan.FromSeconds(10), - Enabled = true, - InjectionRate = 0.1 - }) - .AddTimeout(TimeSpan.FromSeconds(5)) .AddRetry(new RetryStrategyOptions { ShouldHandle = new PredicateBuilder().Handle(), @@ -79,6 +72,13 @@ public static void LatencyUsage() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) + .AddTimeout(TimeSpan.FromSeconds(5)) + .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + { + Latency = TimeSpan.FromSeconds(10), + Enabled = true, + InjectionRate = 0.1 + }) .Build(); #endregion } diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index 33d07c884dd..01ac872212b 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -54,7 +54,15 @@ public static void ResultUsage() #region chaos-result-execution var pipeline = new ResiliencePipelineBuilder() - .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed innermost in the pipelines + .AddRetry(new RetryStrategyOptions + { + ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), + BackoffType = DelayBackoffType.Exponential, + UseJitter = true, + MaxRetryAttempts = 4, + Delay = TimeSpan.FromSeconds(3), + }) + .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline { OutcomeGenerator = static args => { @@ -69,14 +77,6 @@ public static void ResultUsage() Enabled = true, InjectionRate = 0.1 }) - .AddRetry(new RetryStrategyOptions - { - ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), - BackoffType = DelayBackoffType.Exponential, - UseJitter = true, - MaxRetryAttempts = 4, - Delay = TimeSpan.FromSeconds(3), - }) .Build(); #endregion } From fa7805d2622c9191eb01d5933e03cbdc96a343ef Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Wed, 17 Jan 2024 16:33:29 +0100 Subject: [PATCH 23/32] Apply suggested changes to Result chaos --- docs/chaos/result.md | 40 +++++++++++++++++++----------- src/Snippets/Docs/Chaos.Result.cs | 41 ++++++++++++++++++++----------- 2 files changed, 51 insertions(+), 30 deletions(-) diff --git a/docs/chaos/result.md b/docs/chaos/result.md index e19491385b7..25291adf564 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -18,29 +18,34 @@ The outcome chaos strategy is designed to inject or substitute fake results into ```cs // Outcome using the default options. // See https://www.pollydocs.org/chaos/result#defaults for defaults. -var optionsDefault = new OutcomeStrategyOptions(); +var optionsDefault = new OutcomeStrategyOptions(); // To use a custom function to generate the result to inject. -var optionsWithResultGenerator = new OutcomeStrategyOptions +var optionsWithResultGenerator = new OutcomeStrategyOptions { OutcomeGenerator = static args => { - HttpStatusCode result = args.Context.OperationKey switch + HttpStatusCode statusCode = args.Context.OperationKey switch { "A" => HttpStatusCode.TooManyRequests, "B" => HttpStatusCode.NotFound, _ => HttpStatusCode.OK }; - return new ValueTask?>(Outcome.FromResult(result)); + var response = new HttpResponseMessage(statusCode); + return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, InjectionRate = 0.1 }; // To get notifications when a result is injected -var optionsOnBehaviorInjected = new OutcomeStrategyOptions +var optionsOnBehaviorInjected = new OutcomeStrategyOptions { - OutcomeGenerator = (_) => new ValueTask?>(Outcome.FromResult(HttpStatusCode.TooManyRequests)), + OutcomeGenerator = static args => + { + var response = new HttpResponseMessage(HttpStatusCode.TooManyRequests); + return new ValueTask?>(Outcome.FromResult(response)); + }, Enabled = true, InjectionRate = 0.1, OnOutcomeInjected = static args => @@ -51,11 +56,11 @@ var optionsOnBehaviorInjected = new OutcomeStrategyOptions }; // Add a result strategy with a OutcomeStrategyOptions{} instance to the pipeline -new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); -new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); +new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); +new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); // There are also a couple of handy overloads to inject the chaos easily. -new ResiliencePipelineBuilder().AddChaosResult(0.1, () => HttpStatusCode.TooManyRequests); +new ResiliencePipelineBuilder().AddChaosResult(0.1, () => new HttpResponseMessage(HttpStatusCode.TooManyRequests)); ``` @@ -63,26 +68,31 @@ Example execution: ```cs -var pipeline = new ResiliencePipelineBuilder() - .AddRetry(new RetryStrategyOptions +var pipeline = new ResiliencePipelineBuilder() + .AddRetry(new RetryStrategyOptions { - ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), + ShouldHandle = static args => args.Outcome switch + { + { Result.StatusCode: HttpStatusCode.TooManyRequests } => PredicateResult.True(), + _ => PredicateResult.False() + }, BackoffType = DelayBackoffType.Exponential, UseJitter = true, MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline { OutcomeGenerator = static args => { - HttpStatusCode result = args.Context.OperationKey switch + HttpStatusCode statusCode = args.Context.OperationKey switch { "A" => HttpStatusCode.TooManyRequests, "B" => HttpStatusCode.NotFound, _ => HttpStatusCode.OK }; - return new ValueTask?>(Outcome.FromResult(result)); + var response = new HttpResponseMessage(statusCode); + return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, InjectionRate = 0.1 diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index 01ac872212b..2f6c0cfb34a 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -1,4 +1,5 @@ using System.Net; +using System.Net.Http; using Polly.Retry; using Polly.Simmy; using Polly.Simmy.Outcomes; @@ -12,29 +13,34 @@ public static void ResultUsage() #region chaos-result-usage // Outcome using the default options. // See https://www.pollydocs.org/chaos/result#defaults for defaults. - var optionsDefault = new OutcomeStrategyOptions(); + var optionsDefault = new OutcomeStrategyOptions(); // To use a custom function to generate the result to inject. - var optionsWithResultGenerator = new OutcomeStrategyOptions + var optionsWithResultGenerator = new OutcomeStrategyOptions { OutcomeGenerator = static args => { - HttpStatusCode result = args.Context.OperationKey switch + HttpStatusCode statusCode = args.Context.OperationKey switch { "A" => HttpStatusCode.TooManyRequests, "B" => HttpStatusCode.NotFound, _ => HttpStatusCode.OK }; - return new ValueTask?>(Outcome.FromResult(result)); + var response = new HttpResponseMessage(statusCode); + return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, InjectionRate = 0.1 }; // To get notifications when a result is injected - var optionsOnBehaviorInjected = new OutcomeStrategyOptions + var optionsOnBehaviorInjected = new OutcomeStrategyOptions { - OutcomeGenerator = (_) => new ValueTask?>(Outcome.FromResult(HttpStatusCode.TooManyRequests)), + OutcomeGenerator = static args => + { + var response = new HttpResponseMessage(HttpStatusCode.TooManyRequests); + return new ValueTask?>(Outcome.FromResult(response)); + }, Enabled = true, InjectionRate = 0.1, OnOutcomeInjected = static args => @@ -45,34 +51,39 @@ public static void ResultUsage() }; // Add a result strategy with a OutcomeStrategyOptions{} instance to the pipeline - new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); - new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); + new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); + new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); // There are also a couple of handy overloads to inject the chaos easily. - new ResiliencePipelineBuilder().AddChaosResult(0.1, () => HttpStatusCode.TooManyRequests); + new ResiliencePipelineBuilder().AddChaosResult(0.1, () => new HttpResponseMessage(HttpStatusCode.TooManyRequests)); #endregion #region chaos-result-execution - var pipeline = new ResiliencePipelineBuilder() - .AddRetry(new RetryStrategyOptions + var pipeline = new ResiliencePipelineBuilder() + .AddRetry(new RetryStrategyOptions { - ShouldHandle = static args => new ValueTask(args.Outcome.Result == HttpStatusCode.TooManyRequests), + ShouldHandle = static args => args.Outcome switch + { + { Result.StatusCode: HttpStatusCode.TooManyRequests } => PredicateResult.True(), + _ => PredicateResult.False() + }, BackoffType = DelayBackoffType.Exponential, UseJitter = true, MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline { OutcomeGenerator = static args => { - HttpStatusCode result = args.Context.OperationKey switch + HttpStatusCode statusCode = args.Context.OperationKey switch { "A" => HttpStatusCode.TooManyRequests, "B" => HttpStatusCode.NotFound, _ => HttpStatusCode.OK }; - return new ValueTask?>(Outcome.FromResult(result)); + var response = new HttpResponseMessage(statusCode); + return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, InjectionRate = 0.1 From c34305ff20763c99aebd22ee2b9df5d11fc4cbb4 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Wed, 17 Jan 2024 17:17:35 +0100 Subject: [PATCH 24/32] Use InternalServerError for status code --- docs/chaos/result.md | 20 ++++---------------- src/Snippets/Docs/Chaos.Result.cs | 20 ++++---------------- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 25291adf564..9b08ee11cac 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -25,13 +25,7 @@ var optionsWithResultGenerator = new OutcomeStrategyOptions { OutcomeGenerator = static args => { - HttpStatusCode statusCode = args.Context.OperationKey switch - { - "A" => HttpStatusCode.TooManyRequests, - "B" => HttpStatusCode.NotFound, - _ => HttpStatusCode.OK - }; - var response = new HttpResponseMessage(statusCode); + var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, @@ -43,7 +37,7 @@ var optionsOnBehaviorInjected = new OutcomeStrategyOptions { OutcomeGenerator = static args => { - var response = new HttpResponseMessage(HttpStatusCode.TooManyRequests); + var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, @@ -73,7 +67,7 @@ var pipeline = new ResiliencePipelineBuilder() { ShouldHandle = static args => args.Outcome switch { - { Result.StatusCode: HttpStatusCode.TooManyRequests } => PredicateResult.True(), + { Result.StatusCode: HttpStatusCode.InternalServerError } => PredicateResult.True(), _ => PredicateResult.False() }, BackoffType = DelayBackoffType.Exponential, @@ -85,13 +79,7 @@ var pipeline = new ResiliencePipelineBuilder() { OutcomeGenerator = static args => { - HttpStatusCode statusCode = args.Context.OperationKey switch - { - "A" => HttpStatusCode.TooManyRequests, - "B" => HttpStatusCode.NotFound, - _ => HttpStatusCode.OK - }; - var response = new HttpResponseMessage(statusCode); + var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index 2f6c0cfb34a..9079949b8b3 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -20,13 +20,7 @@ public static void ResultUsage() { OutcomeGenerator = static args => { - HttpStatusCode statusCode = args.Context.OperationKey switch - { - "A" => HttpStatusCode.TooManyRequests, - "B" => HttpStatusCode.NotFound, - _ => HttpStatusCode.OK - }; - var response = new HttpResponseMessage(statusCode); + var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, @@ -38,7 +32,7 @@ public static void ResultUsage() { OutcomeGenerator = static args => { - var response = new HttpResponseMessage(HttpStatusCode.TooManyRequests); + var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, @@ -64,7 +58,7 @@ public static void ResultUsage() { ShouldHandle = static args => args.Outcome switch { - { Result.StatusCode: HttpStatusCode.TooManyRequests } => PredicateResult.True(), + { Result.StatusCode: HttpStatusCode.InternalServerError } => PredicateResult.True(), _ => PredicateResult.False() }, BackoffType = DelayBackoffType.Exponential, @@ -76,13 +70,7 @@ public static void ResultUsage() { OutcomeGenerator = static args => { - HttpStatusCode statusCode = args.Context.OperationKey switch - { - "A" => HttpStatusCode.TooManyRequests, - "B" => HttpStatusCode.NotFound, - _ => HttpStatusCode.OK - }; - var response = new HttpResponseMessage(statusCode); + var response = new HttpResponseMessage(HttpStatusCode.InternalServerError); return new ValueTask?>(Outcome.FromResult(response)); }, Enabled = true, From e00a12d2ccd64e13cf16ba5cfe663d302d7a8dfb Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Wed, 17 Jan 2024 17:26:35 +0100 Subject: [PATCH 25/32] Remove default options where it does not make sense --- docs/chaos/behavior.md | 8 ++------ docs/chaos/fault.md | 10 +++------- docs/chaos/result.md | 6 +----- src/Snippets/Docs/Chaos.Behavior.cs | 10 +++------- src/Snippets/Docs/Chaos.Fault.cs | 12 ++++-------- src/Snippets/Docs/Chaos.Result.cs | 6 +----- 6 files changed, 14 insertions(+), 38 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 775bbef381a..40b4fcdc812 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -14,10 +14,6 @@ The behavior chaos strategy is designed to inject custom behaviors into system o ```cs -// Behavior using the default options. -// See https://www.pollydocs.org/chaos/behavior#defaults for defaults. -var optionsDefault = new BehaviorStrategyOptions(); - // To use a custom function to generate the behavior to inject. var optionsWithBehaviorGenerator = new BehaviorStrategyOptions { @@ -40,8 +36,8 @@ var optionsOnBehaviorInjected = new BehaviorStrategyOptions }; // Add a behavior strategy with a BehaviorStrategyOptions instance to the pipeline -new ResiliencePipelineBuilder().AddChaosBehavior(optionsDefault); -new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); +new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); +new ResiliencePipelineBuilder().AddChaosBehavior(optionsOnBehaviorInjected); // There are also a handy overload to inject the chaos easily. new ResiliencePipelineBuilder().AddChaosBehavior(0.05, RestartRedisVM); diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index ef93976518b..75af219b0f4 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -14,12 +14,8 @@ The fault chaos strategy is designed to introduce faults (exceptions) into the s ```cs -// Fault using the default options. -// See https://www.pollydocs.org/chaos/fault#defaults for defaults. -var optionsDefault = new FaultStrategyOptions(); - // 10% of invocations will be randomly affected. -var basicOptions = new FaultStrategyOptions +var optionsBasic = new FaultStrategyOptions { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, @@ -58,8 +54,8 @@ var optionsOnFaultInjected = new FaultStrategyOptions }; // Add a fault strategy with a FaultStrategyOptions instance to the pipeline -new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); -new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); +new ResiliencePipelineBuilder().AddChaosFault(optionsBasic); +new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); // There are also a couple of handy overloads to inject the chaos easily. new ResiliencePipelineBuilder().AddChaosFault(0.1, () => new InvalidOperationException("Dummy exception")); diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 9b08ee11cac..77ef30d3bef 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -16,10 +16,6 @@ The outcome chaos strategy is designed to inject or substitute fake results into ```cs -// Outcome using the default options. -// See https://www.pollydocs.org/chaos/result#defaults for defaults. -var optionsDefault = new OutcomeStrategyOptions(); - // To use a custom function to generate the result to inject. var optionsWithResultGenerator = new OutcomeStrategyOptions { @@ -50,8 +46,8 @@ var optionsOnBehaviorInjected = new OutcomeStrategyOptions }; // Add a result strategy with a OutcomeStrategyOptions{} instance to the pipeline -new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); +new ResiliencePipelineBuilder().AddChaosResult(optionsOnBehaviorInjected); // There are also a couple of handy overloads to inject the chaos easily. new ResiliencePipelineBuilder().AddChaosResult(0.1, () => new HttpResponseMessage(HttpStatusCode.TooManyRequests)); diff --git a/src/Snippets/Docs/Chaos.Behavior.cs b/src/Snippets/Docs/Chaos.Behavior.cs index 42edb35df42..40a97eebdb9 100644 --- a/src/Snippets/Docs/Chaos.Behavior.cs +++ b/src/Snippets/Docs/Chaos.Behavior.cs @@ -1,4 +1,4 @@ -using System.Net; +using System.Net.Http; using Polly.Retry; using Polly.Simmy; using Polly.Simmy.Behavior; @@ -12,10 +12,6 @@ public static void BehaviorUsage() static ValueTask RestartRedisVM() => ValueTask.CompletedTask; #region chaos-behavior-usage - // Behavior using the default options. - // See https://www.pollydocs.org/chaos/behavior#defaults for defaults. - var optionsDefault = new BehaviorStrategyOptions(); - // To use a custom function to generate the behavior to inject. var optionsWithBehaviorGenerator = new BehaviorStrategyOptions { @@ -38,8 +34,8 @@ public static void BehaviorUsage() }; // Add a behavior strategy with a BehaviorStrategyOptions instance to the pipeline - new ResiliencePipelineBuilder().AddChaosBehavior(optionsDefault); - new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); + new ResiliencePipelineBuilder().AddChaosBehavior(optionsWithBehaviorGenerator); + new ResiliencePipelineBuilder().AddChaosBehavior(optionsOnBehaviorInjected); // There are also a handy overload to inject the chaos easily. new ResiliencePipelineBuilder().AddChaosBehavior(0.05, RestartRedisVM); diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs index e4fdf837765..6c443b286d8 100644 --- a/src/Snippets/Docs/Chaos.Fault.cs +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -1,4 +1,4 @@ -using System.Net; +using System.Net.Http; using Polly.Retry; using Polly.Simmy; using Polly.Simmy.Fault; @@ -10,12 +10,8 @@ internal static partial class Chaos public static void FaultUsage() { #region chaos-fault-usage - // Fault using the default options. - // See https://www.pollydocs.org/chaos/fault#defaults for defaults. - var optionsDefault = new FaultStrategyOptions(); - // 10% of invocations will be randomly affected. - var basicOptions = new FaultStrategyOptions + var optionsBasic = new FaultStrategyOptions { Fault = new InvalidOperationException("Dummy exception"), Enabled = true, @@ -54,8 +50,8 @@ public static void FaultUsage() }; // Add a fault strategy with a FaultStrategyOptions instance to the pipeline - new ResiliencePipelineBuilder().AddChaosFault(optionsDefault); - new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); + new ResiliencePipelineBuilder().AddChaosFault(optionsBasic); + new ResiliencePipelineBuilder().AddChaosFault(optionsWithFaultGenerator); // There are also a couple of handy overloads to inject the chaos easily. new ResiliencePipelineBuilder().AddChaosFault(0.1, () => new InvalidOperationException("Dummy exception")); diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index 9079949b8b3..de8c5bff67d 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -11,10 +11,6 @@ internal static partial class Chaos public static void ResultUsage() { #region chaos-result-usage - // Outcome using the default options. - // See https://www.pollydocs.org/chaos/result#defaults for defaults. - var optionsDefault = new OutcomeStrategyOptions(); - // To use a custom function to generate the result to inject. var optionsWithResultGenerator = new OutcomeStrategyOptions { @@ -45,8 +41,8 @@ public static void ResultUsage() }; // Add a result strategy with a OutcomeStrategyOptions{} instance to the pipeline - new ResiliencePipelineBuilder().AddChaosResult(optionsDefault); new ResiliencePipelineBuilder().AddChaosResult(optionsWithResultGenerator); + new ResiliencePipelineBuilder().AddChaosResult(optionsOnBehaviorInjected); // There are also a couple of handy overloads to inject the chaos easily. new ResiliencePipelineBuilder().AddChaosResult(0.1, () => new HttpResponseMessage(HttpStatusCode.TooManyRequests)); From 93eed656d62cbc1e3bf71bc168cca15aa953fd91 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Wed, 17 Jan 2024 17:37:37 +0100 Subject: [PATCH 26/32] Fix spelling --- docs/chaos/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 94274f94c77..18e1f5dd742 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -1,12 +1,12 @@ # Chaos engineering with Simmy -[Simmy][simmy] is a major new companion project adding a chaos-engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. +[Simmy][simmy] is a major new companion project adding a chaos engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. ![Simmy](../media/simmy-logo.png) ## Motivation -There are a lot of questions when it comes to chaos-engineering and making sure that a system is actually ready to face the worst possible scenarios: +There are a lot of questions when it comes to chaos engineering and making sure that a system is actually ready to face the worst possible scenarios: * Is my system resilient enough? * Am I handling the right exceptions/scenarios? From 1dcc05218e3b5e9b07bc159b9157a2697fec3d8e Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Thu, 18 Jan 2024 09:23:10 +0100 Subject: [PATCH 27/32] Delete simmy logos --- logos/Simmy-Logo.png | Bin 23687 -> 0 bytes logos/Simmy-Logo@1x.png | Bin 10802 -> 0 bytes logos/Simmy-Logo@2x.png | Bin 23687 -> 0 bytes logos/Simmy-Logo@3x.png | Bin 37525 -> 0 bytes logos/Simmy-Logo@4x.png | Bin 25786 -> 0 bytes logos/Simmy-Logo@5x.png | Bin 113286 -> 0 bytes logos/Simmy-Monkey.png | Bin 11360 -> 0 bytes logos/Simmy-Monkey@5x.png | Bin 47653 -> 0 bytes 8 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 logos/Simmy-Logo.png delete mode 100644 logos/Simmy-Logo@1x.png delete mode 100644 logos/Simmy-Logo@2x.png delete mode 100644 logos/Simmy-Logo@3x.png delete mode 100644 logos/Simmy-Logo@4x.png delete mode 100644 logos/Simmy-Logo@5x.png delete mode 100644 logos/Simmy-Monkey.png delete mode 100644 logos/Simmy-Monkey@5x.png diff --git a/logos/Simmy-Logo.png b/logos/Simmy-Logo.png deleted file mode 100644 index 3f55fd7e5c920a99731f149b9e4027f92517fa10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23687 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

{qdJ{Tdif0aqv8d z3lGL+&62^v!J(QC#!2A^ZCEdh&cnS2s|ie&3=SR+<^0eW?VSGYU0^KVCzv)798{Y@ zmJALK4)ug_p3^_p&ehMN^YMk9h5GctIM}y92GaMv68U%G`=hf)VJz0|lMGm=lEGt);T16OEVBOga-vmymuvtLRk%j9VL#sqeAmRIC3dsc z-`g2?S)`B6c5A!iI-%@+tKj(w=k-_(DMx~7$e<=bO_KS=Ae?9Z0I;j}NgpkUhuAJv zo{Ik0Urj76S zOpZz~r9=WTDK^%aSozgAZr($&yEH;(?w9zeAO z9Us|(L{I{e7%y3T-I>R+?yJTghF4Y^Sh=QS(SDLFp{S@3-AnUPlB=P}ZNe)jkgG)D zl_KzJCOj&Io5mm^4pk0-$P6w%HVGiD$YT7N=cEva48kaMgTgROM0JLs?nKN~5hQu= z$0P(}CPKP`x|oE@dL6qe>IHeQ3{0FsgZkiS4X8qMMTqQI6uc^Ue(c1ime z2r$Kp$6zNU`%{QpLI?;U-$+)gfK<(gx*Spx!pz(ahr-w)tAM1jhWp3}0nL%F2E#uH zflMR=!=)VJs4JdNz=;rXlYg9o?grO(|k_IR~ z547SzkX^ZuT)B{)IiRs1n4!ZA*Fdk^1tYi@@t_H20J0O1HPZAz1TYN-IZ6d-Xl??f zup5-To>1KR;v^-f2Q(If8Lbzw`)0Tn@jw*<^$FBPRMe0%RGayzj!4*Dr(@ghT9ogp zgrOVzJx6N9G3DsN7~d^|BMT}ao7GUjpu6P(l#yEqa0LT?$OwDShbZ6xMv(0omYeo1 zOAT=g2?}W(veyCA==A)A8IUjnj2w8))EvPxZ--b?0;>bq(^kYL$s+`l0CuIFrOR*c zP(tuOFxH0w_wSFpnYapV7*iV%Ac~N*+KZHgK;2z7)3^!5W7GJY86F_KcYw|OkvN5+ z13s68X+sF6&o~KtREm4iM|@$!GwSMWNU3LUj8Igtjh6c>5AW{c*?+Kz3-Li3E%opytT% z9)2|3eaFJncQn+3-jHN3B*|-8*jXHe@Tn>TEDDqQK?8dc-?avjt&0)f_%Wh;Y9ZwS zj@}fpkqYX~66}oTV|Pf!?s|qD6(Q^@uY%tnz|qG}z%j>9!o$M3@6k(*&cLnG~&oNVq-aPtE5~v;Q;J zFkQ<*Fai>*L7al}F$WBtI7k&KkY52IuMmQ(z}RCzgXVLeB#}ij!DsycsfnRo=gn(i z4zt?{v_JuLK`-sacd5_SO^w^Y8Id?71t=Lm1G!_)f~#zpxWDJ=)j0F46Y<8|pWwOw zK8>xLx24?K;$`cwco}f=@gs1`025;;jzR9YA3*gD6%(J*Ab*#_OjM=JxFd?nXBD)< zesC3!LjJf*5wH3R{*`Z{cJta%@GU%rgko+@Z=6Qy!JiZwq*=K{gfyss2b7T*CP-j^x7++T8Z`k}0Fx6-5F@$mzLwt=LKxO4@d*84R)uxm?{$Sy1e6SEW-x!DUy2mh3 z+bW(~Lgf82I#(MYSULuSH?5WxXodYza?%~}jhc@7FW*Ma&|~50GYyOdVVczt;*7n| zeKgSQ7>tVZ01_~Hg?S=DcIBb)=${~O>{+Ou|8G<+dyxwjP`xUYIEADFe_quGh8f1u zo*IO=)FAxL`|u6B7-npXP>eOtB-)^2CC*mc9CX_Fn{--Ka}95t}gUx>%gEP*l8gd`LAD8q>>s?h(_ zI^>!XB!~1LyLoZ4eAWpPA>8;_->Q3$tG#VG8G@fvkimBA!$5LdaW4}qQA#%=sPt;L zVK$|1@Z%Fp+qIJ}fHwe$DyBvx0X4^q{#QH!SNDl9^qpXOh?h1NqhzuQS#o2~?0dl~ z_Mneek7v<6wFni0Vb|;8Wr1H57XJmoWB55OBC~{}*Lg z^2OKq)yy)K$N|Kt2{W)0d81}n&5bPI9+(*fNEDtP$HLjI7yMr@05eQTig-*kTTFew zvu-yR$UO?RrX|JhBc~$4p~#XVkvR<5w!c$4 z5G2#=ubIZ*<_(>UPrO541fv!EE+WB<_#70{JuoB>xHPgUY6`}1H+#IoAFOS0q?ANO zW!B;4AYz;ydjMt{f)IPmyct^laG0^J++x>gqA@5+Awt_eLU8LU7;Xx~wwH`ix8au2 z+wiCJyJ6NT6QQW773J4odKH(Pe>Hx2^I!1M!d2pUjOt*_Y{MB_4>?N&V8*tAChF}c zprda?@w9>^{Lte&;O%!jdS37sY%Cmuo8JY#Sh-#pNe`2Diq4LzTS92(HU!qa1w}4t z^cYHDdR*+oH)s}0r~VLTf)BXi+^)AR?VSQ5R2ZbC`?mEmF@|pK5~G_A{c&r-~2PKe^|iV)s|L z|L^bOmVYfoMMX6jHF3r0s8~m5GK6u30d*_h1!FNGHSGft(t=@BqVT9Ik<+I?j7S3^ zNS#&Aj#%;*VkUtib?ytLAq=T4hiR;x6Shz`O)S&P@OUT(y@}z?mB>@QB(l4oM0OWQ zLD!2}#d1?YCk)6jCdqkC*OuD)^>uDpB} z<}dgH^A~)I_uqaGj5eL@E0--7%fk;iG5z$Jm^g7Pj+rn5Zl`Kl$#{H$IOoo?oHL7n z7)3O0;`KKd;J=SQi^}ryhBdA^cRWhN-+&en5PSIi{G+?pAi8HcoMmG`xecR{PoAqW zlA{E`3t)H}>!zpgU|iqB|sZI8mu4 zv}!xC%E62+e(J`X@$MMrklJ4K2)sa_8X(cG)JXKBPWN|D*&y9%7)Xm=IPJvyjH z8vB34b~mxqx~XM+6n}XzTeDXScVRuLCK4zw?FBfvmdxx%phP?aL(Gkck~~O)UWHfW zxt+Q>A3A+JE*-2Um|_pr${C@WUWU1*lv991{L0RPVl1H{&{Fm7wQYcSG|H5Qa7`N${(w5Q=Fh zj>EJQkHmF9z6kR_T80Jl7YY(+jCeGL*Z%jiSc=QaFy*8ZFnaWG96kOB6y$k8sbLd? zWdB8)B*APFV3v1-NZ7J%FJ{003EqG2L+seHrODdU&pZQHUw<0PU%464P!x(wvyQB& zNCb2QzgY-Z_elV$Y3{-Wqkg!0je_FgA;bnGNo?C`2|r2N?92c~LhveBLmh|hwlSL5 z#@{7=mlI-IFkLNRhCEr$iJmX#gwLWeufixIe1LsjD!M^F-ZT@F^r(vUi}H};^`XxM z6A2~Q+i-d>^n?2@TD)xA(6c*J1fhJ?20v(^|=eMy^JAKDE9YIh1GaR&Et zz_|gaKb{~kh(Y%NYM5n$6r8q|Rj9dYZch-0Pe=&O!Np?6LI`jD!XB7?p?RQBjG^1f zm%!V5GW6KCCS*dARwpp@?p2J-FFpmAUossl*KEeZh0E~qf={sNn{S#Nt!nRHy!gxu zc<~v)>+|8L3FC3Zh{G{>a6b$?tUn6!z2dFTm(1pT`yiJIRGAyvWT-RGR7%l-(K+ge-`9NzNwfbIp zzUU1Cf5b)buYMoFjccIhSnDVbAXdEviK_K*lpGG)EFVk=tcnAQ!v{U!Z{Ph$1N^ER zCPCaFaA^!io8N2g1Q7{aE{hC=o@@PymVoN~?Mh1_VV>ksD>RI0_f4Rr`UeQXDe~yRZ~!-#}@Reh$Fr=3dtk?*s-tS@E;Y4 z91eyOyOxIlpYW#1P#KPc6NaWpB5$P8`*Nn;D-(`L1hu_-;<3E(wn#;G2_qdd(2c7L zQZ6ThBe*o7N(6PB5Gcz>8`K3Hv^WIr)p7!~4}ohXgKIUg_Y#6gHwHD-At@nd`(T~I z7M6%uM!gghnh+-IeA6->AkM9KqA`s5FYedM4@6ywGW!nn}`1v#w! zYAcp5TZ6@)Eyapu%UjqS!oeU`E&oC+so-+E;cz;IG~nk^l4+txk8YrhLgM2zW8zL1 zPr3@>?LPxEbr5b)m1O8qQ`iz*Wk-RE`LXZX5$<&`;xOWY#t-M-j@+>Q!cv0~j7e~7 zoobk^Zy*CJZW=Nx1|eQBhXEp)hf^xAGY#b~;-z0WPmFGqOJW}+;@)X)NuM=ETL0E& zI&MvkCOt%a)jxmypRb5L&A50fYF**C9FluBo?nS*wcg#6uRI7V(CB^wvPU9hw!zrm zqz%FHtPoTMb%bIDyp9%A@;KYAZlNxOg-4zN$R7Uu)`E$EF`N{A77j!aK^`|OEP(Af zE!Vkyi3iSiB|=ET1dKieQVm1t|A5N#2m*Z=)F>dw(y}XX%OQ^_D&e*tBd`a|2&09? zQ0&@+c*Q2}vWKi$r>#dRJiYqDH*5w>b8nj2;F6_Q5D0P@HDUlp9?=iiTy-Y4?Wn+# zrE9Qy)jBNsbP1{}Dh{}}Xe1(*jv^k5H;Rjwg!JR-bv(TNMkBC(g(W3OvWPQ?Rc^Mu zpG|8IaA_+MtO83!8YgF^4(-ekc*sLc+}=&U001BWNklr+bGr-{5Cse59w9i2VsH%FF`CAG6A^PFsw&UAmFU2kuC0|XvjI0LM~7DaWWcHC z=n3MM2L@-W--Q3-eDiB0mW5Ar9_IOwGXWv^6Qj6=fn9A-Hj*-SIc&*5Rb*5KW2lYl zaI5>mg6unYJfmy@6#@f+Ga5mnG#@|gb-F!x#{1amFu%e$V=h9Zs1T4o=7vVTe$-@G z88^|$Xmvmw{76MEEfiX$Q1m{ajUtG52cpFcN;ECI0)N#`lx2cMeHEg+*TLIwGECv_ zwPXEcZYd5UQM=PlbFf}T-0t8TIu(+X4>O*L=UlQvaBa1sPp=a6>3IUqKYJ>|k!!GG z<$A1G`88g6<^>@s983@{6{sqFho6Yx#uW{=1a3Qx*X)AH4Y7Pu=*g68CZwk5?zPav zI#gG~!@9h)hs|TOI4O8Cn^f5nCIitVNM0U0Q)LH-!IA(A7&KoPM3!b4HHEJbg*b@H z?KmVS2G^&3i`GuQ#vR=K{Py8b`$^@~x+bG|djj>pS;b|HALbACUIddp0vWe)VUK~` z7D>Nt*l3~YAF^NE~tjD{jUJ5vR3KaoF zUIb%1ejUCaagx)^fHqeG?Z-EFNI)eggM`T+%QlOe-%f!Pn-uub^FIX2o&p?xf_QFP zCT8B%Nm$MK+ds7NQ-HXe5DSx3m^6rlze2bsA+!YpnpcK*@UdXDJ|l4wTwkYD7YqN) zB?s~LArd@p2acUM3^!bNF8UAb{K{M{PlxNNb;ucfEVO(dOx=3*a{HnlDCd4xkj8~m_a%>1Dekh2Z5R|K~kBRU_3k4TJ)2MY~D#@?)PZa z`L>AXfpt-3g~3_uAGmhT;Jd!OQ$pES)zBS9$c?&?cy==!M2hDQ^gQd3q|;Sdx}8Ym zOoOsbp@eZ~eN^9Lm~^U3m4zo^M{O8;0#VBY*7$h^?xYMaQ^p8)XBv#aT~&jczP)f| zpNs7m8ecK-)&;Sbpg`)JR6a?rQ60`Sx-dcwau%GB_$b8Hzq4 zsG0=C3)*dLoM-E`W!y;S|7s43j=dbRs{}M&V|x>1uvk43fryneQ z84Z9&>LBO&l50X%$`Gwsj?k86P+Sdro7dSY18f0~8yBMq2_8o$sSR8hby_bardyt# zM(?7d2*qs;ugga4>hwjha!xTme#o3C1r+42kD_qYdQ^V29XS<1-T=>dO(N$Lf{PL+ zEzv1MjPPJ9@@$S%xlxm)nwoF|<^HHhch(fSF&PYH41Z<7G)@>ionNGx#G;^)IPRNp zEzh|JD9@^uzvva8vuvQb_|$57z#9@X8%*Wgm>AM2K93m57vugd(2elzCpU4sLT>_X zGeeJ!z~0N+ZEWO^%RRhEujEh=uM44S;bZ7_>ivKc5TVQb4bAizm=SG|iMYh&>UJ22 zTmTmDNPki*FzBOCzQWJ0y|KwJV~-w>JMZ{8di5-{;u>tUL#0a_1%(AoQl!wJHhADH z9SF91k&woO@tGRX!}U<|`iqAYsz(rM#oWKcj8UjL4bR#goj!0I{Kclz&PjA)CIR6g zM=mS7Fh%j2y8$u)z!i*}i&WXQ%Re*GVOlrhr{F6r^SYDs7)CE}_VO3kNP1mTYXaGhp z0_ue@HoD6RbZ@(4_`g|EW|DZD)hvA*!40oN)p}V~Yrw;jtHB+;)&!u!d*~?anT)_m zd+1yOkQE<1p28NteX-jrw}>E*g2I;TW*U-|>edqBl2!A23h97{G>hyy z(}WqRvs|jO0#zwR?dShQaKlQdo`(H=WEWgLDBx~4!(h;ih+S)<6CTz5$2#yLC+FA} zeqL_tMM8{oVqx_rRadXfEzsaqwJY=TJV1d0;*)?71 z5D_gFi0KH$4dGR=qY=4C_EP}gP{!^uDKs9PXfUf_6r~iNEqk%*xJkHr*p2&=F^z5d zwXy&FLPPAagye1zVfepJSwcW(_#lvItTs2TiMbzs?K(wPZMydsv{mI?97waZYz|4t%ww`b^h5_+6@w3PS9yhHS9gs>OH3~xHli4j3d|Ds3D$ZD> z!>f?*X>xWBio08>@!7SiE;lBHmjKUh0>jZ}Qdnq}&W6b0*F!OEd*(WXx6gx9^?_*a zMg~hJ{P40Tzi}pCyTQdx)0FVh!o_&t{`*?p{EKBPnnWL#m34mc-khAAl#&mR;?%r_ zAc_->LnL@j1&885?W$+7^X1=J-#Hspg-b=1piV|I{kJgT7oYyo`+D>)dzdK8$or3? z9LMhpy^gyIJ&q?za~#B@$=tciRgcq%C}U5a0b|=K#axr&T1r`wDTu&&miXhT^XQLo z6uvE$ST^Nk%$WQ)%MKR%7*~bw#(D9VArWdtBR0Cfe1JYp!j_PZFM|m*3PgIY$r))B z=f?=Hs!m;Auj>^^u}MMR%TP2M*nN>j3QF7J6mAuD^%*Wyy&8;26x*NsDfH8R1$WeW3X$KD@YZf9y+1%HUR2O;?zwRuH-qqrv>I7J_3`Kq-jIiRv4ZUv1JnspBVc>rCJlyX*4^y3s z@Z0bkI4rUhK0N?v3;|v@P6Uc|o}rf4W^m^lh*fvT!dG{Km)B6kFv78TSXJb+oT_?O zfm`vHdB9!e@1t{RI34xdnynfa-`0c14 z1Br#WDmo8^bQ26{2uNji$XHV{@W@1{3eVTt26F5Ens%#x3!DrR1pnE?UC!;ucKp_1 z0%kFRT*XlMIZ$;B0k@&bi8jS4Tx4IPixiIoW;BjnZ`}t^@53y=yDZt!gRK^}YZvnJ zat^q9etw=Ub<2Vnh7a$2w`0EW7_??bXcT-T$sno&d)~hvvFb`u1Xj|t#$<47XOA^W z2HnE}d|WaG=a&8+PzwRQ-nwq$Wu{@C<5R=|TDK#U5I!Eex)TK+PaZ>Osu`1E-9c@C7(WX^tZMx+TF%L{4`^2P+ zMFb;bw{x+V+YG`xzJ|iXLU}zgUJQYd)@!4;5!`z*Y-k@GF?tl%tZ2Q%*~zD#&~Ov^ zHvRjQVaV`dSiknG3|*;~C@pQxaLEJ-G`y!I%L9`LhoCwYE5+F=?DwP2N^|CSQR5Ys znJJ2@dJF?B0esx!M4a3G0ZZJ~Ywfj@_f!XrI?Et0m*LmimH4$b6YoSG#-!?Z;UFPI zT^e*~nIi^!H?HmxtbW^v^>YI7l*(eFGlno@sEEf6Uy;uReM%{I>N*PdM&PK|!MJ5m z7eNGqmnBgK+;VN2ss!rfCAKBd92N0A2ckX)LU}H%?^cRk-b(zU{#h{Qgx{73Qq@xu zWFR~h4F6XV<-r?`$$-CstYWe$$e^{76J5ThqS2GU{W(RC!A=+_I3U$Ge!E!#cXhiX zNCXWS2@|SQf^79^;4ZSycv1+F01r=tU$`cyR8yr{k_pA_SffF=#-~)G7m!teg*?j@{@xUIp3)w@BaE9#>Ucz)3*m z*^{P@{CEPj4h=CS536!VV6AhosNi#J-lf+4Nz}GN*2E$P&K@F#z5p|F?!qL;skklt zI>ra*!6n5JP%@)N@X4FkBZ_r%ymIOFt5c>2i~gcl;yxbX6e;BhG_RR#hTaeoDP{r6^b zZnfPX^O;NyC;1q=j0g(i2?R71d)z%Rr+6}+caOzlZ7?7e0*ZYPc$|n?*9OTgDRT2T z6Ad3bj>S~RvADoJ4}Y$?2YHE(sS(^}z@1gzK>=)CoQK!%3PN#8(7dEc2QJ3gdP$a! zt%$_n|EdBP_)YZcq2Z}A4`%0jMB@gT*#Snj5n9Ye1}Kz5=I(FGjs6rpBe8}HM)zau z=c{NEuRSSYSH!?m)lti%(1Z-wauD(m_a<-yVhS=SgJJSF*dLqk|B$J=%sU!6BXO9a zM2p|Jx{%-3hx|eL&}(C;*ies}ts%q%1{9Z&82$!^e*t)hOYlUJK%*2!uo4n+aW8j= zjEtNV#*H3?|2}>%Hf-7jzdwY2{ko%2)IETmGTj)G2ugYI;X85lRlh)ORjb8w+KrLp z#^UN9p4IB4;t5OqybYb}tPSfdva{+kf}}LyG!yXZ2DW>;;oL4 z%5*}6O*dTscByfskt*TD3(l!{p=>1H4L^uUHSfWp1XD^2{GRanlUEu8QMe4>?B1&s zG_GRJ`?*;3QcOG@u6zlG*@9eF5D~}0@J($1z55s8m~}x6sEXpP-d@c0Xz($HVw1M5 zp7Q~~RSvHzA#PGEsEOe-e|+D`>;vx!I14hv-4WoYwJp?yGXU~$7L4Q`(uA--@LY04 ztg`1k38&}yQj`wK6U0#YO#nuWa)#%5(LBiHWKocm*TV2uSY$vt-eEYI&@^a3_h#R< zw!VTv1G?dvXa5h+z3>heF8Bnywr_8B{ry3fWpwY=3#ZOF1y@~pCLEgF%CVVfD#IJI za5IXcHLUY-ny1}-?_w#A1(1*lDx76_v2;3q?>h_7%B+b^R71} zAJcvJ;5_X_JXmwLkQPD?7bsI2NP!#g6a`rDk_*uYgRC??zUpMC*kNMRCqYOWK~6Ur zM(X(KkN9JwsuFfr1hLm2Mp3C3WwkL}6YyhHPbWSoc44JML5WF`M_IdxK@wTC5}Yy- zM6lK$$6MU3Xk{@rB?BQouvwsF&qHB`A6D>iT#_V%3Bo`u%cmk12aV}}Np-yMQll0D zGhtuE*nTVilXfxQN;$%daCK`z3+q;H1#AM-guR z#bx-}4Hu)Lsvg_6?Z%EBdk_qUL}S(Fb^y~f;q!Un^?F2cm7?MT^zK!PqQYD_wPX$P zR>mMJU@VMy^)^eN-M8=0I(p_wPeEBUh*kL$@XMkLu~r)nsQDs7w55?S(*Z_})Cj|g zmz-1ZQrRfX4c&|J<#S==0uhn}2`1dRCN_MfVczpWNGTL6K5bPEa23lUr%N|lox)!M zY@-A+C=%20)#ge}IVuN!uL4D2@|UV2IldX9<&KB&# zvwXwCHJP%U{&$WLk`TmD6G8saLPYBl*tMb#a*o7Z0X%V`mn71DH^U6=ft=GF30u3L!70lOUmB!v8W$Ak3wM3Mg{Q7XRNCA@IVeM~NUJt1e=how2yZ?hw@8QbE0WJyCmqyqaT$tryQj zFpiQzxu{ql5Y>THw>%pRS4)ZnJs1@=7V}08h1JU9poYaZ0%F6{OvYZe)eje`gKy4uGRWANgazH3mo zK7=W=pG3630+VXkwkZxzfz)c7{&wIA2K(|4H%^S3+m9-z z=NWnAlwc0dkSOvSpMtC^(8E#0>LXBP=?SZfQcE06LKtr68_cx((Y5xJ+-tYnZi^3` z&zy&Ov#D0jWtFL$zgE1;oW4gFB~^!KWJS7~>kQOLAhcyE@`_Z0lqt)()L%hLWC)wxQg*3GkIJ3+W``nwsSi^$^XqiuyPab zpZbt!-pQ8RP}G*_V%Lyc zkR3%rVgKE87s2<*moQ4*nH(iAtNs-aKH^Ixs-t&V4yGSF1hOoNY}dvT9iQKP(z*>QUbpykW>Zn+7Rkjzb|?=bV3uEE&>WgE=FM8Ttq7>pg0*HN|yfp%@_icfw{TCxYPU-5fkV3R6C zpxgy*r?qr&`6*+p*04#z<5sa_ZxFA|{~A?wVR$?a5igTULlLp7ye9=A2*?C}l~_dK zAPBgDfXgNhzNpqZ5s@2_x}*coqfj*kL4O!~w^tz%H>{=?j9qP-EWq9LX3LlgYuiq^ z^c>Fv_(=x#GtR2#2N3>N+ed0Q?su!y=n2C-Bd65GTX)C7@F$3tW-_AXdr|-8OOSZu z(}Vm>Gs2sGs9>@aOw9#VavPPq$OI@9wFiP5-a&B7SEA9YjepvG2HQ5yMhQqu3MXS~ zzefSbAV9CdKBc#-gBv^jSUTifJpc2%h4D_R3V}+*PCrh6;e|CAa6Zp!QIEByJuGo%C}WR=gCfr#K-iC&e$_L<6aDF zNrjXS>tFRO>&UpcsDF8e&an#h^a-i24DV%yAe`k4*4r+b)_xeY&Ryz$H(C=#xF+$L ztV-8{NFJX26tCKV+)>jYX?eVBY(~`wtHe34Mx==jNlbQw%04hTR}?QLFhGn5bk_^S6I&v3Y#5XmHH?L2|V;VPf0v zder#C@Od1<1Hmg=C2Jsb6r2bYRTlfKuMc6@_GO%fqfcsr=c&9s++i}KfGaDRSYzeKp|ol^3pnSa2oS^=Z*^1}Z)rEb)2=h+~_aQUj@QV^}G zN7ejC(CxGbU@F08ZRFEBn)R>BTg&m(otQAXk$5d+qZUN3hGf(L@x3649gyOyz@&T_ zMVEo`aNE>gq4t5-^;3#bvG5**ckY7bYq;Gvx7D@Vf(&{*WRZcN|z+H$utNeJC+=^&F>nIv@)tzq4-^nHUo(wZRwyRghZh@dLgv)V^l4C7P7M;-FvO=s%`U`{1>r&4`u4&(#Ipq*%S75}S9`p?k3xeY)kLTVW17E)B9nwp#kreX2{th>0D0 zV%N%~hKX=AhI)TgkU=OA6VismA&UmF+?F8`wwDkx2};|mU1gFG{?!RKiKkM0S8kI+ z+hc_HLDZHL2`NUh(W)q@vQ1J|FVz#+{mwn;|HENWb9%sxr`yd54Fyq{S_rCk=w%%Y1tLH8$n`jo@8gRLUXKG_rv|5{ zfX6i?1J>dRU8o-XZ#a@bgfCGYIxpHP6VVTp7j6|^ASQAqRuV#H5klHkQan?Hz=Muv zWoTbX@Jc-!MBY&i1KTGd)Y|a}C#A8^*Lh}|>Qdk>a)?xEN#T9aMRncx6}N_XZ4kR& zy&3&3e+H6P0Lmvo8l+&UkOru$4@}SDLT%ulWx})bY$KedN+dvN1d?89r|NdlcES5V zIPw6=gIzCOgGhNfwA_Z<%vHJ#ZQ2bFP>2PwqF@5fFS!h&ZaKHoe<#SG?ck}olLm3_wA(PZ9mSRO9OK>`^YsvEX+0Fw}vBAke%Y`iE zW6!%cqki?LP;=zuZRSB<|7pu^cmyJMEw1;Cz{!38g?je{fVX<T34 z7szkBBmc4z5oT;w87XHI0eJzy7|Ph&!UI7qL!uQ6U{}$Sh#&&)mEbMi_&U7he>7$w z5;qWy8%P*be9w)94yPjiN_GV%t75ZoCGKF1@t50WBn>h^h6sT_#b|Ll{$u5_M z_iO{|0g((xHY5ormD$B(6Ni#(vGc*D2A4s_;}bfo0KQwgi#K>{q`><+5KDqSlQFiK zPu^s_LefPk$ign1&%Fks9lZE!5r$QD$tvg0`!(?O4SRdWSPf<3`5g`-O2?;-Oc276 zJOw_D?dICSMI(5TAKUW%G=Na^6;p#Q*!I64p?dKeo@wpi| zZW3?X3(tEvjHmI~WU#WWfj22|p)g)b%1<;OMR4;vYfJ5!REMtOtv6Hxyx#i%7&FaRbg~0@N|atru>7x}= zP)d~j+oVPJX$D$jauvZ(K>UQ@E3Lo7%0H+!VeCmj;m;WNN|ef0Ii*e#+%iE3?X@3# z(WbRzfbFyr8MILzuuulYblrfj%!Qh5AwdeH_2BYH>;fYHR=kemX(EoQ&t6Ax%V#J# z<_hGFJOh%e1cq4!=*b@Toi&Mg@jfSHxlp)Xg6rNu)uP7{+PPIUZdHAv)6yC{u3}AF z_o}f37!+L9?@#zNO9mZ73Q{mCIVq@i!4n&NK69H`jKPRd(frjlH3y`R1G2$HRIWb3 zE$UKww(HO~#9+E4V7CD_Hv-BH;$@1JHrPtTm2{B_LTGP*(18sf4P*fL9w~wAI3J9i z@m5O(wi^i(x!v5NAgdlR#SPgHYJ{4@Tb`*Jv|NTnO$Bzo@h8-N@fr%ooekfJ>5!cL zKq-$v41@6^AsLxaOq3`ml3S!_Gg^<}y0=li>=lH!trW&4?j~(iB(`2u-E9X{Q%9Af z6!Toi+XZ5>WY8frA%&js-@XfpJqc*}3MiKZB9>&z>lCPcRk+4_L54aJ8RfQmy4dN9 zDzThkfniPm4+v5k4$_LmHczt-EQ#+b*on4Nth1Y^#X(MX3CA{E{hVC~FAm9N^ zyzWeR=LUp#-3#~U|AX(a$;dfu3LHg4ASpRQoTn@%5|YYv+fq9feMxw|(KFIOY6Dhjz&f%_;ANH-12KqnGIoCv!mVSm&l z2B*$F4rH+1ahgBNZU@*d2k;RgbS}@ztUba3bGQ@EQz?Agb-2GtK>8*D5(UUM6S6@d z7fK*`vQPtw#30LjY1>J5y&|h&CbG+N{=~^3ALjPxfogQ#V|yD?Q3iKQ{szF4?HonE zZR?oQ>Kc*^)hi2Pi0<8r@UE?>`TRLJ%Z`Az?P}wG(6tDG>sGZC+Ds?hC*{K2 z9X}8mv~~fLD7D{~HMS?h0%cG%sWla(w{15V(xx#>G8DHgM0Qh8Ah_uZ1UG&mCa&Tw zfL7QKT3#6xZ;|-FpQ5Sv8s(^0280QiBWFRgOSfo9_h%MH;1uea4y-;aVFbi83l%b ztaB5B<#yJc1aT)p-7zj0jKHfEMpO9UL^3A#Uj?vV!| zgT{Ec2_a}Q{M&+}3bWKS$35Q;9Z5>n5|Xt-?;$5J%>Eiwu2rFj~$CJ(#~>h0k>)5^Md05UYlY6rRbfa6diC?M+Vdg z)9mFxwnry!tCJ6AsJIRq9itT$iocyDB&Z8+Ipw+k@c?9yM2S7-7SXfG04AwP$L1E( z^z;LeK@$D!G3|TqnH5eAaq*aFM#D2^Lb>TZH(e_Pt)4;}Aj2`j16sNN;EuM2;@aqM z7s9kABX6`>7e^vYn|l~OOp6SfgGeBXDjKMAdxMs%LG`L4y_FZS5Us+KizGqTWFY~F z^*ox`j_~F&nQ>=I_8T%c)sJq|z~`PZ!2h>*E>L#V^&S7tuDQ2dJ5tL4izZzL?cwnqZFmqaEKx(2vopYw8c{lk2FLgBtaX&1Vv3k zVnVi?-DEd=-;bG||J>hf?!9~O-TD9T%-y*&|Iay-oZX%I&wn2O-~9f+|L>s>07grD zB)fP2>!L8I^zUkp zeOaFpt^UZg5~e*w9c<0;l|V2lsJSK?N;^*GY@P{)ssPBAkQ*;SuV1oZIUvt==SrHu z;@MetBu$^bF?GOOUxuS;-ad^oR18+^g`cK0$is86{=Zyb!_u(s z`xAw;k*R3V)jIpQZ6I~Z@q!`w_PLyr;;^T1<1YLxAIgFQyEc~sNjKgwyuCpPqIqh8? z^t+c>Z6)VX3zH}(u_5!PxNPWgtKxcC30LL|=8(je{vuP+Vi!=jG!N``c@M40w|aFp zlBZy^!R&;M^o4GB{5NS;L?kK3g=p=RbOW1B2==?zh*veHssl_+DI=m9q0RsiE)8M2 zLz2iBd^uU(XQD*@@4Kw3QGBd+SaWe3rLTLIvwf?YZxg2^m8KM;*a>jA)A1+N`2V}b z4$6;dXA?ey1YEyh`&R+Vmzc)*RB=AuS4tqFR!}y=nI$S*0wJQ~@Nf>LoPl`1b?K*Z zwy+7n_c-=1)70YooagD|*!MXqeEWWmV=Vhaol}xkl1*iUSF~)`D$<%7gUO;~$h^Cq zLyZGiB&Ov0=uJWWNB5?`6juV^WF!WU(*!o+bvd? z4v<~tV!`$=tj5e_5mBajEQX4(XV2tK?((|edA153=M>(4C0huc#RBJM(T?jK?6;i+ zhlt7Ub_$)IiKiUK1T^BMhh$F?c7ecKs(wuHJbtrV&ofwc3e&*Al!jov3%u^&Y%PB+ z$Nt-ROVATMAMJm0Xyd8nq-qI;wvmsaAnXExcc5}*BdWozTu*MbZ${0cc`(+GwaK%s zsT4(e@@h=?aPDs(!+YO(msZzs?td&`#_h<*Fb|5b3j|)g9@yQ&WU13eql0)l{%*?V zWVtHy3_NB#cvYak`)Q@XOMcGTb`)x%pG7{d&-@t@T6il|Nr4bjrc$S|Jdjl{E#80` zrY%hf-n~5@-}Pa~nZ2vT0An5-4wGiQE_XrLkODzs!#fHT0jDk-p}K<{l=-J6)ySrV zv>`|&U8fs16<&=e^d+hw1%gB(sYMC|i9|Am6bKTDWC|$|BofIKQXohq?qJaB1}_yq z88qDx2+}$$2_n2JA<+(2PkiI>=7vDvm5Q>GsH7L*byH`d-R}^%u6Ot;tF;>ffj6gs zMA8fF74XCqNiK7_pYBDc0%0i?`s87x^KMHd-Vn74p;;6hhFsV3QO*!@mhJmfetMLh z2!tVls>+~b7ZQmtNt%fj&O%P-{Mp@;CSjQGswiRib?x=W+X_K#=$r6?iGX z1P2QJh*j$|ydcokxm4=@BW?EiOAtuGsOafs|hlNZUd92+Z zS&6~u`7vnoBGvki5=mF77EvmhaVXWw@sl*LKOxwQQ)%lN+D#e$%VlA(o3aBphiL?5 z6Z$DJsBhI_7Q&mPLNZG1Th@2Zm4aI!< zj1C@V^`FQ)6Hw;rK*@H~Q4 zbHJ{iTn-a;S_0!6050j^+I>wcfgs|NY_pR}cHQe}?~Dm$o`UFENnny|s_-DkzUyIP z2Q(FWRI|#$haL8!M~w=KQ&R?`LTm0`-2X-%;@I~^ftZ30Q2@OJ1kR5Xi1)x ze|x^W{qmkx0)c(mU*kMG^ThfJfU_Ld`m-<(n^2C{5IrRcBW>`^^w&FlDVdb{gjL`* zSH|Q>9%@9I6WATdYC6uyy~gGbfD&iF{-Q(I@>c|^Bh~T($FsY#gY$GiTP*>kaW13E z)*=OKd`T;Tz^tn8aVP;<5zpJG#P|*5-Q^snt(HufnTm+z;))qGk?j+QuLMkS>4nps$=YpF_iKKVyU21Wb2HI5`l^=ZW((JA4;B6)e_9&Sj}@k zkCvdzG(ef4_>qfUaQ5uFLzA&yvQ`|vGJYkl$9FM5wHX!DK&ITZKF#B_&7lxzw*5YU zK>%;1eMV?p{f@@YR!X7vS6#l=mN>Dz|0ivJW;1O~(IOg369pXDk%ktP(*+w=vTQV# z#Jdh|!GfX9*v5oHDQ_!|-FohApIry=KIkTyzu1Zcb7wvt|2nb)NNvSehwjE;B#p_k zhO((OI|)mwvW_+<=mN!TJtG{tb3(_+ug6iCEJK&mg*vKQf@x_97FAn9ucHXO+ebD3 zH4_S1KsSKgB3$?8YP@*(k1!`vMnWrhJZ}PU41gr(F`g}<2Yz%|+QE1MqdU{kV$&|S zTj~PueeT+vrcO)9ZnkX+-8#KjWCZ+FSXgokl&S|K6Ab1YJaF(@Trs=~5!FP$Uh4F2 zUCjBs%L3QtnBadd+iM5B0zq`3^1d^9!Se_aKrNv{eib}i)Ba1XP^?21&?-Q75k58i z1w>U7b0bAmOrdWJJ7^W>G5e^bz9$4)Ak3g0K)?e|)H834bN@F5&m%-YwFKT}bC%TP zKW5&Iw1r3k$e)Fe@4E%R%`HTqE>e;Kj{^7u&SN|^;s;wph-nyk{SXS1l~%TcmpNM7 zFW?<%!<(CLtKfNrv9*L-M@dUi6TMz?L&Rz5eE^;y;m`)9DlqjdP?(R0)93ICgakQ( z{f$5$UlKURF@Y5b%-5heQN-9A*>)=n_i!|M&y=?cKi}f0UvZy+M$s|0mauSq3qCx# z7SNKt{(3wmsL_20z&47*IjME}G@3#v3QpE0QJGnG#wds4)#TXKF6Ux9o)A3F5y93F z3)-=DoK7IjWkl-p$ z(6*Ewo^~fblJgyA;9pW7>R&V(9}a#`+UjKKu~Y z#ZJKseSZv;#(PyLd=kL>J@5v+mbAz1HNWcz@Ku-3WAibO+O0#n?MbG=hJ0R2KsQTx zWanqGH2ptSdxDbcMVrDHm00tFM!V3TyD%+i#!7)@R3W55kTgYwfr&^zDyo8ecdx|l zqhABm2oN0tls-TmXunzb#`eIX5byAy-Nw46r+aXYM_jOlI7UtxBrUOpLZXtvmAk%y zMVW25`l!pWD|#wmv{->PD}WjU)FHq)?5CT%ilz-WxY%an2i5Iq$z$D`D%ePYAZZH| z3T*nYZyBNV6?O?Dwvxq;Gxm`aq01k?Hmh!y2-1^ zH{gDOD8ojcZ1~x&ToIoIaF8&k1a_*+weO(1Cl5#hr+vNOBg^31c?{)NL<8k$RX`dDAN&-8uMx!--geSuZdF( zst|oC^@TU?#Z{z0khqQ=7jgFZ7JOjxnVPr=UwS;QBM-zADWx0B^Z0Xe7^_un401ib zkuol~ij*yrN9r{+HK`ReCbherf}5@*H|7ueB`cYb}WD)I*z$~4s$0W?jlkkNIZdQ2^l>Fy)=pM z>|BB6C*FmZ{4W%0nRIF3?sM7w-BaY0AsF~FjdZPZ(_=eVU`cv?)#K5>(}&O_1wt^$ zbDHwa4zfRSA%#M3Aq7G(IKVl;6I4H-D@dWxJ4k^L46>Z_-3Zm+>>7wsT$yt4DZCx3At73Z|l10aI)DT#ZzA6A+mT zsB@%Xm}R6u2o66HxRRT?k(R5GBLP!`ICFdxw(hzHUmUv^s2r#Y2DY&fYb7d$Lzj^P zAvpZE;FbIX<^TH#85+CdAYj*88&13h6-C8Wd%liMyRX3Nk=0m|{xM*TRilY50r3_< zAC%fd7m$ug!C{0FfLTfgqHc^CeOs1dqSqQnucANP!SM_EX&ew;7^(60?MY@kk68jr<6wXSW2UAg%9^0wI_@ z>`|uP#w^2KgV`C%Y77-c!EFZvQ?}lBNP!SsR#FlUH<{JuEmyrS?_^hOK-Z>Ypblq&mZsCZFVRU(l{ qBoc{4B9TZW5{X12kw_%Y0Pz1H9j`T-L#$2!00003#Z%qTU(qjGxDOdY)%K5m6LD zF_4v@WXZ6w?84?{a>x2V)zh==E;GBcu)uoqK2JXry1Tln`d3xITsVrOIEtgF14(@8 z*7?}B-YdNUoC@G%0G$E20WkY01F#OjG5`w!7;T`w`{A}r2jKF8l^|Y6yw(H|oB(kU zPzM2#`A*w4XQr*V+hAsd~4_hmKVQ6cFa0!4*lby)Q&Be3NJ&!Yo z58dzF*=LQ#wbxvQC!Tl`Uw-~svfKGmGY!DtLr~}c3bduAffME5Q=NSIZ&Q*IK>~#Z z?eNO~y@UaShorh>5P%C>r>g&bXiJ1}4S<|vC(ax*4ueh`V0~Y`b{(co{}iTaTECYq z{|TSWm|6Gx`WtR&>KRWSf_nc~pe-#8x1~DKzC(w)?^jHmh-f4NkH?F%#*V_}mt1W9 z@A15WF{4HxKQFJTXY>WYDQbDE*8IN!ZG{ke0yrtv$;As7)P29{_B*j@;|82~LVxS` z&3E2~ojZ4;cdwq-@455lH}|Y-j}pTEXe)$pYf~qSwrs{@lb^(-M;^lMx87v^S5aAo zRjb$HzI*SkyN)jt|9Iu)=ALz>t*FvlrRM)7XiXj=lh51$Mz*kA40pQLS)Q_W=&BLVRMALz0*p`tth}I$mV$169 z0Qd&LW&jVTV*VO|4`F9>7dc%nd_8L>-gxuh*6)#L4#!=0#3zzHW##za2kwW@F z>D2czn*f``IRIwcYVJ1yEaJRtdR>yF4H9WyNq&UTT1x|O-f{JQcLngcJ@TFd@DhMX zlKZZ+k0vpC{5g31@yGD;%dg=1r=P;=RjZJdodYliUDxr+)c;tw|FC=+*00})%PzjC zxgxy)KC@@9WEczJffVOEw!C}d7~gR_1PYi3TEHPhYY~EJ&jgL%0B7OpRebdRyA7^6Wzb+un)C=fZZ`&;auVM9;6J$f zvZQ*c`rtMQ&V@b-;Cp+97;7&9V^Z7`1u!F>4rz?%ZaooxeJxCPS~J#RM{6>RQ<4xu z0v+w?m><>lh)k4$Z{3EXq8+HIslmPX+=c6JxDK;te}zyegwdl%;@D%3!N$#7 z@cfG}qfei{Sh;dVx^?Cns;})jIc*<@rofH&fpiN`;H(iR;xu_J1Q&r}t;TJSQD{v< z;2pX+4TdVaC56ua=4+Ifm0|PxpJ5mV&c5J6y!66z=z04sb=Q13=NsJiyBn?VBgT%y z+^^@fwC?HF>4}yW%<<^pjWAWfAdWW6Ew;A!_**XRwPt~rUU@a1eBv=|*}5HpU;w>( z_Q3oFi!goqCn(;z10zO_!nx<1jRimaV9gkP`}D^49Xm00#0W66RafJ`0@&Wtn_jrN zKaALVz$Ld`k>L;!!VX(bf2XwyS}cF*2VgL^)=UF@w|P`M=O^v!<3g^#NGEl zfE%yB#`^EW4?k+H$0xw0hWlE2(~CFv!zto=P?rR=jV=iZ914XJ=j4vDy^0PRbLV`C z%Xbvv4-YJ$F z1z@1PEToNJA`##)n4$k+JA4~IX( z58Sfo_xtz^vF9*6??4gq`+XnV%A{LcYLt5ZmJ@KYumM75nnVy+H5W3*R@zRwPse8= zI-Tpt4tL}0c!cZEPiX}{Xhtjld5o14WjIV;PQYF3SCnX3C9psR0MSa5nV(us$*|Z!S2csO3SJs zNUoGkFm)BDoX`_vkMjomvEo1Ma`)c4xi3%bHw#2^gXubqNEKpbTM^y4 z8cHPrGYF`Q!QC|ruFm}+Wpskz$p#_(oQh!8ZtPmW0=r6TQ3W6N=zi>}RFcxMTyMG7MATf24csXh`Jr1Oaeb zsBe#Alw1VWTp$@{i0Imfq*yIyeH^b4LdKA|dVZfqD~2=CmCc4u4;U)R$?s1v3&5Y@U7nE{4^p(W_K z;&W6jcny(V~DTGZ5 zucm_%GmRJ=B*NWpBKD;Xh=9d^i<thw?Scy~qD8#{yR#U;^?j1wHYDa90z zL->bgu=wky0QI<_w&T-kyvM|75R|dEY{_jMm<|zI%KFv4{Tn9a!<5kUVJpX|9;d>z zK*%4}z3PRog3jo5+e}C~T|s0Q%vcc8w+~@Rb_D%;cL4nP*tESI8;Z&??Tf|Ow6z#+ zmyY)BL>O8POuZJSwil*R3o6R+bsvk|lP5sREQDcH!&EB3j9M@~0A>W^hZzEOd6Ch5 z6nq0Gpt5W|CeMqZLw*JZ*6e^QPeMlD^I%E@xqZgNBnkrSe}w2HqXF__Ix&>|ol?T! zl^BTi63M=Z%v49b`~E~kWD}8q)3^000#qQ7B~~8L#0#IUIu`$yeaYp=LTw0B zBA(4krZ-C-?39GLCbMEbb!wVm4jIhrf$nlbbGzX*!XtNd?)~h$g(F|Lc(d47INMl= zV%?8Y-6YwRfLq0@zFZq8oJ51N*Ej!SNfd}23q*+Hm_`jEN)^8PZX+J~zom$T0(fXZCEOB4*@{n*G4w`2 zmJw0QP;ln&5!^T*k&;b$l2_)|$uHBQbv~j9uUeXeBTfwQ3Nr#i%%6#%nAD{g3O<%2 zMa4zy&dKzv=Y#&ZRbWCS3F95=yNlNjD8p-pPc5h4fd8 zGCRSVkqL0E_C1*BmST)N9MsKcHwq+Fze;t4keM_bV1KxJ60qSwG@n6;FbH~+jn6b< zW*29E9z0!6hN@M7%3heJg20A(pdt{eW$19x?~pg>|G^#Jf;(^f4Ssjy#hAZf1?GOY z7_(-~#D+C%@yz4EX{Qgt&|w2{@=1Nry;~=^947cMWPIQz_%o8|Xo@Y{O0oF+mH2wj zJgollC&&&5KKtZdi1Yu5V08^xAd0~HImkKXTBwoDAW}Q{x(`IC$l{ldONS8n<8+fi zF$tWa3BycdaKt~p2E&OU`gP0{*RfDO)ZOA}g#9B&fqACPR;gLnirv40^V)tp8mS3j^eLM2lE-)eMrAl4B z8LB=RjhOX1LeM*=LCqo{Z(%4X1!_kUggY_lP6km)eJ?Y?1UVzVzMD}{nhB+9Jz|v` zV5$VZZrxEZ>`p|~Js=Q3s0g>y#JJG|aMtKkao>G6V8Ox_ShQ$4=FFUhrHd9@<#KPN z0fSCMyLS2T`n>S@z0h?7!9Wl-)iv0%c`G)q`?*0~{&(_&=yu|8g#C{r@UPop>I9)} z%Pd0R&*dFT9SMn{G5eMpoHvOX1RfWInMOdqRVu^n7DK}b1T!Bn{8{=Y3};lin)MX# zZ!Z=*h~a&6%X)qEiXVQ$wdb5TMPIZhPs^i^ij@2ggq$D=_y@1$o?y(9UNT%15QLkY zyDRT6?|v-4&K#rz#Rf`skr-r~Mms1hRQ=&28}T^pf?nKhf|47wuT?Me`YO7V^&e5#kN zqH?qSxZu3gasIi3K%f3S<}O%?Wy@FN^XZ>s!M81oe0MsXFw`RWyN!acTVK?yS`W2i zCk!J1COE96ORX%iqz-_jEk=nHh;X9T2`EWhm#Fd!i70}&x${;eCij;farD?TB1+|c z-Dvcyn|u6l#@{EL8$R*k@kD;$)9G4`bf0i~_8%4180QuR6(DPN)kdJ`CNi8>-`!#u z=HHCc2;LrlA@9f)r$s-i?ymnZyh1*18gvbcVw8hYv+=Uta)pusn9leNLTiA$X@F-Z zv6xAgq%`Ufzl>F@2(JGYqL^v@r|jJUBSPTJ^}^qK7&N`w8jZxR^Ya>|t<2D3C zQ4Bx5FMfa5rMUg>n_FCUMbW_YxO1zo=Sb@zdZZXexCD}z3tg{8VDmyyCkxu4^=X0k zsb&yFQ~?4_j|?n+pHc`u6HKZBqt%^+PP@11F~_$~38b{tIlO90m&<#tE&9ZK>$~Y$ znmo?Y$2B?_R8Fc2tJ#$y<#*dELkPxnI7C4J*b6a1`kS<72X+qXhd;Hy#DKQxPveyL zhnLaL^D;z+qOb-SMim5VT1<_wj~EV0vuG3$zyY*-7sx0ARDZHg5dJDU8Or9q21Bid zLjd&P9vBMX%ug>;248t~X1ud;accsxmP<5Y@H?qxuseMIW^%s6--~ z4q2p^nvAWEQt>X|#vKUxy%;c*>zoj{HTv3l4DviC_+T;>Aco14+%>bl%cix3Pm3P(;pM0Z>vF%t^W+(01%q(Z; zKuG=2A<|ntPI0qlva@uPJuOhW$zbdQRX6))uH1uiS4Z@@<_*A6gxiDnXZqRh>&s|o z6gqS)s*VAQ&h-q_Au$YR49oXwbq_yyGc<2#CIPKtX!jvdei=m|%K)i1VJ(;h5FO-Y zN4DHGxO4N}8~%A2BySc3H6^N4|NWB&j64J!dK>&BArmp(90IOz|KzAxzMF;&?r)=*UZ;7@?3~9Se zhu%&Uh)4;w+QP*}CoxcTYDb(u?stG|J|+deKnyNYO$yM_1#Agvm|GL$L{JWqea_$6 zlVJlrEBDoRlgBsr49gbI?l6yFj ze;zV$LN!A$Yu`-OdX6bJF`(E)JL-aKczd8ywNB;tP*AqH7G>)LFPac$INZXEYOQ*n z9=3HFe3T}c6}ZCa%wZ?smDirf;>ADV*e;zg@uHD&$OLb18Sfah7yG!U@vjX*II@gGx=!cI(nB8MwX(W$lC#5=8eM#?vwDn+!GM;xX1=* zp}2b6BDA1wyUex;;(UA&eF4KOXM)OML?o}Jj*i6$VwKbq={esPjySMlK7p!4;mi)4*4{=i~dC*j}Y}@?Z${tF#UPtF&A_|N^oDd|JfR2L;;V*EbWM$R% zNR4&_5m2ty6ay>-B5-C&OC0r{m0@=Fq$(W+U?akr(t}J<$C}l_e#LFUq!Y}35>qh+GYIk0wkE#U*-h8Xf z{GWm4>?-PEHwJv-a4x&5m3wzl#vV^R_dp1N$1U*r_&hsMC4prSa6W+DX2eXC%w4_S zvcld8fw4Ch6ui;{#}3Y)vVBq6n@Wv2DY$7N+6_G(Dv~bEO~UFvD%xvq@)uE`F0AWB zH%v2v(3VBqa?BBrm#c>a5ws5nuqbZ?F6{I|{N#QF(2|4ZP_|DUX(iFD*BnB~)1pW(`eyNVWR7*AOYbanED7R@Jvt_Mf!{hQw#WoKMPiLc zQy|Eq0!Qgb1V&I@TmhmQlO>0^y?zZXlnp!~ofbW8$22BK zj7^1ziM|JN;Tr5MG-`D2-rhjq7x-f6b)35T!)@y$WlG3@Y$x=%WfnBO9MGa^baG$Wz$KGpMr4Fbc*5Oz?=k_27Tv8SjUEUImCdt@HrjXv+jb5GRu z+Wj31nrq@;06f&>E2?JM^cdl<-YawX+W0>(*ctm>!=*}(+&#D}_H%`<{~Pm^-8 z;p;F2x>{N1bC9I;_*5@t!W8nr#0)U%2GK(hgFgbM1}5i%uvE%^6GZet5PT^9=zeH{ zY6vd*LI7MIO7DBzSK zQUTS~0Tgd7LySu!F6nf}P^FtDUR_sgJtN(vfg1#V-|STaf}D+IVFM&fOrG`BnkBW) znH}AzDUSZ082a^lX20Od>N_5yvjBQ@Po2%7VfS%^iVPvR7IJ6>pza3MDlL;VbM=Rj z`7gi)B48 zhIg`ptGsWcT6cgOE?wJInCl`?mxQ5gk3sZ_pgtNkbT&+qgdZ4Vc}rH8qNt=6eY)kL zYhe~LGu#j?D*?i^}oVt>-BRAWn42MZ}<)B?8f^Q1O;l8{( zV3`s1+Eyll1Z-l6#!#H=f|)76P-)y><9H|ZelEDq$%NzU03uVXVU!ynxpbRhnga>Q zhd!TUKy66H!XJyV)>n?4OeZqDPIz1rB!OC1*jP+QEUH0`X%Gbhw^J@50=WW=%_HD? zh=w&vXKA?F&VQH+Jj{K*73myhZ;?y_*JvMzi>`sr_`SX)_gz5+p(IohMWj|=@9+z9 zsA$(PCAb55{V#w)8JHGsuuND>Ak)BH9iV$pgW*3FhW7-(kps$&R;H4K2>1vwEFy@O zZN!$>Zvad+EP3VAz)*wzc!E*5wEZ*IG6OSkh=`zGi%bdq#kDxeu^Ngdf*62cf@^?b zxCtV?T=4a9L75u>XTYgfsAY`3X7UwMq9-{VqLYiufuMrw+9=AZ!zil?qoy{7a749c z2$?g8qVP{jafwLDdRe3p>rugLKku?W(`o5hDgLjvUB7$T;qYLF1Z@`tb*FU@ z&dIa=o5J|Zl$>yRx+A!KDK@`)CCpeTEc@l5%(P-O_hSq%?)Y5%W+QmSGY^Uy;58XS z$GhNrw1ZVyqe4%p?I#;1>!};&y`Y#S%0iW_Q#fK24vj*Rg^=hF7lG2pb;kMt>_!q7 z@l!u9jXI^uaQ=WD3Lgg_j0yvbFl+w-TLju+#|<81OAlMEe=T*t30*aiFyIqGxW|=? z%Br8f`h!||zQ4nShvDyhDl{VigTHJu;p{+~kSt7#3W@B7WV0x{zk3C{zx_Xc^N)@! z`8sBz&icm1NuL(O-2Aba*x{Kk9@7~nP;BF8)7f3zd^PAZ03p+n4o2-zac zy$#|+b~gJIYj_Gzy7DQFlx~{5<&CS6d(tJyIsHmFb9-6ZUuM>Vu?QH~1T~l_h~>y4 zP#*+=>j`40T|EQki{3`CXdPrP%0!oA3^Uo@`j2$zG1SVLm{{oG-$0vIjy>XP6D~Y|{nq#?Rnf76qaVY_$TEnjqV(Wd*b_ z?*7kxCRiigOFD#*N?Wrp3M3q#34BlG!8JAu#*S#+4kbJlB7nOXf=F>3A z4UTLFOhrN2;%TT}I|KgiXTaBE2)x}-f#@v&NJF-RK!aiIMWlEoBHNdt_UE|>mu#@! ztt&_5FE^K&>^plFtIMLnErBX$O3fHwl#>y`KwELfo&Va|>%|^>iTl)UPks1oerkxF zJCdj4;TE4wc6y$V(#W`Snyvrm_iwcFPcbZT84S_m-N<^P6U^0NP_GC!*b6mJM8rfl znX*R-aDoAB4vz9Z%OlJjqrJ%5!Ce-0C{Bv()w<F)B4m*)nef$81Aws5;m9412j-^#__$+$l;bs>$s2m0Ks0uv- zOBXNuWyt<65Pf-|PC2eL;R=~h5L&1NT5Tz`Fu^Z&c=Q0 zEr}Y><(v=OWD%}N>-0w=Vcb~Nj%sWzV(z>@4?fRGXAa^v74 z@7qb`(ETyao)vhI@31tk&$mVFF;;?bg4m}@UyL(8g-E#vG`%GS1H}90Y3|@6X$+0D zEE5?T5do}Ma+9FpPM0-x$0;YqXMz;`RjXMaxf02;e(WOxF;)IVDpGeWpnwyCAkj1I z3~NmkZgGA~D;TYq!}nTPR&JU^P#@zgX^OJb zq4r0)l7l?C3Q(&!m*3zlj;Rod95 zBC}I@_cWV=wmuFuAtWEJguv7-XTDB$Mv`P$W%DKz>?B=%Y=TGyZoWL*=3TC{lYFOi zbta5m!5PIG>PtAq{N?cHrZ(>fXxCCRBjuEBqp4}HRWgPh8Ci+NV;Vq6sx5nJ?CG|C zY(ce65REzY1h`IPR-^y8YCP$TBb!RU3TGys;XVc?k1)YiP1N{bw)8OG=4YD23Y!>* z*~?xE@tHF>xM^i<0Lm2~9Kw;y6Mm$H=2Uv^&*SbrNs(%omsANnrz9IS8kKXiV*&Zz z=yD!;I;x2}@>%72yH2z1EV93C;`(KFwv{*SP0IdmC%)Lc|D_faHwvZ~20LWY=xO0d z6GEz&*OWRm)!LV;EhJe~vur5t8mHg=oQuy0MxPY-&Pic#d%uZgYHbq2t4z5}F|N5~ zQflX#!-FGD2&tS0ni?LdIO|l98;fLdw-&~TshgH^ilodU|7{cHev#t;R2=>iJC}1k zSk=k^QFEJgb3Y7dtNT74j%4D#MmmI$ z%)s0?iQuH>q|{ajrbY|3}fHH=qEzpL`b{ z3zuLf4OzF9Sy!ZZKdrL6ZL(3#ZSS3JrO2cd_wB0F`Xz#S^t3b097O}fQwQo0AQ0A+ zxcZK*nEJ$KZYLbb)&Z$dpAdZZRy)Z|$BpryIwr-mV@(`wbl0jjkND_OnaH!U?X)$R z=ccIjJ!!t57Nh>sFe%N4aB6(2?pLh|+EIXWpbutnKPl+fI7hU+%@p`PHqc5TEK&WC zyy!HlP=|DF>etq(fVoCSiF+MT?h&-VG@Oc|Y1ILrNvC81Zuf* zh-iSGg`KfJ@QUUZ2Hbe)Ti+1%2_YRZuD3O7-gR5p)PoPTO?LSPb}3&!Jt1Y-X4P%QzeP@fR~ z-h^^ugUz`<)!<*gEOZv&Ix_<-VkFbg?YB`gq2x0}^)2<>)Q$*Zf)fSNz4W%&5+0fR zS`w<%ZI`uFn3=*jHl^k5A@M+lSTC#&^+TT1$`$c~y#eXM!_hzW3E=}|7iR5{e{Z(VkM|1+|&+r`%;2Cg6NcCX!r;2 zAF%<%IoS4w+HP~^L+rSWRH(GCnQA+)&bIv(n%b^D8Rf@wi}1;l051lvLapM5U*g1I zd0r2*Hzs}2HiE6OEu3>~huL)eBbr6yHGD~n7^mSU}Y;1X!D35Z7prYrw&AA^bZfNJg@l7eRv;yHJC-b0>! zr5o-jc^S86zlz~m3sDx6p_t+vTF(u?5mIfJ)FNKxuntK<5}@r>P_Z=xLAKsoDrT&y zO~X?)u*D3hK_qUD#^aTC1{vx?UBF(;kj_0pI}ETfsO@4GFNQ_{=EL8r@54XJu7P5@ zA=4&{Pelk#hPWlG#NmTOK>5ZRC_w{ad|619CM6Z~#!=cD4UadTq0-^TNwrIHNpLo- zoPUR|OY|o8wt68ROk;=h2@%V$^V_`_U{-JfGQ^bb$1mExnaQxcC6zmDguwX$b+2lr z+OuZ^j_FA{Czy=MtcR~`o})h0x}cF3g3k&DrFeALWF9F4NSOyXDWru|TkvGsdtbd3 z50W7_f`l_UF@zhsDh#vpR6Jxa<9DVgFV-L~H4Plz8NrO_U91;b#zn0`0G_p@hF-Tr zzM9%rSg||gDf=ESYMp9F2(=h|RtQLLcr^u6_e_cl4`SA#B8Go9BVJx*@0s};K)4ro zH&@&$30riZZ+lxmVfRxi{I#WG?BTT_^1X-lPhTELe^3aN~^fuQ8q7 z6HlHc=fu*VH(#SW53V~TDY_Bu2i1eP2s3xN?j&+ic*gs zgR16Y_KsW7CA<(|wSZ9;KeRnol207`rk+z<+1L`k_$~IZ8SFT9tJOEQSjzrvf~MU+XZGPuWpkGgF)o)iX11YM_g0 zh&{H|_(WR~ctAKhBP0Q5AayERM*=Z{AzP`z)IE>jH|_rtXDAOoyUGIl=wTB@FWViy zCeAQ6m4rb)!dfsEs+Yp20{>0dk?o{+uwZ*<;S=;o`|z`hyk{SGD#%V ze)!lvS{=WJr6HOkkVdlQ?X*yzp&VNNEj})}Cr$u|PSiZC_%#qhc?zu~_sD80=5aqX zCWh&|?v9%#xTtB-)sc->IvD&K2*GF+Rb3xk!PC1Xg(VX;2Z!bZd?ykq8<4Vi?%ZG8 zEb(h$7H8N@R%3Lq^Dw+>D`HA)b9|GLM~y|z4{MiTUhXJtaCV0S1pk|Pb!+kuhXubD zLU`3y;v}H)z22Z6r|-6IHdUH||907*qoM6N<$g5jZ$bpQYW diff --git a/logos/Simmy-Logo@2x.png b/logos/Simmy-Logo@2x.png deleted file mode 100644 index 3f55fd7e5c920a99731f149b9e4027f92517fa10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23687 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

{qdJ{Tdif0aqv8d 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

Gs}CDRCHu(=X?Nkava{&)1mj;eAd||FY>2 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

-$(2CA>l=~U%7}t~P5~VKSEO^7Gajr-7 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�gfa_3-t)mR;Wimn_ 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Ξ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 IePR{#Kh0E&c>n+a diff --git a/logos/Simmy-Monkey.png b/logos/Simmy-Monkey.png deleted file mode 100644 index b5e670a5f39d943eee33176779fc5e2f597aeafc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11360 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%0DJz@ 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 From 5d78a62766f4d378307a13ac60323eb5420fb010 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Thu, 18 Jan 2024 09:24:17 +0100 Subject: [PATCH 28/32] Apply suggested changes --- docs/chaos/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 18e1f5dd742..557752d7be1 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -1,6 +1,6 @@ # Chaos engineering with Simmy -[Simmy][simmy] is a major new companion project adding a chaos engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. +[Simmy][simmy] is a major new addition to Polly library, adding a chaos engineering and fault-injection dimension to Polly, through the provision of strategies to selectively inject faults, latency, custom behavior or fake results. ![Simmy](../media/simmy-logo.png) From cfbca1a52b4795e9a0cfd3cd9e2378bbf89230d8 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Thu, 18 Jan 2024 09:32:49 +0100 Subject: [PATCH 29/32] Replace Fault to FaultGenerator --- docs/chaos/fault.md | 7 +++---- src/Snippets/Docs/Chaos.Fault.cs | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index 75af219b0f4..e60d212c0fa 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -17,7 +17,7 @@ The fault chaos strategy is designed to introduce faults (exceptions) into the s // 10% of invocations will be randomly affected. var optionsBasic = new FaultStrategyOptions { - Fault = new InvalidOperationException("Dummy exception"), + FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, InjectionRate = 0.1 }; @@ -43,7 +43,7 @@ var optionsWithFaultGenerator = new FaultStrategyOptions // To get notifications when a fault is injected var optionsOnFaultInjected = new FaultStrategyOptions { - Fault = new InvalidOperationException("Dummy exception"), + FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, InjectionRate = 0.1, OnFaultInjected = static args => @@ -77,7 +77,7 @@ var pipeline = new ResiliencePipelineBuilder() }) .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline { - Fault = new InvalidOperationException("Dummy exception"), + FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, InjectionRate = 0.1 }) @@ -91,7 +91,6 @@ var pipeline = new ResiliencePipelineBuilder() |-------------------|---------------|------------------------------------------------------| | `OnFaultInjected` | `null` | Action executed when the fault is injected. | | `FaultGenerator` | `null` | Generates the fault to inject for a given execution. | -| `Fault` | `null` | The fault to inject. | ## Diagrams diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs index 6c443b286d8..6eb7bcd7025 100644 --- a/src/Snippets/Docs/Chaos.Fault.cs +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -13,7 +13,7 @@ public static void FaultUsage() // 10% of invocations will be randomly affected. var optionsBasic = new FaultStrategyOptions { - Fault = new InvalidOperationException("Dummy exception"), + FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, InjectionRate = 0.1 }; @@ -39,7 +39,7 @@ public static void FaultUsage() // To get notifications when a fault is injected var optionsOnFaultInjected = new FaultStrategyOptions { - Fault = new InvalidOperationException("Dummy exception"), + FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, InjectionRate = 0.1, OnFaultInjected = static args => @@ -69,7 +69,7 @@ public static void FaultUsage() }) .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline { - Fault = new InvalidOperationException("Dummy exception"), + FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, InjectionRate = 0.1 }) From 323971827dceb64cc7b484ae166f0db956510e20 Mon Sep 17 00:00:00 2001 From: peter-csala <57183693+peter-csala@users.noreply.github.com> Date: Thu, 18 Jan 2024 10:18:35 +0100 Subject: [PATCH 30/32] Update docs/chaos/index.md Co-authored-by: martintmk <103487740+martintmk@users.noreply.github.com> --- docs/chaos/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/chaos/index.md b/docs/chaos/index.md index 557752d7be1..dcb198750a9 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -48,6 +48,6 @@ All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.S | `InjectionRate` | 0.001 ms | A decimal between 0 and 1 inclusive. The strategy will inject the chaos, randomly, that proportion of the time, e.g.: if 0.2, twenty percent of calls will be randomly affected; if 0.01, one percent of calls; if 1, all calls. | | `InjectionRateGenerator` | `null` | Generates the injection rate for a given execution, which the value should be between [0, 1] (inclusive). | | `Enabled` | `false` | Determines whether the strategy is enabled or not. | -| `EnabledGenerator` | `null` | the enable generator that indicates whether or not the chaos strategy is enabled for a given execution. | +| `EnabledGenerator` | `null` | The generator that indicates whether the chaos strategy is enabled for a given execution. | [simmy]: https://github.com/Polly-Contrib/Simmy From 58b4eafb6b2c5ea9a07eedf183355c3acc50e028 Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Thu, 18 Jan 2024 10:26:45 +0100 Subject: [PATCH 31/32] Prefer chaos over monkey wherever possible --- docs/chaos/behavior.md | 6 +++--- docs/chaos/fault.md | 4 ++-- docs/chaos/index.md | 6 +++--- docs/chaos/latency.md | 4 ++-- docs/chaos/result.md | 4 ++-- src/Snippets/Docs/Chaos.Behavior.cs | 2 +- src/Snippets/Docs/Chaos.Fault.cs | 2 +- src/Snippets/Docs/Chaos.Latency.cs | 2 +- src/Snippets/Docs/Chaos.Result.cs | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/chaos/behavior.md b/docs/chaos/behavior.md index 40b4fcdc812..777de831800 100644 --- a/docs/chaos/behavior.md +++ b/docs/chaos/behavior.md @@ -1,4 +1,4 @@ -# Behavior monkey strategy +# Behavior chaos strategy ## About @@ -57,7 +57,7 @@ var pipeline = new ResiliencePipelineBuilder() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosBehavior(new BehaviorStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { BehaviorAction = static args => RestartRedisVM(), Enabled = true, @@ -127,4 +127,4 @@ Use behavior strategies to inject delays. ✅ DO -Use the latency monkey instead as the [`LatencyChaosStrategy`](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. +Use the latency chaos instead as the [`LatencyChaosStrategy`](latency.md) already correctly handles synchronous/asynchronous delay executions, cancellations, etc. diff --git a/docs/chaos/fault.md b/docs/chaos/fault.md index e60d212c0fa..8f4c2deb3cf 100644 --- a/docs/chaos/fault.md +++ b/docs/chaos/fault.md @@ -1,4 +1,4 @@ -# Fault monkey strategy +# Fault chaos strategy ## About @@ -75,7 +75,7 @@ var pipeline = new ResiliencePipelineBuilder() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosFault(new FaultStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, diff --git a/docs/chaos/index.md b/docs/chaos/index.md index dcb198750a9..d9be339cd1f 100644 --- a/docs/chaos/index.md +++ b/docs/chaos/index.md @@ -24,7 +24,7 @@ Using Polly helps introduce resilience to a project, but we don't want to have t ## Chaos strategies (a.k.a Monkey strategies) -Chaos strategies (or Monkey strategies as we call them) are in essence a [Resilience strategy](../strategies/index.md#built-in-strategies), which means, as a *Resilience Strategy* is the minimum unit of resilience for Polly, a *Monkey Strategy* is the minimum unit of chaos for Simmy. +Chaos strategies (or Monkey strategies as we call them) are in essence a [Resilience strategy](../strategies/index.md#built-in-strategies), which means, as a *Resilience Strategy* is the minimum unit of resilience for Polly, a *Chaos Strategy* is the minimum unit of chaos for Simmy. ### Built-in strategies @@ -37,11 +37,11 @@ Chaos strategies (or Monkey strategies as we call them) are in essence a [Resili ## Usage -It is usual to place the monkey strategy as the last strategy in the resilience pipeline. By placing the monkey strategies as last, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. +It is usual to place the chaos strategy as the last strategy in the resilience pipeline. By placing the chaos strategies as last, they subvert the usual outbound call at the last minute, substituting their fault or adding extra latency, etc. The existing resilience strategies - further out in the `ResiliencePipeline` - still apply, so you can test how the Polly resilience strategies you have configured handle the chaos/faults injected by Simmy. ## Common options across strategies -All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.Simmy.MonkeyStrategyOptions) class as it contains the basic configuration for every monkey strategy. +All the strategies' options implement the [`MonkeyStrategyOptions`](xref:Polly.Simmy.MonkeyStrategyOptions) class as it contains the basic configuration for every chaos strategy. | Property | Default Value | Description | |--------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/chaos/latency.md b/docs/chaos/latency.md index e4b0a11c921..8503acd1c4f 100644 --- a/docs/chaos/latency.md +++ b/docs/chaos/latency.md @@ -1,4 +1,4 @@ -# Latency monkey strategy +# Latency chaos strategy ## About @@ -80,7 +80,7 @@ var pipeline = new ResiliencePipelineBuilder() Delay = TimeSpan.FromSeconds(3), }) .AddTimeout(TimeSpan.FromSeconds(5)) - .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosLatency(new LatencyStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { Latency = TimeSpan.FromSeconds(10), Enabled = true, diff --git a/docs/chaos/result.md b/docs/chaos/result.md index 77ef30d3bef..0ec40f41cbe 100644 --- a/docs/chaos/result.md +++ b/docs/chaos/result.md @@ -1,4 +1,4 @@ -# Outcome monkey strategy +# Outcome chaos strategy ## About @@ -71,7 +71,7 @@ var pipeline = new ResiliencePipelineBuilder() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosResult(new OutcomeStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { OutcomeGenerator = static args => { diff --git a/src/Snippets/Docs/Chaos.Behavior.cs b/src/Snippets/Docs/Chaos.Behavior.cs index 40a97eebdb9..c9368463f31 100644 --- a/src/Snippets/Docs/Chaos.Behavior.cs +++ b/src/Snippets/Docs/Chaos.Behavior.cs @@ -51,7 +51,7 @@ public static void BehaviorUsage() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosBehavior(new BehaviorStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosBehavior(new BehaviorStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { BehaviorAction = static args => RestartRedisVM(), Enabled = true, diff --git a/src/Snippets/Docs/Chaos.Fault.cs b/src/Snippets/Docs/Chaos.Fault.cs index 6eb7bcd7025..61ae15ab3ea 100644 --- a/src/Snippets/Docs/Chaos.Fault.cs +++ b/src/Snippets/Docs/Chaos.Fault.cs @@ -67,7 +67,7 @@ public static void FaultUsage() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosFault(new FaultStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosFault(new FaultStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { FaultGenerator = static args => new ValueTask(new InvalidOperationException("Dummy exception")), Enabled = true, diff --git a/src/Snippets/Docs/Chaos.Latency.cs b/src/Snippets/Docs/Chaos.Latency.cs index 8407a542e5e..75fdf174d9e 100644 --- a/src/Snippets/Docs/Chaos.Latency.cs +++ b/src/Snippets/Docs/Chaos.Latency.cs @@ -73,7 +73,7 @@ public static void LatencyUsage() Delay = TimeSpan.FromSeconds(3), }) .AddTimeout(TimeSpan.FromSeconds(5)) - .AddChaosLatency(new LatencyStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosLatency(new LatencyStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { Latency = TimeSpan.FromSeconds(10), Enabled = true, diff --git a/src/Snippets/Docs/Chaos.Result.cs b/src/Snippets/Docs/Chaos.Result.cs index de8c5bff67d..cd8161a5488 100644 --- a/src/Snippets/Docs/Chaos.Result.cs +++ b/src/Snippets/Docs/Chaos.Result.cs @@ -62,7 +62,7 @@ public static void ResultUsage() MaxRetryAttempts = 4, Delay = TimeSpan.FromSeconds(3), }) - .AddChaosResult(new OutcomeStrategyOptions // Monkey strategies are usually placed as the last ones in the pipeline + .AddChaosResult(new OutcomeStrategyOptions // Chaos strategies are usually placed as the last ones in the pipeline { OutcomeGenerator = static args => { From a2f09861b500d5eede4c195fc38889096a5557ca Mon Sep 17 00:00:00 2001 From: "peter.csala" Date: Thu, 18 Jan 2024 10:55:36 +0100 Subject: [PATCH 32/32] Rearrange Table of Contents --- docs/toc.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/toc.yml b/docs/toc.yml index 358cd997432..7ecd8688a22 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -24,6 +24,13 @@ - name: Circuit breaker href: strategies/circuit-breaker.md +- name: Resilience pipelines + href: pipelines/index.md + expanded: true + items: + - name: Resilience pipeline registry + href: pipelines/resilience-pipeline-registry.md + - name: Chaos engineering href: chaos/index.md expanded: true @@ -37,13 +44,6 @@ - name: Behavior href: chaos/behavior.md -- name: Resilience pipelines - href: pipelines/index.md - expanded: true - items: - - name: Resilience pipeline registry - href: pipelines/resilience-pipeline-registry.md - - name: Advanced topics expanded: true items: