Golang: как добавить в трейс OpenTelemetry данные об ошибке
В OpenTelemetry можно добавлять данные об ошибках в трейс с помощью событий и атрибутов Span
. Это помогает фиксировать ошибки и предоставлять подробную информацию для анализа.
Добавление информации об ошибке в Span
- Добавить событие об ошибке: Вы можете использовать метод
AddEvent
с предопределённым названием"exception"
и набором атрибутов для описания ошибки. - Установить статус Span как
Error
: Если ошибка критична, вы можете установить статусError
для всего Span.
Пример добавления ошибки в Span
Объяснение кода
- Добавление события об ошибке (
AddEvent
):- Метод
AddEvent
используется для записи событий в Span. - Рекомендуется использовать атрибуты, такие как:
exception.type
: Тип ошибки.exception.message
: Сообщение об ошибке.exception.stacktrace
: (опционально) Стек-трейс, если доступен.
- Метод
- Установка статуса ошибки (
SetStatus
):- Устанавливаем статус Span как
codes.Error
, чтобы указать на ошибку. - Это особенно полезно для автоматического анализа трейсинга.
- Устанавливаем статус Span как
- Детали ошибки в атрибутах:
- Атрибуты дают более структурированную информацию об ошибке.
- Можно добавить любой ключ-значение, полезное для диагностики.
Рекомендации
- Используйте стандартные ключи: OpenTelemetry рекомендует использовать ключи в формате:
exception.type
: Тип или категория ошибки.exception.message
: Сообщение об ошибке.exception.stacktrace
: (если доступен) Стек вызовов.
- Устанавливайте статус ошибки: Это помогает чётко сигнализировать, что операция завершилась неудачно, и упрощает фильтрацию при анализе трассировок.
- Логируйте события об ошибках: Для незначительных ошибок используйте
AddEvent
без изменения статусаSpan
.
Вывод
Добавление данных об ошибках в трейс OpenTelemetry позволяет улучшить видимость и диагностику системы. Используйте:
SetStatus
для критичных ошибок.AddEvent
с атрибутами для детализированной информации об ошибке.
Recommended Posts
Golang map и Swiss Table
16.03.2025