Get-ServiceFabricClusterHealthChunk

Service Fabric クラスターとその子の正常性情報を取得します。

構文

Get-ServiceFabricClusterHealthChunk
   [-ConsiderWarningAsError <Boolean>]
   [-MaxPercentUnhealthyApplications <Byte>]
   [-MaxPercentUnhealthyNodes <Byte>]
   [-ApplicationHealthPolicies <ApplicationHealthPolicyMap>]
   [-ApplicationTypeHealthPolicyMap <ApplicationTypeHealthPolicyMap>]
   [-NodeTypeHealthPolicyMap <NodeTypeHealthPolicyMap>]
   [-ApplicationFilters <System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]>]
   [-NodeFilters <System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]>]
   [-TimeoutSec <Int32>]
   [<CommonParameters>]

説明

Get-ServiceFabricClusterHealthChunk コマンドレットは、高度な入力フィルターを使用して要求された Service Fabric クラスターとクラスター エンティティの正常性情報を取得します。 既定では、子エンティティは返されません。 指定すると、入力に関連するすべてのエンティティが階層形式で返されます。

Service Fabric では、次の正常性状態が報告されます。

  • OK です。 エンティティは正常性ガイドラインを満たしています。
  • エラー。 エンティティは正常性ガイドラインを満たしていません。
  • 警告。 エンティティは正常性ガイドラインを満たしていますが、いくつかの問題が発生しています。

クラスターの集計された正常性状態では、クラスター上のすべての正常性レポートと、すべての子の集計された正常性状態が再帰的に考慮されます。 正常性評価では、クラスターの正常性ポリシーと、クラスター内の各アプリケーションのアプリケーション正常性ポリシーが使用されます。 クラスターとアプリケーション評価の正常性ポリシーを入力として渡すことができます。 指定しない場合、正常性評価では、マニフェストが指定されている場合はクラスターマニフェストとアプリケーション マニフェストから適用可能な正常性ポリシーが使用され、それ以外の場合は既定のポリシーが使用されます。

クラスターの正常性チャンクには、入力フィルターで指定されている対象の子のみが含まれます。 フィルター処理はサーバー側で行われるので、メッセージ サイズは最小限に抑えられます。

要求された出力がメッセージに収まらない場合、結果は返されません。

Service Fabric クラスターで操作を実行する前に、 Connect-ServiceFabricCluster コマンドレットを使用してクラスターへの接続を確立します。

例 1: ノード フィルターを使用してクラスターの正常性を取得する

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $NodeFilter1 = New-Object System.Fabric.Health.NodeHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $NodeFilter2 = New-Object System.Fabric.Health.NodeHealthStateFilter -Property @{NodeNameFilter="N0010";HealthStateFilter=$ErrorFilter}
PS C:\> $NodeFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.NodeHealthStateFilter]
PS C:\> $NodeFilters.Add($NodeFilter1)
PS C:\> $NodeFilters.Add($NodeFilter2)
PS C:\> Get-ServiceFabricClusterHealthChunk -NodeFilter $NodeFilters

このコマンドは、クラスターの正常性を照会します。 ノード N0010 を除くすべてのノードを返すフィルターを指定します。これは、エラーで正常性状態が集計されている場合にのみ含める必要があります。

例 2: デプロイされたエンティティ フィルターを使用してクラスターの正常性を取得する

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $DspFilter1 = New-Object System.Fabric.Health.DeployedServicePackageHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $DaFilter1 =  New-Object System.Fabric.Health.DeployedApplicationHealthStateFilter -Property @{HealthStateFilter=$AllFilter;NodeNameFilter="N0020"}
PS C:\> $DaFilter1.DeployedServicePackageFilters.Add($DspFilter1)
PS C:\> $AppFilter = New-Object System.Fabric.Health.ApplicationHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $AppFilter.DeployedApplicationFilters.Add($DaFilter1)
PS C:\> $AppFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.ApplicationHealthStateFilter]
PS C:\> $AppFilters.Add($AppFilter)
PS C:\> Get-ServiceFabricClusterHealthChunk -ApplicationFilters $AppFilters

このコマンドは、クラスターの正常性を照会します。 指定したノード (N0020) 上のすべてのアプリケーションとデプロイされたアプリケーションとデプロイされたサービス パッケージを返すフィルターを指定します。

例 3: 再帰的な内部フィルターを含むアプリケーション フィルターを使用してクラスターの正常性を取得する

PS C:\> $ErrorFilter = [System.Fabric.Health.HealthStateFilter]::Error
PS C:\> $AllFilter = [System.Fabric.Health.HealthStateFilter]::All
PS C:\> $ReplicaFilter1 = New-Object System.Fabric.Health.ReplicaHealthStateFilter -Property @{ReplicaOrInstanceIdFilter= 130984777977143495;HealthStateFilter=$ErrorFilter}
PS C:\> $ReplicaFilter2 = New-Object System.Fabric.Health.ReplicaHealthStateFilter -Property @{HealthStateFilter=$AllFilter}

PS C:\> $PartitionFilter = New-Object System.Fabric.Health.PartitionHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $PartitionFilter.ReplicaFilters.Add($ReplicaFilter1)
PS C:\> $PartitionFilter.ReplicaFilters.Add($ReplicaFilter2)

PS C:\> $SvcFilter1 = New-Object System.Fabric.Health.ServiceHealthStateFilter -Property @{HealthStateFilter=$AllFilter}
PS C:\> $SvcFilter1.PartitionFilters.Add($PartitionFilter)

