共用方式為


Send-ServiceFabricReplicaHealthReport

在 Service Fabric 複本上傳送健康情況報告。

語法

Send-ServiceFabricReplicaHealthReport
    [-PartitionId] <Guid>
    -ReplicaId <Int64>
    -HealthState <HealthState>
    -SourceId <String>
    -HealthProperty <String>
    [-Description <String>]
    [-TimeToLiveSec <Int32>]
    [-RemoveWhenExpired]
    [-SequenceNumber <Int64>]
    [-Immediate]
    [-TimeoutSec <Int32>]
    [<CommonParameters>]
Send-ServiceFabricReplicaHealthReport
    [-PartitionId] <Guid>
    -InstanceId <Int64>
    -HealthState <HealthState>
    -SourceId <String>
    -HealthProperty <String>
    [-Description <String>]
    [-TimeToLiveSec <Int32>]
    [-RemoveWhenExpired]
    [-SequenceNumber <Int64>]
    [-Immediate]
    [-TimeoutSec <Int32>]
    [<CommonParameters>]

Description

Send-ServiceFabricReplicaHealthReport Cmdlet 會在 Service Fabric 無狀態服務實例或具狀態服務複本上傳送健康情況報告。

無狀態服務實例或具狀態服務複本必須已存在於健康狀態存放區中。 若要檢查它是否存在,請使用 get-ServiceFabricReplicaHealth Cmdlet Get-ServiceFabricReplicaHealth,並指定 PartitionIdReplicaOrInstanceId 参數。 或者,您可以使用 Get-ServiceFabricPartitionHealth Cmdlet 搭配 PartitionId 參數,然後檢查 ReplicaHealthStates 區段以尋找複本。

Cmdlet 會在 Connect-ServiceFabricCluster Cmdlet HealthReportSendIntervalInSec 參數所指定的間隔之後傳送報表。 叢集聯機必須在這段期間保持運作。

Cmdlet 可能會傳回成功,但報表會以異步方式傳送,因此其處理可能會失敗。 若要查看報表是否已套用在健康狀態存放區中,請使用 get-ServiceFabricReplicaHealth Cmdlet ,並檢查報告是否出現在健康情況事件區段中。

在 Service Fabric 叢集上執行任何作業之前,請使用 Connect-ServiceFabricCluster Cmdlet 來建立叢集的連線。

範例

範例 1:針對具有無限 TTL 的具狀態服務複本回報錯誤健康情況報告

PS C:\> Send-ServiceFabricReplicaHealthReport -PartitionId 869dd2e9-fdda-42a5-ad96-4b71c795dfd3 -ReplicaId 130464806670632402 -SourceId "MyWatchdog" -HealthProperty "DiskUsage" -HealthState Error -Description "Disk is full"

此命令會從來源 MyWatchDog,傳送指定具狀態服務複本之指定數據分割的健康情況報告。 健康情況報告包含健康情況屬性的相關信息,DiskUsage 處於錯誤健康狀態,且具有無限 TTL。 此命令也會提供錯誤的描述。

範例 2:針對指定 TTL 有效的無狀態服務實例回報警告健康情況報告,並在到期時將其移除

PS C:\> Send-ServiceFabricReplicaHealthReport -PartitionId 1a151ac7-9c25-4528-81fc-4c6bb9909394 -InstanceId 130464806670632403 -SourceId "MyWatchdog" -HealthProperty "Resources" -HealthState Warning -Description "Access to resources is temporarily disabled" -TimeToLiveSec 10 -RemoveWhenExpired

此命令會從來源 MyWatchDog 傳送指定無狀態服務實例的健康情況報告。 健康情況報告包含來自來源 MyWatchdog 且 10 秒 TTL 為警告健康狀態的資源 健康情況屬性的相關信息 資源。 報告標示為在到期時移除。

參數

-Description

指定觸發報表之條件的人類可讀資訊。 SourceIdHealthProperty,以及 HealthState 參數會完整描述報告。

描述的最大字串長度為4096個字元。 如果提供的字串較長,它會自動截斷。 截斷時,描述會以標記 「[Truncated]」 結尾,以指出發生截斷的使用者。 字串大小總計為 4096 個字元,因此會保留原始字串中的少於 4096 個字元。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-HealthProperty

指定報表的屬性。 此屬性與 SourceId 參數一起,可唯一識別報表。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-HealthState

指定代表所報告健全狀態的 HealthState 物件。

類型:HealthState
接受的值:Invalid, Ok, Warning, Error, Unknown
Position:Named
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-Immediate

指定是否應立即將報告傳送至健康狀態存放區。 這對於應儘快傳送的重要報告很有用。 如果未指定,則會根據健康情況客戶端設定來傳送報告。 因此,它會根據 HealthReportSendInterval 組態進行批處理。 這是建議的設定,因為它可讓健康情況用戶端將健康情況報告訊息優化到健康狀態存放區,以及健康情況報告處理。 根據預設,Powershell 網狀架構用戶端會將 HealthReportSentInterval 設定為 0,因此會立即傳送報告。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-InstanceId

指定無狀態服務實例識別碼。 實例標識碼僅適用於無狀態服務。 健康情況用戶端會接受使用 InstanceId 而不是 ReplicaId 的具狀態複本報告,但健康狀態存放區會拒絕。

類型:Int64
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-PartitionId

指定 Service Fabric 數據分割的識別碼。

類型:Guid
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-RemoveWhenExpired

指出報表在到期時會從健康狀態存放區中移除。 如果您未指定此參數,當報表存留時間到期時,實體會被視為處於錯誤狀態。 過期時移除的報表,可用於只有效一段時間的條件,或清除健全狀況存放區的報告。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-ReplicaId

指定具狀態服務複本識別碼。 復本標識碼僅適用於具狀態服務。 健康情況用戶端會接受使用 ReplicaId 而非 InstaceId 的無狀態實例報告,但健康狀態存放區會拒絕。

類型:Int64
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-SequenceNumber

指定與健康情況報告相關聯的序號。 如果您未指定此參數的值,則會自動設定序號。 如果您指定序號,該值必須高於相同實體上針對相同 SourceIdHealthProperty設定的任何先前序號,否則會因為過時而拒絕報告。

類型:Int64
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-SourceId

指定觸發報表的來源標識碼。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-TimeoutSec

指定作業的逾時期間,以秒為單位。

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-TimeToLiveSec

指定報表的存留時間(TTL)以秒為單位。 當 TTL 到期時,如果指定了 removeWhenExpired 參數 ,報表就會從健康狀態存放區中移除。 否則,實體會在錯誤時評估,因為報表已過期。 預設值為 Infinite。

類型:Int32
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

輸入

System.Guid

System.Fabric.Health.HealthState

System.String

System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

System.Management.Automation.SwitchParameter

System.Nullable`1[[System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

輸出

System.Object