Доступні інструментування
Автоматичне інструментування 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 | Інструментована бібліотека | Підтримувані версії | Тип інструментування | Статус |
|---|---|---|---|---|
ASPNET | ASP.NET (.NET Framework) MVC / WebApi [1] Не підтримується .NET | * [2] | source & bytecode | Experimental |
ASPNETCORE | ASP.NET Core Не підтримується .NET Framework | * | source | Experimental |
AZURE | Azure SDK | [3] | source | Experimental |
ELASTICSEARCH | Elastic.Clients.Elasticsearch | * [4] | source | Experimental |
ELASTICTRANSPORT | Elastic.Transport | ≥0.4.16 | source | Experimental |
ENTITYFRAMEWORKCORE | Microsoft.EntityFrameworkCore Не підтримується .NET Framework | ≥6.0.12 | source | Experimental |
GRAPHQL | GraphQL Не підтримується .NET Framework | ≥7.5.0 | source | Experimental |
GRPCNETCLIENT | Grpc.Net.Client | ≥2.52.0 & < 3.0.0 | source | Experimental |
HTTPCLIENT | System.Net.Http.HttpClient and System.Net.HttpWebRequest | * | source | Experimental |
KAFKA | Confluent.Kafka | ≥1.4.0 & < 3.0.0 [5] | bytecode | Experimental |
MASSTRANSIT | MassTransit Не підтримується .NET Framework | ≥8.0.0 | source | Experimental |
MONGODB | MongoDB.Driver.Core / MongoDB.Driver | ≥2.7.0 < 4.0.0 | bytecode | Experimental |
MYSQLCONNECTOR | MySqlConnector | ≥2.0.0 | source | Experimental |
MYSQLDATA | MySql.Data Не підтримується .NET Framework | ≥8.1.0 | source | Experimental |
NPGSQL | Npgsql | ≥6.0.0 | source | Experimental |
NSERVICEBUS | NServiceBus | ≥8.0.0 & < 10.0.0 | source & bytecode | Experimental |
ORACLEMDA | Oracle.ManagedDataAccess.Core and Oracle.ManagedDataAccess Не підтримується ARM64 | ≥23.4.0 | source | Experimental |
RABBITMQ | RabbitMQ.Client | ≥5.0.0 | source or bytecode [6] | Experimental |
QUARTZ | Quartz Не підтримується .NET Framework 4.7.1 and older | ≥3.4.0 | source | Experimental |
SQLCLIENT | Microsoft.Data.SqlClient, System.Data.SqlClient [7] and System.Data (shipped with .NET Framework) | * [8] | source | Experimental |
STACKEXCHANGEREDIS | StackExchange.Redis | ≥2.6.122 & < 3.0.0 | source & bytecode | Experimental |
WCFCLIENT | WCF | * | source & bytecode | Experimental |
WCFCORE | CoreWCF.Primitives Не підтримується .NET Framework | ≥1.8.0 | source | Experimental |
WCFSERVICE | WCF Не підтримується .NET. | * | source & bytecode | Experimental |
[1]: Підтримується лише інтегрований режим конвеєра.
[2]: ASP.NET (.NET Framework) MVC / WebApi не підтримується на ARM64.
[3]: Пакети з префіксом Azure., випущені після 1 жовтня 2021 року.
[4]: Версія Elastic.Clients.Elasticsearch ≥8.0.0 і <8.10.0. Версія ≥8.10.0 підтримується інструментуванням Elastic.Transport.
[5]: Confluent.Kafka підтримується з версії ≥1.8.2 на ARM64 для Windows та Linux та ≥1.9.2 на macOS.
[6]: RabbitMq.Client потребує інструментарію байт-коду лише для версій 5.* та 6.*, версії 7.0.0+ використовують лише інструментування вихідного коду.
[7]: System.Data.SqlClient є застарілим.
[8]: Microsoft.Data.SqlClientv3.\* не підтримується на .NET Framework через [проблему](https://github.com/open-telemetry/opentelemetry-dotnet/issues/4243).System.Data.SqlClient` підтримується починаючи з версії 4.8.5.
Інструментування метрик
Статус: Змішаний. Метрики стабільні, але окремі інструментування мають експериментальний статус через відсутність стабільної семантичної конвенції.
| ID | Інструментована бібліотека | Документація | Підтримувані версії | Тип інструментування | Статус |
|---|---|---|---|---|---|
ASPNET | ASP.NET Framework [1] Not supported on .NET | ASP.NET metrics | * | source & bytecode | Experimental |
ASPNETCORE | ASP.NET Core Not supported on .NET Framework | ASP.NET Core metrics | * | source | Experimental |
HTTPCLIENT | System.Net.Http.HttpClient and System.Net.HttpWebRequest | HttpClient metrics | * | source | Experimental |
NETRUNTIME | OpenTelemetry.Instrumentation.Runtime | Runtime metrics | * | source | Experimental |
NPGSQL | Npgsql Not supported on .NET Framework | Npgsql metrics | ≥6.0.0 | source | Experimental |
NSERVICEBUS | NServiceBus | NServiceBus metrics | ≥8.0.0 & < 10.0.0 | source & bytecode | Experimental |
PROCESS | OpenTelemetry.Instrumentation.Process | Process metrics | * | source | Experimental |
SQLCLIENT | Microsoft.Data.SqlClient, System.Data.SqlClient [2] and System.Data (shipped with .NET Framework) | SqlClient metrics | * [3] | source | Experimental |
[1]: Метрики ASP.NET генеруються лише якщо інструментування трейсів AspNet також увімкнено.
[2]: System.Data.SqlClient є застарілим.
[3]: Microsoft.Data.SqlClient v3.* не підтримується на .NET Framework через проблему. System.Data.SqlClient підтримується починаючи з версії 4.8.5.
Інструментування логів
Статус: Експериментальний.
| ID | Інструментована бібліотека | Підтримувані версії | Тип інструментування | Статус |
|---|---|---|---|---|
ILOGGER | Microsoft.Extensions.Logging Not supported on .NET Framework | ≥8.0.0 | bytecode or source [1] | Experimental |
LOG4NET | log4net [2] | ≥2.0.13 && < 4.0.0 | bytecode | Experimental |
NLOG | NLog [2] | ≥5.0.0 && < 7.0.0 | bytecode | Experimental |
[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 | Експериментальний |
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!