Supported technologies
Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud. Availability This functionality is generally available and ready for production usage. The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats. Availability This functionality is generally available and ready for production usage. Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. The Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.
Serverless Observability
Generally available
Stack
Generally available
APM Agent .NET
Generally available
This page details the technologies the APM .NET Agent supports, the package or runtime versions we test, and which installation methods work for each one. Versions beyond the listed upper bound have not been tested and are not supported, but might work.
Use this page as a compatibility matrix:
- Find the framework or library you use.
- Check that your package or runtime version falls within the supported range.
- Check the installation method you plan to use: Profiler, NuGet, or OpenTelemetry Bridge.
- Read any footnotes or notes directly below that table for important limitations or setup requirements.
If you are already using OpenTelemetry, consider the EDOT .NET SDK for traces, metrics, and logs. It covers many of the same technologies (and more) and integrates naturally with Elastic's observability platform.
The APM .NET Agent for .NET libraries and components target .NET Standard 2.0 or .NET Standard 2.1.
We support .NET runtimes ≤10.0.x and .NET Framework runtimes from 4.6.2 to 4.8.1 for as long as they receive active support from Microsoft per the .NET support policy and .NET Framework support policy. When Microsoft ends support for a runtime version, so does Elastic. Issues reported against unsupported runtimes will only be acted on if they also affect a supported runtime.
Native AOT is not supported. The agent relies on reflection, runtime IL emit, and embedded libraries that are incompatible with AOT compilation. Attempting to use the agent in a Native AOT-published application will fail at runtime.
On .NET Framework, we strongly recommend at least .NET Framework 4.7.2 because of binding issues introduced by Microsoft.
Each table below shows which installation methods apply to each technology. A checkmark (✓) means the technology is supported with that installation method for the listed version range; a cross (✗) means it is not supported using that method. Where a cell shows a version qualifier such as (≥3.7.0), only that narrower range is covered by that method.
The OpenTelemetry Bridge column requires .NET 8+ and APM Server ≥7.16. A checkmark there means the technology is covered through the built-in OpenTelemetry Bridge, whether the agent was installed using the Profiler or a NuGet package.
On .NET Framework, technologies that depend on the startup hook or the OpenTelemetry Bridge need the NuGet install method instead. If no Elastic APM .NET Agent NuGet package exists for that technology, such as Elastic.Clients.Elasticsearch, it is not supported on .NET Framework.
| Column | Meaning |
|---|---|
| Profiler | Instrumented automatically by the Elastic APM .NET Profiler with no code changes. On .NET, a startup hook loads DiagnosticSource subscribers and the built-in OpenTelemetry Bridge. On .NET Framework, the profiler uses IL rewriting instead. |
| NuGet | Install the linked integration NuGet package alongside the core Elastic.Apm package and add the setup call to application startup. |
| OpenTelemetry Bridge | The library emits native OpenTelemetry spans that the agent captures through its built-in OpenTelemetry Bridge. |
For supported web frameworks, the agent creates one transaction per incoming request and names it after the registered route.
| Framework | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
| ASP.NET Core The Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.0 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥8.0.0 ≤10.0.x |
✓ ¹ | ✓ | ✗ |
| ASP.NET (.NET Framework) in IIS The Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.1 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
4.6.2–4.8.1 (IIS 10) | ✓ | ✓ | ✗ |
¹ Using a startup hook on .NET.
We support ASP.NET on IIS 10 versions supported by Microsoft per their IIS support policy. IIS must be installed on a supported Windows operating system version.
The profiler does not support the Web Garden (multi-worker process) mode of IIS.
For supported gRPC frameworks, the agent automatically captures both client-side and server-side calls.
Streaming is not supported - the agent does not create transactions or spans for streaming calls automatically.
| Framework | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
| gRPC server (ASP.NET Core) The Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.7 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥8.0.0 ≤10.0.x |
✓ ¹ | ✓ | ✗ |
gRPC clientGrpc.Net.ClientThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.7 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.23.2 <3.0.0 |
✓ ¹ | ✓ | ✓ (≥2.57.0) |
¹ Using a startup hook on .NET.
Grpc.Net.Client ≥2.57.0 emits native OpenTelemetry spans. When using the profiler without the NuGet package, the OpenTelemetry Bridge captures them automatically. When the NuGet package is installed, the dedicated subscriber takes precedence to prevent duplicate spans.
| Data access technology | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
Azure CosmosDBMicrosoft.Azure.CosmosThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.11 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥3.0.0 <4.0.0 |
✗ | ✓ | ✗ |
Azure DocumentDB.Core (legacy)Microsoft.Azure.DocumentDB.CoreThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.11 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.4.1 <3.0.0 |
✗ | ✓ | ✗ |
Azure DocumentDB (legacy)Microsoft.Azure.DocumentDBThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.11 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.4.1 <3.0.0 |
✗ | ✓ | ✗ |
ElasticsearchElastic.Clients.ElasticsearchThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.23 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥8.0.0 <10.0.0 |
✓ | ✗ | ✓ |
Elasticsearch (legacy)Elasticsearch.NetThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.6 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥7.6.0 <8.0.0 |
✓ ¹ | ✓ | ✗ |
Elasticsearch (legacy)NESTThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.6 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥7.6.0 <8.0.0 |
✓ ¹ | ✓ | ✗ |
Entity Framework CoreMicrosoft.EntityFrameworkCoreThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.0 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥8.0.0 ≤10.0.x |
✓ ¹ | ✓ | ✗ |
Entity Framework 6EntityFrameworkThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.2 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥6.2 ≤6.5.2 |
✗ | ✓ | ✗ |
MongoDBMongoDB.DriverThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.9 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥3.7.0 <4.0.0 |
✓ (≥3.7.0) ³ | ✓ (≥3.9.0) | ✓ (≥3.7.0) |
MySQLMySql.DataThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥6.7.0 <9.0.0 |
✓ | ✗ | ✗ |
OracleOracle.ManagedDataAccessThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥12.2.1100 <22.0.0 |
✓ | ✗ | ✗ |
OracleOracle.ManagedDataAccess.CoreThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.0.0 <4.0.0 |
✓ | ✗ | ✗ |
PostgreSQLNpgsqlThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥4.0.0 <8.0.0 |
✓ | ✗ | ✗ |
RedisStackExchange.RedisThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.8 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.0.495 <3.0.0 |
✗ | ✓ ² | ✗ |
MS SQLSystem.Data.SqlClientThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.0 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥4.0.0 <5.0.0 |
✓ | ✓ | ✗ |
MS SQLMicrosoft.Data.SqlClientThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.0 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥1.0.0 <6.0.0 |
✓ | ✓ | ✗ |
SQLiteMicrosoft.Data.SqliteThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.0.0 <9.0.0 |
✓ | ✗ | ✗ |
SQLiteSystem.Data.SQLiteThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥1.0.0 <3.0.0 |
✓ | ✗ | ✗ |
¹ Using a startup hook on .NET.
² Requires calling connection.UseElasticApm() on each IConnectionMultiplexer instance - see the setup page.
³ Requires the OpenTelemetry Bridge to be active. MongoDB.Driver ≥3.7.0 emits native OpenTelemetry spans; the profiler captures them through the bridge rather than a dedicated subscriber.
Microsoft.Azure.DocumentDB.Core and Microsoft.Azure.DocumentDB are deprecated. The recommended replacement is the Microsoft.Azure.Cosmos package.
Elastic.Clients.Elasticsearch emits native OpenTelemetry spans. The legacy (deprecated) Elasticsearch.Net and NEST clients use a DiagnosticSource-based subscriber instead.
MongoDB.Driver ≥3.7.0 emits native OpenTelemetry spans. When running without the NuGet package (profiler-only install), these are captured automatically by the OpenTelemetry Bridge.
| Messaging system | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
Azure Service BusAzure.Messaging.ServiceBusThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.10 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥7.0.0 <8.0.0 |
✓ | ✓ | ✓ |
Azure Service Bus (legacy)Microsoft.Azure.ServiceBusThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.10 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥3.0.0 <6.0.0 |
✗ | ✓ | ✗ |
KafkaConfluent.KafkaThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥1.4.0 <3.0.0 |
✓ | ✗ | ✓ using an adapter ¹ |
RabbitMQRabbitMQ.ClientThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.12 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥3.6.9 <7.0.0 |
✓ | ✗ | ✗ |
¹ Requires adding Confluent.Kafka.Extensions.Diagnostics which wraps producers and consumers so they emit spans for the OpenTelemetry Bridge to capture. Code changes are required - see the setup page.
Azure.Messaging.ServiceBus emits native OpenTelemetry spans. When using the profiler without the NuGet package, the OpenTelemetry Bridge captures them automatically. When the NuGet package is installed, the dedicated subscriber takes precedence to prevent duplicate spans.
The legacy Microsoft.Azure.ServiceBus package does not emit native OpenTelemetry spans and requires the NuGet package.
For supported Azure Functions hosting models, the agent creates one transaction per invocation.
| Hosting model | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
Azure Functions isolated workerMicrosoft.Azure.Functions.WorkerThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.19 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥2.0.0 <3.0.0 |
✗ | ✓ | ✗ |
Azure Functions in-processMicrosoft.Azure.Functions.ExtensionsThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.24 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥1.1.0 <2.0.0 |
✗ | ✓ | ✗ |
Only HTTP-triggered invocations are traced. To avoid unintentionally increasing Azure Functions costs on Consumption plans, system metrics are not collected.
The isolated worker model requires .NET 8+. The in-process model is deprecated by Microsoft - new apps should use the isolated worker model.
| Storage service | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
Azure Blob StorageAzure.Storage.BlobsThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.10 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥12.8.0 <13.0.0 |
✓ | ✓ | ✓ |
Azure Queue StorageAzure.Storage.QueuesThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.10 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥12.6.0 <13.0.0 |
✓ | ✓ | ✓ |
Azure File Share StorageAzure.Storage.Files.SharesThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.10 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
≥12.6.0 <13.0.0 |
✓ | ✓ | ✓ |
Azure Storage SDKs emit native OpenTelemetry spans. When using the profiler without the NuGet package, the OpenTelemetry Bridge captures them automatically. When the NuGet package is installed, the dedicated subscriber takes precedence to prevent duplicate spans.
For supported networking client-side technologies, the agent creates an HTTP span for each outgoing request and propagates tracing headers automatically.
| Framework | Supported versions | Profiler | NuGet | OpenTelemetry Bridge |
|---|---|---|---|---|
HttpClientSystem.Net.Http.HttpClientThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.0 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
built-in (.NET) | ✓ | ✓ | ✗ |
HttpWebRequestSystem.Net.HttpWebRequestThe Elastic APM .NET agent enables you to trace the execution of operations in your .NET applications, sending performance metrics and errors to the Elastic APM server. Availability Generally available since 1.1 This functionality is generally available and ready for production usage. This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes. |
built-in (.NET) | ✓ | ✓ | ✗ |