Cloudflare запустила функцию Issues для мониторинга ошибок внутри Cloudflare Workers; в настоящее время она доступна в открытой бета-версии. Функция объединяет повторяющиеся сбои в одну проблему, после чего позволяет отправить её сведения агенту программирования для продолжения расследования, предложения исправления и открытия запроса на слияние.
Cloudflare нацелена на практический пробел в цикле обработки сбоев продакшена: агенты способны запрашивать данные мониторинга, перемещаться по репозиторию исходного кода, писать тесты и изменять код, однако связывание этих шагов требовало вмешательства человека для сбора журналов и трассировок и проверки того, что несколько сбоев вызваны одной и той же неисправностью.
Что отслеживает Issues?
Функция работает внутри среды Workers и не требует установки SDK или добавления оболочки к приложению. После её включения она регистрирует необработанные исключения, неудачные вызовы и HTTP-ответы класса 5xx, вывод console.log() и console.error(), а также записи, содержащие стек вызовов. Кроме того, она отслеживает случаи повторяющегося срабатывания предупреждений и записи больших объёмов журналов внутри циклов.
Вместо отображения каждого неудачного запроса как отдельного случая Issues объединяет похожие ошибки и показывает время их первого появления, количество возникновений и то, увеличивается ли их частота. В проблеме отображаются сама проблема, стек вызовов при его наличии, предыдущие и последующие журналы и трассировки, версия Worker, сведения о запросе и динамика проблемы с течением времени.
Добавление контекста приложения к расследованию
Разработчики могут использовать встроенный в среду Workers интерфейс OpenTelemetry для добавления таких идентификаторов, как идентификаторы пользователя, аккаунта и сеанса. Эти данные отображаются для каждого occurrence, что помогает определить, сосредоточен ли сбой на конкретном аккаунте или сеансе, прежде чем отправлять его агенту.
От панели мониторинга к агенту программирования
Можно настроить Automation для запуска отправки, когда проблема превышает заданный порог количества появлений или возвращается после периода затишья. Cloudflare поддерживает подключение Claude Code через routine ID и token, Cursor через адрес webhook, а Devin — через API token и идентификатор организации, а также общие webhooks, системы чатов и управления инцидентами.
Отправляемый контекст включает сводку сбоя, исключение и стек вызовов после сопоставления с исходным кодом, журналы и трассировки, версию Worker и контекст приложения, добавленный разработчиком. Для более глубокого расследования агент можно отдельно подключить к Cloudflare MCP, чтобы запрашивать связанные журналы и трассировки, предлагать изменения в коде и тестах и открывать запрос на слияние.
Что меняется на практике?
Issues сокращает количество ручных шагов между обнаружением сбоя и его расследованием, но не делает исправление полностью автоматическим. Проверка запроса на слияние, развёртывание изменения и перевод проблемы в состояние решённой по-прежнему находятся под контролем команды. Кроме того, качество результатов зависит от контекста, добавленного приложением, а также от выбранных настроек выполнения и порогов.
Cloudflare протестировала функцию на Workflows — компоненте для длительно работающих многошаговых приложений, построенном на Workers. За один день автоматизация помогла обнаружить две проблемы: цикл повторной попытки во время миграции на уровне плоскости управления из-за ошибки SQLite, связанной с внешним ключом, и операцию удаления, которая не завершилась из-за превышения лимита подзапросов в Workers. Автоматизация отправила обе проблемы в Cloudflare OS, которая отследила ошибки в коде Workflows и предложила два исправления.
Чтобы начать использование, необходимо включить observability.issues.enabled в файле wrangler.jsonc, а затем настроить первую Automation из панели Cloudflare, выбрав назначение проблемы — агент, webhook, инструмент управления инцидентами или чат-платформу.