Cloudflare Workers расширил управление трассировкой запросов

Cloudflare Workers расширил управление трассировкой запросов
Содержание статьи

26 октября Cloudflare добавила в пользовательские span в Workers три метода: spanContext(), setStatus() и updateName(). Они помогают связать конкретный запрос с трассировкой, явно отметить ошибку и уточнить название операции. На Mentoring.digital рассматриваем, как это упрощает разбор проблем в серверном коде.

Идентификатор соединяет запрос и трассу

Span описывает отдельную операцию внутри трассировки. Метод spanContext() возвращает traceId, spanId и traceFlags. Идентификаторы совпадают с теми, которые используются в Workers Observability и экспортируемых трассах.

Это позволяет записать traceId в диагностическое сообщение или вернуть его клиенту. Тогда при разборе конкретной ошибки можно искать соответствующую трассу по идентификатору, не полагаясь только на близкое время запросов. Сам идентификатор не объясняет причину сбоя: нужно просмотреть операции и события внутри найденной трассы.

Статус ошибки и имя операции задаются отдельно

Метод setStatus() устанавливает unset, ok или error; для ошибки можно добавить сообщение. Статус передаётся при экспорте в системы OpenTelemetry, но собственная панель Workers Observability пока его не показывает. Поэтому отсутствие видимого статуса в панели не следует считать доказательством, что приложение его не установило.

Метод updateName() меняет имя уже начавшегося span. Например, после определения маршрута можно использовать его шаблон вместо первоначального общего названия. Поддерживается и переименование корневого span вызова, полученного через tracing.getActiveSpan().

Как проверить обновлённую диагностику

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

Полезно заранее договориться, какие операции команда выделяет в отдельные span и какие сведения записывает в диагностические сообщения. Это делает трассы сопоставимыми между запросами. Подключение наблюдаемости и разбор серверных ошибок можно пройти с ментором по инфраструктуре и DevOps.

Похожие статьи по данной теме