Доступні інструментування

Підтримувані бібліотеки автоматичного інструментування OpenTelemetry .NET.

Автоматичне інструментування OpenTelemetry .NET підтримує широкий спектр бібліотек.

Інструментування

Усі інструментування стандартно увімкнені для всіх типів сигналів (трейси, метрики та логи).

Ви можете вимкнути всі інструментування для певного типу сигналу, встановивши змінну середовища OTEL_DOTNET_AUTO_{SIGNAL}_INSTRUMENTATION_ENABLED в значення false.

Для більш детального підходу ви можете вимкнути конкретні інструментування для даного типу сигналу, встановивши змінну середовища OTEL_DOTNET_AUTO_{SIGNAL}_{0}_INSTRUMENTATION_ENABLED в значення false, де {SIGNAL} — це тип сигналу, наприклад TRACES, а {0} — це чутлива до регістру назва інструментування.

Змінна середовищаОписСтандартне значенняСтатус
OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDУвімкнення всіх інструментувань.trueЕкспериментальний
OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLEDУвімкнення всіх інструментувань для трейсів. Перевизначає OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED.Успадковано від поточного значення OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDЕкспериментальний
OTEL_DOTNET_AUTO_TRACES_{0}_INSTRUMENTATION_ENABLEDШаблон конфігурації для увімкнення конкретного інструментування трейсів, де {0} - це верхній регістр ID інструментування, яке ви хочете увімкнути. Перевизначає OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLED.Успадковано від поточного значення OTEL_DOTNET_AUTO_TRACES_INSTRUMENTATION_ENABLEDЕкспериментальний
OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLEDВимкнення всіх інструментувань для метрик. Перевизначає OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED.Успадковано від поточного значення OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDЕкспериментальний
OTEL_DOTNET_AUTO_METRICS_{0}_INSTRUMENTATION_ENABLEDШаблон конфігурації для увімкнення конкретного інструментування метрик, де {0} - це верхній регістр ID інструментування, яке ви хочете увімкнути. Перевизначає OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLED.Успадковано від поточного значення OTEL_DOTNET_AUTO_METRICS_INSTRUMENTATION_ENABLEDЕкспериментальний
OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLEDВимкнення всіх інструментувань для логів. Перевизначає OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLED.Успадковано від поточного значення OTEL_DOTNET_AUTO_INSTRUMENTATION_ENABLEDЕкспериментальний
OTEL_DOTNET_AUTO_LOGS_{0}_INSTRUMENTATION_ENABLEDШаблон конфігурації для увімкнення конкретного інструментування логів, де {0} - це верхній регістр ID інструментування, яке ви хочете увімкнути. Перевизначає OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLED.Успадковано від поточного значення OTEL_DOTNET_AUTO_LOGS_INSTRUMENTATION_ENABLEDЕкспериментальний

Інструментування трейсів

Статус: Змішаний. Трейси стабільні, але окремі бібліотеки інструментування мають експериментальний статус через відсутність стабільної семантичної домовленості.