PS C:\> $AppFilter = New-Object System.Fabric.Health.ApplicationHealthStateFilter -Property @{ApplicationNameFilter="fabric:/app1"}
PS C:\> $AppFilter.ServiceFilters.Add($SvcFilter1)

PS C:\> $AppFilters = New-Object System.Collections.Generic.List[System.Fabric.Health.ApplicationHealthStateFilter]
PS C:\> $AppFilters.Add($AppFilter)
PS C:\> Get-ServiceFabricClusterHealthChunk -ApplicationFilters $AppFilters

このコマンドは、クラスターの正常性を照会します。 アプリケーションのみを返すフィルターを指定します。 フィルターはすべてのアプリケーション サービスを返し、サービスごとにすべてのパーティションを返します。 パーティションごとに、130984777977143495を除くすべてのレプリカが含まれます。これは、エラー時にのみ返す必要があります。

パラメーター

-ApplicationFilters

System.Fabric.Health.ApplicationHealthStateFilter オブジェクトの Systems.Collections.Generic.List を指定します。 最も具体的なフィルターを考慮するアプリケーションのみが返されます。 個々のアプリケーションまたはすべてのアプリケーションのフィルターを指定できます。 アプリケーションごとに 1 つの一般的なフィルターと 1 つのフィルターのみが許可されます。

このパラメーターを指定しないと、アプリケーションは返されません。

Type:System.Collections.Generic.List`1[System.Fabric.Health.ApplicationHealthStateFilter]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationHealthPolicies

一部またはすべてのアプリケーションのカスタム正常性ポリシーを含む System.Fabric.Health.ApplicationHealthPolicyMap を指定します。 このパラメーターを指定しない場合、またはアプリケーションのマップにエントリを含めない場合、そのアプリケーションはアプリケーション マニフェストに定義されているアプリケーション正常性ポリシー (存在する場合) で評価され、それ以外の場合は既定のポリシーで評価されます。

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

-ApplicationTypeHealthPolicyMap

アプリケーションの種類ごとに許可される異常なアプリケーションの最大割合を定義するマップを指定します。 このマップのアプリケーションの種類は、グローバル MaxPercentUnhealthyApplications の割合ではなく、特定のパーセンテージを使用して評価されます。

たとえば、ある種類のアプリケーションが重要な場合、クラスター管理者はそのアプリケーションの種類のマップにエントリを追加し、0% の値を割り当てることができます (つまり、エラーを許容しません)。 MaxPercentUnhealthyApplications を 20% に設定すると、他のすべてのアプリケーションを評価して、数千のアプリケーション インスタンスからの一部の障害を許容できます。

アプリケーションの種類の正常性ポリシー マップは、HealthManager/EnableApplicationTypeHealthEvaluation の構成エントリを使うアプリケーションの種類の正常性評価がクラスター マニフェストで有効になっている場合にのみ使われます。

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

-ConsiderWarningAsError

正常性評価中に警告正常性レポートをエラーとして扱うかどうかを示します。 この値は、ノードとクラスターの正常性レポートの評価に使用されます。

クラスター正常性ポリシー パラメーターが指定されていない場合、正常性評価では、クラスター マニフェストのクラスター正常性ポリシーが存在する場合、または失敗を許容しない既定のポリシーが使用されます。

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

-MaxPercentUnhealthyApplications

異常なアプリケーションの許容される最大パーセンテージを指定します。 集約された正常性状態が許容されるよりも多くのアプリケーションがエラーの場合、クラスターの正常性状態はエラーです。

クラスター正常性ポリシー パラメーターが指定されていない場合、正常性評価では、クラスター マニフェストのクラスター正常性ポリシーが存在する場合、または失敗を許容しない既定のポリシーが使用されます。

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

-MaxPercentUnhealthyNodes

異常なノードの許容される最大パーセンテージを指定します。 集約された正常性状態のエラーが許容されるノードよりも多くのノードがある場合、クラスターはエラーとして評価されます。 このパラメーターを指定しない場合、正常性評価ではクラスター マニフェストで指定された値が使用されます。

クラスター正常性ポリシー パラメーターが指定されていない場合、正常性評価では、クラスター マニフェストのクラスター正常性ポリシーが存在する場合、または失敗を許容しない既定のポリシーが使用されます。

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

-NodeFilters

System.Fabric.Health.NodeHealthStateFilter オブジェクトの Systems.Collections.Generic.List を指定します。 最も具体的なフィルターを考慮したノードのみが返されます。 個々のノードまたはすべてのノードのフィルターを指定できます。 1 つのノードにつき 1 つの一般的なフィルターと 1 つのフィルターのみが許可されます。 このパラメーターを指定しない場合、ノードは返されません。

Type:System.Collections.Generic.List`1[System.Fabric.Health.NodeHealthStateFilter]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NodeTypeHealthPolicyMap

特定のノード タイプに対する異常なノードの最大パーセンテージを持つマップを定義します。

ノードの種類の正常性ポリシー マップをクラスターの正常性評価時に使用して、特別なノードの種類を記述できます。 マップに含まれるノードの種類は、マップに含まれる割合に対して評価され、グローバルも評価されます (System.Fabric.Health.ClusterHealthPolicy.MaxPercentUnhealthyNodes を参照)。 マップで指定されたノード タイプのノードも、ノードのグローバル プールに対してカウントされます。これらは独立したチェックです。

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

-TimeoutSec

操作のタイムアウト期間を秒単位で指定します。

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

入力

None

出力

System.Object