Открытая телеметрия AWS Lambda, отсутствует родительский диапазонC#

Место общения программистов C#
Ответить
Anonymous
 Открытая телеметрия AWS Lambda, отсутствует родительский диапазон

Сообщение Anonymous »

Я пытаюсь использовать OpenTelemetry с функцией AWS Lambda, используя C#. Я добавил AWS Otel Collector в качестве слоя, отправляя данные в 3-й сервис, я использую Signoz, пока пытаюсь, он работает нормально, за исключением одного. В моих диапазонах всегда отсутствует родительский диапазон.
Приложение создает диапазон с указанным мной именем службы, а затем другие диапазоны. Однако у первого диапазона также есть родительский элемент, который на самом деле является лямбда-службой, и по какой-то причине он не отправляется в другие службы, поэтому у вас всегда отсутствует диапазон. Проблема на самом деле определена в контенте Honeycomb, но она не предназначена для C#.
Как здесь и здесь

AWS имеет встроенную интеграцию XRay с Lambda. Это означает, что при вызове вашей функции в нее передается рентгеновская информация из службы Lambda. Это означает, что когда мы работаем с OTEL, у него уже будет родительский диапазон (лямбда-сервис). Проблема в том, что span не перейдет в Honeycomb, и Honeycomb подумает, что пробел отсутствует. Чтобы решить эту проблему, мы просто говорим, что наш первый диапазон является корневым.

Когда я отключаю трассировку XRay в конфигурации Lambda, она перестает публиковать диапазоны службы Lambda. в Xray, но у моего диапазона все еще есть ParentId. Изменение переменных среды после просмотра документации Honeycomb также не помогло.
Я определил OpenTelemetry в своем коде следующим образом: мой первый диапазон использует имя «lambda.otel.service». " и имеет родительский элемент из AWS Lambda Service.

Код: Выделить всё

readonly TracerProvider? _tracerProvider;
public Function()
{
_tracerProvider = Sdk.CreateTracerProviderBuilder()
.ConfigureResource(resource =>
{
resource
.AddService("lambda.otel.service")
.AddAttributes(new[]
{
new KeyValuePair("service.version",
Assembly.GetExecutingAssembly().GetName().Version!.ToString())
});
})
.AddAWSLambdaConfigurations()
.AddAspNetCoreInstrumentation()
.AddGrpcClientInstrumentation()
.AddHttpClientInstrumentation()
.AddSource(DiagnoticsConfig.SourceName)
.AddOtlpExporter()
.AddConsoleExporter()
.Build();
}
Изображение
Изображение


Подробнее здесь: https://stackoverflow.com/questions/789 ... arent-span
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»