IDІнструментована бібліотекаПідтримувані версіїТип інструментуванняСтатус
ADONETADO.NET [1][2]bytecodeЕкспериментальний
ASPNETASP.NET (.NET Framework) MVC / WebApi [3] Not supported on .NET* [4]source & bytecodeЕкспериментальний
ASPNETCOREASP.NET Core Не підтримується .NET Framework*sourceЕкспериментальний
AZUREAzure SDK[5]sourceЕкспериментальний
ELASTICSEARCHElastic.Clients.Elasticsearch* [6]sourceЕкспериментальний
ELASTICTRANSPORTElastic.Transport≥0.4.16sourceЕкспериментальний
ENTITYFRAMEWORKCOREMicrosoft.EntityFrameworkCore Не підтримується .NET Framework≥6.0.12sourceЕкспериментальний
GRAPHQLGraphQL Не підтримується .NET Framework≥7.5.0sourceЕкспериментальний
GRPCNETCLIENTGrpc.Net.Client≥2.52.0 & < 3.0.0sourceЕкспериментальний
HTTPCLIENTSystem.Net.Http.HttpClient and System.Net.HttpWebRequest*sourceЕкспериментальний
KAFKAConfluent.Kafka≥1.4.0 & < 3.0.0 [7]bytecodeЕкспериментальний
MASSTRANSITMassTransit Не підтримується .NET Framework≥8.0.0sourceЕкспериментальний
MONGODBMongoDB.Driver.Core / MongoDB.Driver≥2.7.0source or bytecode [8]Експериментальний
MYSQLCONNECTORMySqlConnector≥2.0.0sourceЕкспериментальний
MYSQLDATAMySql.Data Не підтримується .NET Framework≥8.1.0sourceЕкспериментальний
NPGSQLNpgsql≥6.0.0sourceЕкспериментальний
NSERVICEBUSNServiceBus≥8.0.0 & < 10.0.0source & bytecodeЕкспериментальний
ORACLEMDAOracle.ManagedDataAccess.Core and Oracle.ManagedDataAccess Не підтримується ARM64≥23.4.0sourceЕкспериментальний
RABBITMQRabbitMQ.Client≥5.0.0source or bytecode [9]Експериментальний
QUARTZQuartz Не підтримується .NET Framework 4.7.1 and older≥3.4.0sourceЕкспериментальний
SQLCLIENTMicrosoft.Data.SqlClient, System.Data.SqlClient [10] and System.Data (shipped with .NET Framework)* [11]sourceЕкспериментальний
SQLITEMicrosoft.Data.Sqlite≥8.0.0 & < 11.0.0bytecodeЕкспериментальний
STACKEXCHANGEREDISStackExchange.Redis≥2.6.122 & < 3.0.0source & bytecodeЕкспериментальний
WCFCLIENTWCF*source & bytecodeЕкспериментальний
WCFCORECoreWCF.Primitives Не підтримується .NET Framework≥1.8.0sourceЕкспериментальний
WCFSERVICEWCF Не підтримується .NET.*source & bytecodeЕкспериментальний

[1]: Загальне інструментування ADO.NET, що охоплює методи DbCommand. Воно охоплює лише реалізації перевизначених методів. Зазвичай багато реалізацій використовують ключове слово new у C#; такі випадки потребують конкретних реалізацій. Це інструментування не охоплює бібліотеки, що охоплюються конкретними інструментуваннями, такими як SQLCLIENT, NPGSQL, MYSQLDATA, MYSQLCONNECTOR, ORACLEMDA або SQLITE.

[2]: Підтримує System.Data.Common (версії від 4.0.0 до 11.0.0 включно), System.Data для .NET Framework (версії від 2.0.0 до 5.0.0 включно) та netstandard (версії від 2.0.0 до 3.0.0 включно).

[3]: Підтримується лише інтегрований режим конвеєра.

[4]: ASP.NET (.NET Framework) MVC / WebApi не підтримується на ARM64.

[5]: Пакети з префіксом Azure., випущені після 1 жовтня 2021 року.

[6]: Версія Elastic.Clients.Elasticsearch ≥8.0.0 і <8.10.0. Версія ≥8.10.0 підтримується інструментуванням Elastic.Transport.

[7]: Confluent.Kafka підтримується з версії ≥1.8.2 на ARM64 для Windows та Linux та ≥1.9.2 на macOS.

[8]: MongoDB.Driver потребує інструментування байт-коду лише для версій < 3.7.0; у версіях 3.7.0+ використовується лише інструментування вихідного коду.

[9]: RabbitMq.Client потребує інструментарію байт-коду лише для версій 5.* та 6.*, версії 7.0.0+ використовують лише інструментування вихідного коду.

[10]: System.Data.SqlClient є застарілим.

