Start-​Service​Fabric​Chaos

Starts a Chaos run in the cluster.

Syntax

Start-ServiceFabricChaos
     [-ClusterHealthPolicy <ClusterHealthPolicy>]
     [-Context <Hashtable>]
     [-EnableMoveReplicaFaults]
     [-MaxClusterStabilizationTimeoutSec <UInt32>]
     [-MaxConcurrentFaults <UInt32>]
     [-TimeoutSec <Int32>]
     [-TimeToRunMinute <UInt32>]
     [-WaitTimeBetweenFaultsSec <UInt32>]
     [-WaitTimeBetweenIterationsSec <UInt32>]
     [<CommonParameters>]

Description

The Start-ServiceFabricChaos cmdlet starts a Chaos run in the cluster. Chaos induces faults in the cluster based on the received input parameters. A report of the faults induced as well as other events encountered during execution can be viewed by using the Get-ServiceFabricChaosReport cmdlet.

Chaos runs in multiple iterations. Each iteration consists of faults and cluster validation. You can control how long Chaos runs, how long it waits between iterations, how many faults it can induce during an iteration and how long it waits between faults. Chaos validates cluster health between iterations.

Examples

Example 1: Start Chaos in the cluster

PS C:\> $clusterHealthPolicy = New-Object -TypeName System.Fabric.Health.ClusterHealthPolicy
PS C:\> $clusterHealthPolicy.MaxPercentUnhealthyNodes = 10
PS C:\> $clusterHealthPolicy.MaxPercentUnhealthyApplications = 20
PS C:\> $clusterHealthPolicy.ConsiderWarningAsError = $False
PS C:\> $clusterHealthPolicy.ApplicationTypeHealthPolicyMap.Add("CriticalAppType", 33)
PS C:\> $context = @{"k1" = "v1";"k2" = "v2"}
PS C:\> Start-ServiceFabricChaos -TimeToRunMinute 60 -MaxConcurrentFaults 3 -MaxClusterStabilizationTimeoutSec 60 -WaitTimeBetweenIterationsSec 30 -WaitTimeBetweenFaultsSec 5 -EnableMoveReplicaFaults -Context $context -ClusterHealthPolicy $clusterHealthPolicy

This command starts a Chaos run in the cluster. In this run, iterations will be spaced at 30 second boundary. Within each iteration, chaos induces maximum of three faults. These faults will be started at a gap of five seconds. This run, unless stopped by another method, will stop in 60 minutes.

If Chaos was already running, issuing this cmdlet has no effect.

Optional Parameters

-ClusterHealthPolicy

Specifies how Chaos should behave under cluster health conditions.

Type:ClusterHealthPolicy
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Context

A dictionary to hold details about why Chaos is being started.

Type:Hashtable
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-EnableMoveReplicaFaults

Indicates that Chaos can induce faults that can cause primary or secondary replicas to move.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-MaxClusterStabilizationTimeoutSec

Specifies the maximum number of seconds that Chaos waits for the cluster to get to healthy state. If cluster is not healthy, a ValidationFailedEvent is logged in Chaos report. This value cannot exceed the total seconds in TimeSpan.MaxValue.

Type:UInt32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-MaxConcurrentFaults

Specifies the maximum number of faults that Chaos induces in parallel. Chaos runs in iterations. Two consecutive iterations are separated by a validation period. In a single iteration, Chaos induces at most the number of faults that you specify. Recommended value is 2 or 3.

Type:UInt32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-TimeToRunMinute

Specifies how long Chaos runs, in minutes; cannot exceed (1/60)*uint.MaxValue. Alternatively, you can stop Chaos by using the Stop-ServiceFabricChaos cmdlet or the StopChaosAsync method.

Type:UInt32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-TimeoutSec

Specifies the time-out period, in seconds, for the operation.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WaitTimeBetweenFaultsSec

Specifies how long Chaos waits, in seconds, between two consecutive faults in one iteration. If you specify a larger value, the number of concurrent faults is lower. The maximum allowed value is UInt32.MaxValue.

Type:UInt32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WaitTimeBetweenIterationsSec

Specifies how long Chaos waits, in seconds, between iterations. The maximum allowed value is UInt32.MaxValue.

Type:UInt32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False