Використання пакунків NuGet OpenTelemetry.AutoInstrumentation
Використовуйте пакунки NuGet у наступних випадках:
- Спрощення розгортання. Наприклад, контейнер, що запускає один застосунок.
- Підтримка інструментування
самостійних
застосунків. - Полегшення експериментів розробників з автоматичним інструментуванням через пакунки NuGet.
- Вирішення конфліктів версій між залежностями, які використовуються застосунком, та автоматичним інструментуванням.
Обмеження
Хоча пакунки NuGet є зручним способом розгортання автоматичного інструментування, вони не можуть бути використані у всіх випадках. Найпоширеніші причини не використовувати пакунки NuGet включають наступні:
- Ви не можете додати пакунок до проєкту застосунку. Наприклад, застосунок є стороннім і не може додати пакунок.
- Зменшення використання дискового простору або розміру віртуальної машини, коли кілька застосунків, які потрібно інструментувати, встановлені на одній машині. У цьому випадку ви можете використовувати одне розгортання для всіх .NET застосунків, що працюють на машині.
- Старий застосунок, який не можна мігрувати до проєкту у стилі SDK.
Використання пакунків NuGet
Щоб автоматично інструментувати ваш застосунок за допомогою OpenTelemetry .NET, додайте пакунок OpenTelemetry.AutoInstrumentation
до вашого проєкту:
dotnet add [<PROJECT>] package OpenTelemetry.AutoInstrumentation
Якщо застосунок посилається на пакунки, які можуть бути інструментовані, але потребують інших пакунків для роботи інструментування, збірка завершиться з помилкою і запропонує вам або додати відсутню бібліотеку інструментування, або пропустити інструментування відповідного пакунку:
~packages/opentelemetry.autoinstrumentation.buildtasks/1.6.0/build/OpenTelemetry.AutoInstrumentation.BuildTasks.targets(29,5): error : OpenTelemetry.AutoInstrumentation: додайте посилання на пакунок інструментування 'MongoDB.Driver.Core.Extensions.DiagnosticSources' версії 1.4.0 або додайте 'MongoDB.Driver.Core' до властивості 'SkippedInstrumentations', щоб придушити цю помилку.
Щоб розвʼязати помилку, додайте рекомендовану бібліотеку інструментування або пропустіть інструментування зазначеного пакунка, додавши його до властивості SkippedInstrumentation
, приклад:
<PropertyGroup>
<SkippedInstrumentations>MongoDB.Driver.Core;StackExchange.Redis</SkippedInstrumentations>
</PropertyGroup>
Ту саму властивість можна також вказати безпосередньо через CLI, зверніть увагу, що роздільник, ;
, потрібно правильно екранувати як ‘%3B’:
dotnet build -p:SkippedInstrumentations=StackExchange.Redis%3BMongoDB.Driver.Core
Щоб розповсюдити відповідні нативні компоненти середовища виконання з вашим .NET
застосунком, вкажіть Ідентифікатор середовища виконання (RID) для збірки застосунку за допомогою dotnet build
або dotnet publish
. Це може вимагати вибору між розповсюдженням самостійного або залежного від середовища застосунку. Обидва типи сумісні з автоматичним інструментуванням.
Використовуйте скрипт у вихідній теці збірки, щоб запустити застосунок з активованим автоматичним інструментуванням.
- У Windows використовуйте
instrument.cmd <application_executable>
- У Linux або Unix використовуйте
instrument.sh <application_executable>
Якщо ви запускаєте застосунок за допомогою CLI dotnet
, додайте dotnet
після скрипту.
- У Windows використовуйте
instrument.cmd dotnet <application>
- У Linux та Unix використовуйте
instrument.sh dotnet <application>
Скрипт передає застосунку всі параметри командного рядка, які ви надаєте.
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!