У меня странная ситуация, когда мне нужно протестировать OpenTelemetry на старом, скоро выведенном из эксплуатации Web API, написанном на .NET 4.6.2. Хуже того, это DLL-приложение, а не exe. Запустив его из Visual Studio 2019, я не вижу никаких следов в окне вывода в Visual Studio после того, как я нажму на конечную точку приложения (хотя я получаю результат в Postman).
Итак, я не уверен, что все правильно настроил, хотя и следовал официальной документации. Пока я думаю, что я не тестирую его должным образом, но я не уверен, как запустить это приложение в консоли, аналогично тому, как приложения .NET Core запускаются с помощью команды dotnet run.
У кого-нибудь есть идея, как это проверить?
Я знаю, что это довольно общий вопрос, но мне интересно, был ли у кого-то подобный опыт работы с OpenTelemetry и .NET 4.6.2.
Любое предложение более чем приветствуется.
Привет @omajid, Установленные пакеты: OpenTelemetry, OpenTelemetry.Api, OpenTelemetry.Exporter.Console, OpenTelemetry.Exporter.OpenTelemetryProtocol, OpenTelemetry.Extensions.DependencyInjection, OpenTelemetry.Extensions.Hosting, OpenTelemetry.Instrumentation.AspNet, OpenTelemetry.Instrumentation.AspNet.TelemetryHttpModule Поработав взад и вперед с более сложным кодом, я попытался получить какой-либо результат с помощью _tracerProvider = Sdk.CreateTracerProviderBuilder().AddConsoleExporter().Build();
В дополнение к предыдущему комментарию: это было добавлено в WebApiApplication.Application_Start(), где определяется запуск приложения. Кроме того, приложение правильно компилируется, строится, и Postman возвращает результаты с указанной строкой кода.





Я надеюсь, что эта информация найдет кого-то, кто работает над программным обеспечением, которое скоро будет выведено из эксплуатации, которое необходимо отслеживать с помощью OpenTelemetry.
Что я должен был сделать, так это:
_tracerProvider = Sdk.CreateTracerProviderBuilder().AddAspNetInstrumentation().AddConsoleExporter(options =>
{
options.Targets = OpenTelemetry.Exporter.ConsoleExporterOutputTargets.Debug;
}).Build();
Необходимо было добавить AddAspInstrumentation(). И упомянуть, что провайдер трассировки объявлен в начале класса.
Эта часть:
options.Targets = OpenTelemetry.Exporter.ConsoleExporterOutputTargets.Debug;
Включает регистрацию информации в окне вывода (отладки). И это было моей самой большой проблемой, но прохождение определений классов с моими коллегами одно за другим показало, что возможности все еще есть, и что люди из OpenTelemetry имели это в виду.
Можете ли вы рассказать нам, что вы сделали? Какие пакеты OpenTelemetry вы использовали? Как вы пытались его включить? Можете ли вы создать крошечный веб-API .NET 4.6.2 в стиле Hello World с OpenTelemetry и показать нам точный код и точное поведение?