Send-ServiceFabricDeployedServicePackageHealthReport
在 Service Fabric 部署的服務套件上傳送健康情況報告。
語法
Send-ServiceFabricDeployedServicePackageHealthReport
[-ApplicationName] <Uri>
[-ServiceManifestName] <String>
[-NodeName] <String>
[[-ServicePackageActivationId] <String>]
-HealthState <HealthState>
-SourceId <String>
-HealthProperty <String>
[-Description <String>]
[-TimeToLiveSec <Int32>]
[-RemoveWhenExpired]
[-SequenceNumber <Int64>]
[-Immediate]
[-TimeoutSec <Int32>]
[<CommonParameters>]
Description
Send-ServiceFabricDeployedServicePackageHealthReport Cmdlet 會在 Service Fabric 部署的服務套件上傳送健康情況報告。
已部署的服務套件必須已存在於健康狀態存放區中。 若要檢查服務是否存在,請使用 Get-ServiceFabricDeployedServicePackageHealth Cmdlet。 指定應用程式名稱、服務套件名稱和節點名稱。 或者,您可以使用 Get-ServiceFabricDeployedApplicationHealth Cmdlet。 指定應用程式名稱和節點名稱,然後檢查已部署的服務套件健全狀況狀態欄段,以尋找服務套件。
Cmdlet 會在Connect-ServiceFabricCluster Cmdlet 的HealthReportSendIntervalInSec參數所指定的間隔之後傳送報告。 叢集連線必須在這段期間保持運作。 命令會在用戶端上評估,而不參考在健康狀態存放區上執行。 即使命令傳回成功,報表也可能不會套用在健康狀態存放區中。 例如,健康狀態資料存放區可能會因為參數無效 (例如序號過時) 而拒絕此報告。
若要查看報表是否已套用在健康狀態存放區中,請使用 Get-ServiceFabricDeployedServicePackageHealth Cmdlet,並檢查報表是否出現在 HealthEvents 區段中。
若要管理 Service Fabric 叢集,請使用 [以系統管理員身分執行] 選項啟動Windows PowerShell。 在 Service Fabric 叢集上執行任何作業之前,請先使用 Connect-ServiceFabricCluster Cmdlet 和 Get-ServiceFabricClusterConnection Cmdlet 來建立叢集的連線。
範例
範例 1:報告具有無限 TTL 的錯誤健康情況報告
PS C:\> Send-ServiceFabricDeployedServicePackageHealthReport -ApplicationName fabric:/MyApplication -NodeName "Node01" -ServiceManifestName "MyServiceManifest" -HealthProperty "Memory" -HealthState Error -SourceId "MyWatchdog"
此命令會針對名為 Fabric:/MyApplication 之節點上名為 fabric:/MyApplication 的應用程式,針對名為 MyServiceManifest 的服務資訊清單,在部署的服務套件上傳送健康情況報告。 健康情況報告包含來自來源 MyWatchdog 且具有無限 TTL 之錯誤健康情況狀態的健全狀況屬性 記憶體 相關資訊。 未提供描述,而且會自動設定序號。
範例 2:回報對指定 TTL 有效的警告,並在到期時將其移除
PS C:\> Send-ServiceFabricDeployedServicePackageHealthReport -ApplicationName fabric:/MyApplication -ServiceManifestName MyServiceManifest -NodeName "Node01" -HealthProperty "CustomSetup" -HealthState Warning -SourceId MyWatchdog -RemoveWhenExpired -Description "The setup has completed with some warnings." -TimeToLiveSec 10
此命令會針對名為 Fabric:/MyApplication 的應用程式,在名為 Node01 的節點上,針對名為 MyServiceManifest 的服務資訊清單,針對已部署的服務套件傳送健康情況報告。 健康情況報告包含來自來源 MyWatchdog 且 10 秒 TTL 處於警告健康狀態的 Health 屬性 CustomSetup 相關資訊。 報表到期之後,它會從健康狀態存放區中移除,且將不再影響健康情況評估。 此命令也會提供警告的描述。
參數
-ApplicationName
指定 Service Fabric 應用程式的統一資源識別項 (URI) 。 Cmdlet 會針對具有您所指定 URI 的應用程式傳送健康情況報告。
類型: | Uri |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Description
指定觸發報表之條件的人類可讀資訊。 SourceId、HealthProperty和HealthState參數會完整描述報告。
描述的字串長度上限為 4096 個字元。 如果提供的字串較長,它會自動截斷。 截斷時,描述會以標記 「[Truncated]」 結尾,以指出發生截斷的使用者。 字串大小總計為 4096 個字元,因此會保留原始字串中的少於 4096 個字元。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-HealthProperty
指定報表的 屬性。 這個屬性與 SourceId 參數一起,可唯一識別報表。 報表會覆寫相同實體上 SourceId 和 HealthProperty 參數具有相同值的任何先前報告。
類型: | 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 |
-NodeName
指定 Service Fabric 節點的名稱。 Cmdlet 會針對部署在您指定的節點上的服務套件傳送健康情況報告。
類型: | String |
Position: | 2 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-RemoveWhenExpired
指出報表在到期時會從健康狀態存放區中移除。 如果您未指定此參數,當報表存留時間到期時,實體會被視為 [錯誤] 狀態。 過期時移除的報告可用於僅有效一段時間的條件,或清除健康狀態存放區的報告。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-SequenceNumber
指定與健康情況報告相關聯的序號。 如果您未指定此參數的值,則會自動設定序號。 如果您指定序號,該值必須高於相同 SourceId 和 HealthProperty上設定的任何先前序號,或報告因為過時而遭到拒絕。
類型: | Int64 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-ServiceManifestName
指定 Service Fabric 服務資訊清單的名稱。 與 ApplicationName 和 NodeName一起,此值可唯一識別已部署的服務套件健康情況實體。
類型: | String |
Position: | 1 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-ServicePackageActivationId
已部署 ServicePackage的啟用識別碼。 這可以使用查詢 Get-ServiceFabricDeployedServicePackage來取得。
如果在建立服務 () 時 New-ServiceFabricService
指定的ServicePackageActivationMode是SharedProcess (或未指定,在此情況下,它預設為SharedProcess) ,則 ServicePackageActivationId的值一律是空字串,而且不需要指定。 若要深入瞭解服務套件啟用識別碼,請參閱 [Service Fabric 裝載模型][1]。
類型: | String |
Position: | 3 |
預設值: | 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.Uri
System.String
System.Fabric.Health.HealthState
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