Поделиться через


sfctl chaos

Запуск и остановка службы хаотического тестирования, а также вывод отчета о ее работе.

Подгруппы

Подгруппа Description
schedule Получение и настройка расписания Chaos.

Команды

Команда Description
события Получает следующий сегмент событий службы Chaos на основе маркера продолжения или диапазона времени.
get Получение состояния службы Chaos.
start Запускает службу Chaos в кластере.
stop Останавливает службу Chaos, если она запущена в кластере, и помещает расписание Chaos в состояние остановки.

sfctl chaos events

Получает следующий сегмент событий службы Chaos на основе маркера продолжения или диапазона времени.

Для получения следующего сегмента событий службы Chaos можно указать маркер продолжения. Чтобы получить начало нового сегмента событий службы Chaos, можно указать в системе UTC время начала и окончания диапазона времени. В одном и том же вызове запрещено одновременно указывать маркер продолжения и диапазон времени. Когда в службе Chaos происходит более 100 событий, то события Chaos возвращаются несколькими сегментами. Каждый сегмент содержит не более 100 событий Chaos. Для получения следующего сегмента делается вызов этого API с помощью токена продолжения.

Аргументы

Аргумент Description
--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.

Глобальные аргументы

Аргумент Description
--debug Повышение уровня детализации журнала для включения всех журналов отладки.
--help -h Отображение этого справочного сообщения и выход.
--output -o Формат вывода. Допустимые значения: json, jsonc, table, tsv. Значение по умолчанию: json.
--query Строка запроса JMESPath. Дополнительные сведения и примеры см. в разделе http://jmespath.org/.
--verbose Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр --debug.

sfctl chaos get

Получение состояния службы Chaos.

Получить состояние службы Chaos, указывающее, работает Chaos или нет, параметры Chaos, используемые для запуска службы Chaos, и состояние расписания Chaos.

Аргументы

Аргумент Description
--timeout -t Время ожидания сервера для выполнения операции (в секундах). Время ожидания — это интервал, в течение которого клиент готов ждать выполнения запрошенной операции. Значение этого параметра по умолчанию — 60 секунд. Значение по умолчанию: 60.

Глобальные аргументы

Аргумент Description
--debug Повышение уровня детализации журнала для включения всех журналов отладки.
--help -h Отображение этого справочного сообщения и выход.
--output -o Формат вывода. Допустимые значения: json, jsonc, table, tsv. Значение по умолчанию: json.
--query Строка запроса JMESPath. Дополнительные сведения и примеры см. в разделе http://jmespath.org/.
--verbose Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр --debug.

sfctl chaos start

Запускает службу Chaos в кластере.

Если служба Chaos еще не запущена в кластере, sfctl chaos start запускает ее с переданными параметрами. Если во время вызова служба Chaos уже выполняется, вызов завершается ошибкой с кодом FABRIC_E_CHAOS_ALREADY_RUNNING. Дополнительные сведения см. в статье Вызов контролируемого хаоса в кластерах Service Fabric.

Аргументы

Аргумент Description
--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. В приложении X могут создаваться ошибки Chaos, даже если оно не входит в список ApplicationInclusionList, если в определенный момент это приложение будет выполняться в узле типа Y, включенного в список NodeTypeInclusionList. Если NodeTypeInclusionList и ApplicationInclusionList одновременно не указаны, создается исключение ArgumentException. Для узлов этого типа применяются все типы ошибок (перезапуск узла, перезапуск пакета кода, удаление реплики, перезапуск реплики, перемещение первичной и вторичной реплик). Если определенный тип узла (скажем, тип узла X) не включен в список NodeTypeInclusionList, в узле типа X никогда не создаются ошибки уровня узла (например, перезапуск узла), но могут создаваться ошибки уровня пакета кода или реплики, если в узле типа X в определенный момент будет выполняться приложение из списка ApplicationInclusionList. В этот список можно включить не более 100 имен типов узлов. Чтобы увеличить это число, измените параметр конфигурации MaxNumberOfNodeTypesInChaosEntityFilter. Все реплики, относящиеся к службам этих приложений, становятся доступными для ошибок реплики Chaos (перезапуск реплики, удаление реплики, перемещения первичной или вторичной реплики). Chaos может перезапустить пакет кода, только если в нем размещены реплики указанных приложений. Если приложение не включено в этот список, для него иногда могут создаваться ошибки Chaos, если в определенный момент это приложение будет выполняться в узле определенного типа, включенного в список NodeTypeInclusionList. Но если, например, приложение X привязано к типу узла Y посредством ограничений размещения и при этом приложение X отсутствует в списке ApplicationInclusionList и тип узла Y отсутствует в списке NodeTypeInclusionList, то для такого приложения X никогда не будут применяться ошибки. В этот список можно включить не более 1000 имен приложений. Чтобы увеличить это число, измените параметр конфигурации MaxNumberOfApplicationsInChaosEntityFilter.
--context Сопоставление пар "ключ — значение" типа (string, string) в формате JSON. Для записи сведений о запуске Chaos можно использовать карту. Максимальное число таких пар — 100. Каждая строка (ключ или значение) может содержать не более 4095 символов. Это сопоставление настраивает стартер запуска Chaos, чтобы при необходимости сохранять контекст конкретного выполнения.
--disable-move-replica-faults Отключает отображение сообщения об ошибке при перемещении первичной реплики и вторичной реплики.
--max-cluster-stabilization Максимальное время ожидания перехода всех сущностей кластера в устойчивое работоспособное состояние. Значение по умолчанию: 60.

