共用方式為


sfctl chaos

啟動、停止及報告混亂測試服務。

子群組

子群 描述
schedule 取得並設定混亂排程。

命令

命令 描述
活動 根據接續標記或時間範圍,取得 Chaos 事件的下一個區段。
get 取得混亂的狀態。
start 啟動叢集中的混亂。
stop 如果混亂正在叢集中執行,並將 Chaos 排程置於已停止狀態,則會停止混亂。

sfctl chaos 事件

根據接續標記或時間範圍,取得 Chaos 事件的下一個區段。

若要取得混亂事件的下一個區段,您可以指定 ContinuationToken。 若要開始新的 Chaos 事件區段,您可以透過 StartTimeUtc 和 EndTimeUtc 指定時間範圍。 您無法同時指定 ContinuationToken 和相同呼叫中的時間範圍。 當有 100 個以上的 Chaos 事件時,Chaos 事件會在多個區段中傳回,其中區段包含不超過 100 個 Chaos 事件,並取得您使用接續令牌呼叫此 API 的下一個區段。

引數

Argument 描述
--continuation-token 接續令牌參數是用來取得下一組結果。 當來自系統的結果不符合單一回應時,API 回應中會包含具有非空白值的接續令牌。 當此值傳遞至下一個 API 呼叫時,API 會傳回下一組結果。 如果沒有進一步的結果,接續令牌就不會包含值。 此參數的值不應該經過 URL 編碼。
--end-time-utc Windows 檔案時間,代表要產生 Chaos 報表之時間範圍的結束時間。 如需詳細資訊,請參閱 DateTime.ToFileTimeUtc 方法
--max-results 在分頁查詢中傳回的結果數目上限。 此參數會定義所傳回結果數目的上限。 如果傳回的結果不符合組態中所定義的訊息大小上限限制,則傳回的結果可能會小於指定的最大結果。 如果此參數為零或未指定,則分頁查詢會包含盡可能符合傳回訊息的結果。
--start-time-utc Windows 檔案時間,代表要產生 Chaos 報表之時間範圍的開始時間。 如需詳細資訊,請參閱 DateTime.ToFileTimeUtc 方法
--timeout -t 伺服器逾時,以秒為單位執行作業。 此逾時會指定客戶端願意等候要求作業完成的時間持續時間。 此參數的預設值為 60 秒。 預設值:60。

全域引數

Argument 描述
--debug 增加記錄詳細資訊,以顯示所有偵錯記錄。
--help -h 顯示此說明訊息並結束。
--output -o 輸出格式。 允許的值:json、jsonc、table、tsv。 預設值:json。
--查詢 JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/。
--verbose 增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

sfctl chaos get

取得混亂的狀態。

取得 Chaos 的狀態,指出 Chaos 是否正在執行、用於執行 Chaos 的 Chaos 參數,以及 Chaos 排程的狀態。

引數

Argument 描述
--timeout -t 伺服器逾時,以秒為單位執行作業。 此逾時會指定客戶端願意等候要求作業完成的時間持續時間。 此參數的預設值為 60 秒。 預設值:60。

全域引數

Argument 描述
--debug 增加記錄詳細資訊,以顯示所有偵錯記錄。
--help -h 顯示此說明訊息並結束。
--output -o 輸出格式。 允許的值:json、jsonc、table、tsv。 預設值:json。
--查詢 JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/。
--verbose 增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

sfctl chaos start

啟動叢集中的混亂。

如果 Chaos 尚未在叢集中執行,則會使用傳入 Chaos 參數的 來啟動 Chaos。 如果發出此呼叫時已在執行 Chaos,呼叫會失敗,並出現錯誤碼FABRIC_E_CHAOS_ALREADY_RUNNING。 如需詳細資訊,請參閱在 Service Fabric 叢集中引發受控制混亂一文

引數

Argument 描述
--app-type-health-policy-map 特定應用程式類型具有最大百分比狀況不良應用程式的字典(索引鍵/值)專案的 JSON 編碼陣列。 每個字典項目都會指定為應用程式類型名稱的索引鍵,以及代表用來評估指定應用程式類型之應用程式的 MaxPercentUnhealthyApplications 百分比的整數。

