The libraries below should be fully supported and the conventions are inspired by the OpenTelemetry Trace Semantic Conventions.
ID | Library |
---|---|
Aerospike | Aerospike.Client |
AspNet | ASP.NET 4.x |
AspNetCore | ASP.NET Core |
AspNetMvc | ASP.NET MVC |
AspNetWebApi2 | ASP.NET Web API 2 |
CurlHandler | System.Net.Http.CurlHandler |
ElasticsearchNet | Elasticsearch.Net |
GraphQL | GraphQL |
HttpMessageHandler | System.Net.Http.MessageHandler |
HttpSocketsHandler | System.Net.Http.SocketsHandler |
ILogger | Microsoft.Extensions.Logging.Abstractions |
Kafka | Confluent.Kafka |
MongoDb | MongoDB.Driver.Core |
MySql | MySql.Data |
Npgsql | Npgsql |
Oracle | Oracle.ManagedDataAccess |
RabbitMQ | RabbitMQ.Client |
ServiceStackRedis | ServiceStack.Redis |
SqlClient | Microsoft.Data.SqlClient and System.Data.SqlClient |
Sqlite | SQLite |
StackExchangeRedis | StackExchange.Redis |
Wcf | Windows Communication Foundation (WCF) |
WebRequest | System.Net.WebRequest |
WinHttpHandler | System.Net.Http.WinHttpHandler |
System.Net.Http.HttpClient
is instrumented by instrumenting:
System.Net.Http.CurlHandler
System.Net.Http.MessageHandler
System.Net.Http.SocketsHandler
System.Net.Http.WinHttpHandler
The libraries below are instrumented, though the instrumentation might not produce appropriate spans.
ID | Library |
---|---|
AwsSdk | AWSSDK.Core |
AwsSqs | AWSSDK.SQS |
AzureFunctions | Microsoft.Azure.WebJobs |
CosmosDb | Microsoft.Azure.Cosmos |
Couchbase | CouchbaseNetClient |
Grpc | gRPC |
Msmq | System.Messaging |
MsTestV2 | Microsoft.VisualStudio.TestPlatform |
NUnit | NUnit |
ServiceRemoting | Microsoft.ServiceFabric.Services.Remoting |
XUnit | xunit |
You can find out which methods and assemblies are being instrumented by inspecting the InstrumentationDefinitions file. This is useful to check, for example, the version range of the library you are instrumenting.
Each line contains following information (in order):
- Assembly name
- Type name
- Method name
- Method signature (arguments and return) types
- Minimum assembly version - major number
- Minimum assembly version - minor number
- Minimum assembly version - patch number
- Maximum assembly version - major number
- Maximum assembly version - minor number
- Maximum assembly version - patch number
For example:
new("AerospikeClient", "Aerospike.Client.SyncCommand", "ExecuteCommand", new[] { "System.Void" }, 4, 0, 0, 4, 65535, 65535, assemblyFullName, "Datadog.Trace.ClrProfiler.AutoInstrumentation.Aerospike.SyncCommandIntegration"),
means that the following code is instrumented:
- assembly:
AerospikeClient
, versions: [4.0.0
,5.0.0
) - type:
Aerospike.Client.SyncCommand
- method:
void ExecuteCommand()