Выполнение в Chaos проходит в режиме итераций. В начале каждой итерации выполняется проверка работоспособности сущностей кластера. Если сущность кластера не стабильна и не работоспособна в течение периода, заданного в MaxClusterStabilizationTimeoutInSeconds, Chaos генерирует событие сбоя проверки.
--max-concurrent-faults Максимальное количество одновременных ошибок, вызываемых при итерации. Выполнение в Chaos проходит в режиме итераций. Две последующие итерации отделены этапом проверки. Чем выше уровень параллелизма, тем более интенсивно происходит внедрение ошибок, включая ряд более сложных состояний для выявления ошибок. Рекомендуется начать со значения 2 или 3 и соблюдать осторожность при его увеличении. Значение по умолчанию: 1.
--max-percent-unhealthy-apps Максимально допустимый процент неработоспособных приложений, по достижении которого сообщается об ошибке. Измеряется во время оценки работоспособности кластера при выполнении службы Chaos.

Максимально допустимый процент неработоспособных приложений, по достижении которого отображается сообщение об ошибке. Например, чтобы разрешить 10 % неработоспособных приложений, это значение должно быть равно 10. Это значение указывает максимально допустимый процент неработоспособных приложений, превышение которого вызывает состояние "Error" при оценке кластера. Если процент учитывается, но имеется по крайней мере одно неработоспособное приложение, то состояние работоспособности оценивается как "Warning". Это значение вычисляется путем деления числа неработоспособных приложений на общее число экземпляров приложения в кластере, за исключением приложений, типы которых указаны в ApplicationTypeHealthPolicyMap. Расчет округляется: на небольшом количестве приложений допускается один сбой. Значение в процентах по умолчанию равняется нулю.
--max-percent-unhealthy-nodes Максимально допустимый процент неработоспособных узлов, по достижении которого сообщается об ошибке. Измеряется во время оценки работоспособности кластера при выполнении службы Chaos.

Максимально допустимый процент неработоспособных узлов, по достижении которого отображается сообщение об ошибке. Например, чтобы разрешить 10 % неработоспособных узлов, это значение должно быть равно 10. Это значение указывает максимально допустимый процент неработоспособных узлов, превышение которого вызывает состояние "Error" при оценке кластера. Если процент учитывается, но имеется по крайней мере один неработоспособный узел, то состояние работоспособности оценивается как "Warning". Это процентное значение вычисляется путем деления числа неработоспособных узлов за общее число узлов в кластере. Расчет округляется: на небольшом количестве узлов допускается один сбой. Значение в процентах по умолчанию равняется нулю. В крупных кластерах всегда есть отключенные узлы или узлы в состоянии восстановления. Следует учитывать это при настройке параметра.
--time-to-run Общее время выполнения службы Chaos (в секундах) до того, как она будет автоматически остановлена. Максимально допустимое значение: 4 294 967 295 (System.UInt32.MaxValue). Значение по умолчанию: 4 294 967 295.
--timeout -t Значение по умолчанию: 60.
--wait-time-between-faults Время ожидания (в секундах) между последовательными сбоями в пределах одной итерации. Значение по умолчанию: 20.

Чем больше значение, тем меньше перекрытие между сбоями и проще последовательность переходов состояний, которым подвергается кластер. Рекомендуется начать со значения 1–5 и соблюдать осторожность при его увеличении.
--wait-time-between-iterations Интервал времени (в секундах) между двумя последовательными итерациями службы Chaos. Чем больше значение этого параметра, тем ниже скорость внедрения ошибок. Значение по умолчанию: 30.
--warning-as-error Указывает, учитываются ли предупреждения с той же степенью серьезности, что и ошибки.

Глобальные аргументы

Аргумент Description
--debug Повышение уровня детализации журнала для включения всех журналов отладки.
--help -h Отображение этого справочного сообщения и выход.
--output -o Формат вывода. Допустимые значения: json, jsonc, table, tsv. Значение по умолчанию: json.
--query Строка запроса JMESPath. Дополнительные сведения и примеры см. в разделе http://jmespath.org/.
--verbose Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр --debug.

sfctl chaos stop

Останавливает службу Chaos, если она запущена в кластере, и помещает расписание Chaos в состояние остановки.

Останавливает службу Chaos от выполнения новых неполадок. Ошибки в активном состоянии будут продолжать выполняться, пока не завершатся. Текущее расписание Chaos переведено в состояние остановки. После остановки расписания оно останется в остановленном состоянии и не будет использоваться расписанием Chaos для новых запусков службы Chaos. Чтобы возобновить планирование, необходимо задать новое расписание Chaos.

Аргументы

Аргумент Description
--timeout -t Время ожидания сервера для выполнения операции (в секундах). Время ожидания — это интервал, в течение которого клиент готов ждать выполнения запрошенной операции. Значение этого параметра по умолчанию — 60 секунд. Значение по умолчанию: 60.

Глобальные аргументы

Аргумент Description
--debug Повышение уровня детализации журнала для включения всех журналов отладки.
--help -h Отображение этого справочного сообщения и выход.
--output -o Формат вывода. Допустимые значения: json, jsonc, table, tsv. Значение по умолчанию: json.
--query Строка запроса JMESPath. Дополнительные сведения и примеры см. в разделе http://jmespath.org/.
--verbose Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр --debug.

Следующие шаги