針對特定應用程式類型,定義具有最大百分比狀況不良應用程式的對應。 應用程式類型健全狀況原則對應可在叢集健康情況評估期間使用,以描述個別的應用程式類型。 對應中包含的應用程式類型會根據對應中指定的百分比進行評估,而不是使用叢集健康狀態原則中定義的全域 MaxPercentUnhealthyApplications。 對應中指定的應用程式類型應用程式不會計入應用程式的全域集區。 例如,如果某個類型的某些應用程式很重要,叢集系統管理員可以將專案新增至該應用程式類型的對應,並將值指派為 0%(不允許任何失敗)。 所有其他應用程式都可以使用 MaxPercentUnhealthyApplications 設定為 20% 來評估,以容許數千個應用程式實例中的某些失敗。 只有在叢集指令清單使用 HealthManager/EnableApplicationTypeHealthEvaluation 的組態專案啟用應用程式類型健康情況評估時,才會使用應用程式類型健康情況原則對應。

範例 JSON 編碼字串: [{“key”: “fabric:/Voting”, “value”: “0”}]
--chaos-target-filter 具有兩個字串類型索引鍵的 JSON 編碼字典。 這兩個索引鍵是 NodeTypeInclusionList 和 ApplicationInclusionList。 這兩個索引鍵的值都是字串清單。 chaos_target_filter定義目標 Chaos 錯誤的所有篩選,例如,只對特定節點類型進行錯誤或只對特定應用程式進行錯誤。

如果未使用chaos_target_filter,Chaos 會錯誤所有叢集實體。 如果使用chaos_target_filter,Chaos 只會錯誤符合chaos_target_filter規格的實體。 NodeTypeInclusionList 和 ApplicationInclusionList 只允許等位語意。 無法指定 NodeTypeInclusionList 和 ApplicationInclusionList 的交集。 例如,您不能指定「只有在此應用程式位於該節點類型上時才對它引發錯誤」。若 NodeTypeInclusionList 或 ApplicationInclusionList 中包含某個實體,則該實體就不能使用 ChaosTargetFilter 排除。 即使 applicationX 並未出現在 ApplicationInclusionList 中,但在某些混亂反覆項目中也能對 applicationX 引發錯誤,因為它正好位於包括在 NodeTypeInclusionList 中的 nodeTypeY 的節點上。 如果 NodeTypeInclusionList 和 ApplicationInclusionList 都是空的,則會擲回 ArgumentException。 針對這些節點類型的節點,會啟用所有類型的錯誤(重新啟動節點、重新啟動程式代碼封裝、移除複本、重新啟動複本、移動主要和移動次要節點)。 如果節點類型 (例如 NodeTypeX) 未出現在 NodeTypeInclusionList 中,則節點層級錯誤 (例如 NodeRestart) 永遠不會針對 NodeTypeX 的節點啟用,但如果 ApplicationInclusionList 中的應用程式碰巧位於 NodeTypeX 的節點上,仍然可以啟用 NodeTypeX 的程式代碼封裝和複本錯誤。 若要增加此數目,最多可以包含100個節點類型名稱,則 MaxNumberOfNodeTypesInChaosEntityFilter組態需要設定升級。 屬於這些應用程式服務的所有複本都適用於複本錯誤(重新啟動複本、移除複本、移動主要復本和移動次要複本)的 Chaos。 只有在程式碼封裝只裝載這些應用程式的複本時,混亂才可以將程式碼封裝重新啟動。 如果某個應用程式未出現在此清單中,系統仍然可能在某些混亂反覆項目中針對它引發錯誤,前提是該應用程式位於某個包含在 NodeTypeInclusionList 中之節點類型的節點上。 不過,如果 applicationX 因位置限制而繫結至 nodeTypeY,且 applicationX 未出現在 ApplicationInclusionList,而且 nodeTypeY 未出現在 NodeTypeInclusionList 中,則系統將永遠不會對 applicationX 引發錯誤。 若要增加此數目,最多可以包含1000個應用程式名稱,則 MaxNumberOfApplicationsInChaosEntityFilter組態需要設定升級。
--上下文 JSON 編碼的對應(字串、字串)類型索引鍵/值組。 此對應可用於記錄混亂執行的相關資訊。 此類組合不能超過 100 個,且每個字串 (索引鍵或值) 最多為 4095 個字元長。 此對應由混亂執行的起始者設定,以選擇性地儲存特定執行的相關內容。
--disable-move-replica-faults 停用移動主要和移動次要錯誤。
--max-cluster-stabilization 等候所有叢集實體穩定且狀況良好的時間上限。 預設值:60。

