Как проявляется
При запуске плагина diagnostics-otel появляется ошибка: «_resources.Resource is not a constructor», и плагин не загружается.
Из-за чего возникает
Ошибка вызвана изменениями в OpenTelemetry SDK v2.x, где конструктор Resource заменён на функцию resourceFromAttributes(), а также изменились другие API: SemanticResourceAttributes → ATTR_SERVICE_NAME, addLogRecordProcessor() → конструктор с processors.
Как исправить
- Обновите плагин diagnostics-otel, применив исправления из PR #4255.
- В коде замените вызов конструктора Resource на resourceFromAttributes().
- Используйте ATTR_SERVICE_NAME вместо SemanticResourceAttributes.SERVICE_NAME.
- Вместо вызова addLogRecordProcessor() передавайте processors в конструктор LoggerProvider.
После этих изменений плагин загрузится без ошибок:
[plugins] diagnostics-otel: logs exporter enabled (OTLP/HTTP)
Далее настройте корректно OTEL Collector и проверьте его доступность по указанному endpoint.
Как не столкнуться снова
Следите за совместимостью плагинов с версиями OpenTelemetry SDK и обновляйте плагины при выходе новых версий SDK.
Источник
Разбор основан на обсуждении в репозитории проекта: issue #3201.
Другие типичные проблемы — в разделе ошибок и решений, а базовая настройка разобрана в первом запуске.