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 來取得完整偵錯記錄。 |