混亂會在反覆項目中執行,並在每次反覆項目開始時,驗證叢集實體的健康情況。 在驗證期間,如果叢集實體在 MaxClusterStabilizationTimeoutInSeconds 內不穩定且狀況良好,Chaos 會產生驗證失敗事件。
--max-concurrent-faults 每個反覆項目引發的並行錯誤數目上限。 混亂會在反覆項目中執行,而兩個連續反覆專案會以驗證階段分隔。 並行程度越高,錯誤插入越積極,就會誘使更複雜的一系列狀態來發現 Bug。 建議從 2 或 3 的值開始,並在向上移動時保持謹慎。 預設:1。
--max-percent-unhealthy-apps 在 Chaos 期間評估叢集健康情況時,報告錯誤之前,允許狀況不良的應用程式百分比上限。

報告錯誤之前,允許的應用程式狀況不良百分比上限。 例如,若要允許 10% 的應用程式狀況不良,此值會是 10。 百分比代表在叢集視為錯誤之前,可能狀況不良的應用程式最大容許百分比。 如果遵守百分比,但至少有一個狀況不良的應用程式,則健康情況會評估為Warning。 這是藉由將狀況不良的應用程式數目除以叢集中應用程式實例總數,不包括 ApplicationTypeHealthPolicyMap 中包含的應用程式類型應用程式。 計算會四捨五入,以容許少量應用程序發生一個失敗。 默認百分比為零。
--max-percent-unhealthy-nodes 在 Chaos 期間評估叢集健康情況時,報告錯誤之前,允許狀況不良節點的百分比上限。

報告錯誤之前,允許狀況不良節點的百分比上限。 例如,若要允許 10% 的節點狀況不良,這個值會是 10。 百分比代表在叢集視為錯誤之前,可狀況不良之節點的最大容許百分比。 如果遵守百分比,但至少有一個狀況不良的節點,則健康情況會評估為Warning。 百分比的計算方式是將狀況不良的節點數目除以叢集中的節點總數。 針對較少的節點數目,計算會四捨五入以容許一個失敗。 默認百分比為零。 在大型叢集中,某些節點一律會關閉或關閉以進行修復,因此應該將此百分比設定為容許該百分比。
--time-to-run 混亂會在自動停止之前執行的總時間(以秒為單位)。 允許的最大值為 4,294,967,295 (System.UInt32.MaxValue)。 默認值:4294967295。
--timeout -t 預設值:60。
--wait-time-between-faults 在單一反覆項目內連續錯誤之間等候時間(以秒為單位)。 默認值:20。

值越大,錯誤與叢集經過的狀態轉換順序越簡單,其重疊越低。 建議從 1 到 5 之間的值開始,並在向上移動時小心謹慎。
--wait-time-between-iterations 混亂兩個連續反覆專案之間的時間分隔(以秒為單位)。 值越大,錯誤插入率就越低。 默認值:30。
--warning-as-error 指出是否以與錯誤相同的嚴重性來處理警告。

全域引數

Argument 描述
--debug 增加記錄詳細資訊,以顯示所有偵錯記錄。
--help -h 顯示此說明訊息並結束。
--output -o 輸出格式。 允許的值:json、jsonc、table、tsv。 預設值:json。
--查詢 JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/。
--verbose 增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

sfctl chaos stop

如果混亂正在叢集中執行,並將 Chaos 排程置於已停止狀態,則會停止混亂。

阻止混亂執行新的錯誤。 執行中的錯誤會繼續執行,直到它們完成為止。 目前的混亂排程會進入停止狀態。 一旦停止排程,它就會維持在已停止的狀態,而不會用來排程混亂的新執行。 必須設定新的 Chaos 排程,才能繼續排程。

引數

Argument 描述
--timeout -t 伺服器逾時,以秒為單位執行作業。 此逾時會指定客戶端願意等候要求作業完成的時間持續時間。 此參數的預設值為 60 秒。 預設值:60。

全域引數

Argument 描述
--debug 增加記錄詳細資訊,以顯示所有偵錯記錄。
--help -h 顯示此說明訊息並結束。
--output -o 輸出格式。 允許的值:json、jsonc、table、tsv。 預設值:json。
--查詢 JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/。
--verbose 增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

下一步

  • 設定 Service Fabric CLI。
  • 瞭解如何使用範例腳本來使用 Service Fabric CLI。