[11]: Microsoft.Data.SqlClientv3.\* не підтримується на .NET Framework через [проблему](https://github.com/open-telemetry/opentelemetry-dotnet/issues/4243).System.Data.SqlClient` підтримується починаючи з версії 4.8.5.

Інструментування метрик

Статус: Змішаний. Метрики стабільні, але окремі інструментування мають експериментальний статус через відсутність стабільної семантичної конвенції.

IDІнструментована бібліотекаДокументаціяПідтримувані версіїТип інструментуванняСтатус
ASPNETASP.NET Framework [1] Not supported on .NETASP.NET metrics*source & bytecodeExperimental
ASPNETCOREASP.NET Core Not supported on .NET FrameworkASP.NET Core metrics*sourceExperimental
HTTPCLIENTSystem.Net.Http.HttpClient and System.Net.HttpWebRequestHttpClient metrics*sourceExperimental
NETRUNTIMEOpenTelemetry.Instrumentation.RuntimeRuntime metrics*sourceExperimental
NPGSQLNpgsql Not supported on .NET FrameworkNpgsql metrics≥6.0.0sourceExperimental
NSERVICEBUSNServiceBusNServiceBus metrics≥8.0.0 & < 10.0.0source & bytecodeExperimental
PROCESSOpenTelemetry.Instrumentation.ProcessProcess metrics*sourceExperimental
SQLCLIENTMicrosoft.Data.SqlClient, System.Data.SqlClient [2] and System.Data (shipped with .NET Framework)SqlClient metrics* [3]sourceExperimental

[1]: Метрики ASP.NET генеруються лише якщо інструментування трейсів AspNet також увімкнено.

[2]: System.Data.SqlClient є застарілим.

[3]: Microsoft.Data.SqlClient v3.* не підтримується на .NET Framework через проблему. System.Data.SqlClient підтримується починаючи з версії 4.8.5.

Інструментування логів

Статус: Експериментальний.

IDІнструментована бібліотекаПідтримувані версіїТип інструментуванняСтатус
ILOGGERMicrosoft.Extensions.Logging Not supported on .NET Framework≥8.0.0bytecode or source [1]Experimental
LOG4NETlog4net [2]≥2.0.13 && < 4.0.0bytecodeExperimental
NLOGNLog [2]≥5.0.0 && < 7.0.0bytecodeExperimental

[1]: Для ASP.NET Core застосунків, інструментування LoggingBuilder може бути увімкнено без використання .NET CLR Profiler, встановивши змінну середовища ASPNETCORE_HOSTINGSTARTUPASSEMBLIES в значення OpenTelemetry.AutoInstrumentation.AspNetCoreBootstrapper.

[2]: Інструментування надає як контекст для інʼєкції трейсів та і місток для логів.

Опції інструментування

Змінна середовищаОписСтандартне значенняСтатус
OTEL_DOTNET_AUTO_ENTITYFRAMEWORKCORE_SET_DBSTATEMENT_FOR_TEXTЧи може інструментування Entity Framework Core передавати SQL-запити через атрибут db.statement. Запити можуть містити конфіденційну інформацію. Якщо встановлено значення false, db.statement записується лише для виконання збережених процедур.falseЕкспериментальний
OTEL_DOTNET_AUTO_GRAPHQL_SET_DOCUMENTЧи може інструментування GraphQL передавати сирі запити через атрибут graphql.document. Запити можуть містити конфіденційну інформацію.falseЕкспериментальний
OTEL_DOTNET_AUTO_ORACLEMDA_SET_DBSTATEMENT_FOR_TEXTЧи може інструментування Oracle Client передавати SQL-запити через атрибут db.statement. Запити можуть містити конфіденційну інформацію. Якщо встановлено значення false, db.statement записується лише для виконання збережених процедур.falseЕкспериментальний
OTEL_DOTNET_AUTO_SQLCLIENT_SET_DBSTATEMENT_FOR_TEXTЧи може інструментування SQL Client передавати SQL-запити через атрибут db.statement. Запити можуть містити конфіденційну інформацію. Якщо встановлено значення false, db.statement записується лише для виконання збережених процедур. Не підтримується на .NET Framework для System.Data.SqlClient.falseЕкспериментальний
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_REQUEST_HEADERSСписок імен HTTP-заголовків, розділених комами. Інструментування ASP.NET буде захоплювати значення HTTP-заголовків запитів для всіх налаштованих імен заголовків.Експериментальний
OTEL_DOTNET_AUTO_TRACES_ASPNET_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERSСписок імен HTTP-заголовків, розділених комами. Інструментування ASP.NET буде захоплювати значення HTTP-заголовків відповідей для всіх налаштованих імен заголовків. Не підтримується в класичному режимі IIS.Експериментальний
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_REQUEST_HEADERSСписок імен HTTP-заголовків, розділених комами. Інструментування ASP.NET Core буде захоплювати значення HTTP-заголовків запитів для всіх налаштованих імен заголовків.Експериментальний
OTEL_DOTNET_AUTO_TRACES_ASPNETCORE_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERSСписок імен HTTP-заголовків, розділених комами. Інструментування ASP.NET Core буде захоплювати значення HTTP-заголовків відповідей для всіх налаштованих імен заголовків.Експериментальний
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_REQUEST_METADATAСписок імен метаданих gRPC, розділених комами. Інструментування Grpc.Net.Client буде захоплювати значення метаданих gRPC-запитів для всіх налаштованих імен метаданих.Експериментальний
OTEL_DOTNET_AUTO_TRACES_GRPCNETCLIENT_INSTRUMENTATION_CAPTURE_RESPONSE_METADATAСписок імен метаданих gRPC, розділених комами. Інструментування Grpc.Net.Client буде захоплювати значення метаданих gRPC-відповідей для всіх налаштованих імен метаданих.Експериментальний
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_REQUEST_HEADERSСписок імен HTTP-заголовків, розділених комами. Інструментування HTTP Client буде захоплювати значення HTTP-заголовків запитів для всіх налаштованих імен заголовків.Експериментальний
OTEL_DOTNET_AUTO_TRACES_HTTP_INSTRUMENTATION_CAPTURE_RESPONSE_HEADERSСписок імен HTTP-заголовків, розділених комами. Інструментування HTTP Client буде захоплювати значення HTTP-заголовків відповідей для всіх налаштованих імен заголовків.Експериментальний
OTEL_DOTNET_EXPERIMENTAL_ASPNETCORE_DISABLE_URL_QUERY_REDACTIONЧи вимикає інструментування ASP.NET Core редагування значення атрибуту url.query.falseЕкспериментальний
OTEL_DOTNET_EXPERIMENTAL_HTTPCLIENT_DISABLE_URL_QUERY_REDACTIONЧи вимикає інструментування HTTP Client редагування значення атрибуту url.full.falseЕкспериментальний
OTEL_DOTNET_EXPERIMENTAL_ASPNET_DISABLE_URL_QUERY_REDACTIONЧи вимикає інструментування ASP.NET редагування значення атрибуту url.query.falseЕкспериментальний
OTEL_DOTNET_AUTO_SQLCLIENT_NETFX_ILREWRITE_ENABLED[1]falseЕкспериментальний

[1]: Увімкнення перекомпіляції IL для SqlCommand у .NET Framework, щоб забезпечити наявність CommandText для інструментування SqlClient, що є необхідним для заповнення полів db.query.text та db.query.summary. Раніше CommandText був доступний лише для збережених процедур. Якщо це налаштування ввімкнено, воно також доступне для необроблених запитів. Це змінює поведінку подій, що генеруються SqlEventSource, що може вплинути на інші частини програми, якщо використовується цей механізм.


Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (cf1a5745)