Устранение неполадок с перехватчиками служб

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Используйте эту статью для общего руководства по устранению неполадок и ответов на часто задаваемые вопросы (часто задаваемые вопросы).

Просмотр проблем с действиями и отладкой

На странице "Перехватчики служб" в администраторе веб-доступа отображаются последние действия (последние 14 дней) для каждой подписки, а также включена ли подписка, отключена или ограничена.

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

  1. Чтобы просмотреть действия и состояние подписок, перейдите на страницу "Перехватчики служб".

    Снимок экрана: представление действий и состояния подписок.

  2. Чтобы просмотреть подробные действия для подписки, включая полный запрос, ответ и полезные данные о событиях, выберите подписку в таблице и выберите журнал.

    Снимок экрана: подробное представление действий для подписки.

Сбои подписки и пробация (ограниченные)

Типы сбоев

Сбои уведомления перехватчиков службы группируются в следующие категории:

  • Сбои терминала
  • Временные сбои
  • Устойчивые сбои

Сбои терминала

Единственным сбоем терминала является код состояния HTTP 410 (Ушел). Когда подписка видит сбой терминала, он автоматически отключается независимо от его предыдущего состояния.

Временные сбои

Когда подписка видит временный сбой, он пытается повторно отправить уведомление до восьми раз с увеличением задержки между каждой попыткой. Временные сбои включают следующие коды:

  • 408 (время ожидания запроса)
  • 502 (недопустимый шлюз)
  • 503 (служба недоступна)
  • 504 (время ожидания шлюза)

Последовательность повторных попыток для временных сбоев

Повторить # Время ожидания
Перед повторным повтором 1 подождите ~1 секунду
Перед повторным повтором 2 подождите ~2 секунды (общая задержка в 3 секунды)
Перед повтором 3 подождите ~4 секунды (общая задержка 7 секунд)
Перед повторным повтором 4 подождите ~8 секунд (общая задержка в 15 секунд)
Перед повтором 5 подождите ~16 секунд (общая задержка в 31 секундах)
Перед повторным повтором 6 подождите ~32 секунды (общая задержка в 63 секундах)
Перед повторным повтором 7 подождите ~60 секунд (максимальное время отката, общая задержка в 123 секундах)
Перед повторным повтором 8 подождите ~60 секунд (максимальное время отката, общая задержка в 183 секундах)

Если уведомление исчерпает все его повторные попытки и продолжает видеть временный сбой для каждой попытки, подписка перестает отправлять уведомление и обрабатывает уведомление, как если бы он увидел несоотступный сбой.

Устойчивые сбои

Устойчивые сбои включают все другие коды сбоев HTTP, например 404 (не найдено), 500 (внутренняя ошибка сервера) и т. д.

Когда подписка видит несокрушимую ошибку, она помещается на испытательный срок.

Probation

В то время как при пробации подписка ограничена количеством уведомлений, которые он может отправлять. Если подписка продолжает работать с непреходящими сбоями, она становится все более ограниченной и в конечном итоге отключена. Если подписка получает успешный ответ во время пробации, он восстанавливается до полного состояния.

Последовательность семи максимальных повторных попыток при выполнении подписки

Когда подписка находится в пробации, все новые события теряются. После успешного выполнения повторных попыток подписка включена, а события публикуются снова.

Повторить # Время ожидания
Перед повторным повтором 1 подождите ~20 минут
Перед повторным повтором 2 подождите ~40 минут (общее время пробации в 1 час)
Перед повтором 3 подождите ~1 час 20 минут (общее время пробации в 2,33 часа)
Перед повторным повтором 4 подождите ~2 часа 40 минут (общее время пробации в 5 часов)
Перед повтором 5 подождите ~5 часов 20 минут (общее время пробации в 10,33 часа)
Перед повторным повтором 6 подождите ~10 часов 40 минут (общее время пробации 21 часов)
Перед повторным повтором 7 подождите ~15 часов (максимальное время ожидания, общее время пробации в 36 часов)

После семи повторных попыток состояние подписки получает значение DisabledBySystem , если уведомление потребителя завершается ошибкой.

Вопросы и ответы

Вопрос. Что такое ограничение полезных данных для служебного перехватчика?

Ответ. Ограничение полезных данных составляет 2 МБ. Больший объем полезных данных приводит к снижению производительности и надежности. Рекомендуется, чтобы обработчики служб ограничивал полезные данные значением в 2 МБ.

Вопрос. Что означает состояние Включено (ограниченное) ?

Ответ. Подписка становится ограниченной, если возникает слишком много сбоев. Включено (ограниченное) то же самое, что и при пробации.

Вопрос. Что означает состояние "Отключено" (из-за сбоев) ?

Ответ. Подписка автоматически отключается после ряда последовательных сбоев в течение длительного периода или сбоя терминала . Временные типы сбоев извлекаются несколько раз, прежде чем объявлять сбой. Типы устойчивых сбоев не извлекаются. Ниже приведены примеры каждого типа сбоя.

  • Временный: 408 (время ожидания запроса), 502 (недопустимый шлюз), 503 (служба недоступна), 504 (время ожидания шлюза)
  • Терминал: 410 (Ушел)
  • Прочные: все сбои, которые не являются временными или конечными

Вопрос. Что означает состояние "Отключено" (слева от пользователя) ?

Ответ. Пользователь, создавший подписку, больше не является членом команды.

Вопрос. Что делать, если перехватчик службы не работает?

Ответ. Проверьте следующие элементы:

  • Убедитесь, что подписка включена

  • Убедитесь, что параметры подписки верны (фильтры событий и действия)

  • Посмотрите на историю, особенно если возникают сбои

Вопрос. Можно ли предоставить обычному пользователю проекта возможность просматривать подписки на перехватчик служб и управлять ими?

Ответ. По умолчанию только администраторы проектов имеют эти разрешения. Предоставить такие разрешения другим пользователям напрямую можно с помощью программы командной строки или REST API безопасности.

Вопрос. Можно ли программно создавать подписки?

Ответ. Да, используйте REST API.