Type to search.

Supported technologies

Serverless Observability

Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud.

Availability

  • Generally available

    This functionality is generally available and ready for production usage.

Stack

The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.

Availability

  • Generally available

    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.

APM Agent .NET

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

    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.

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:

  1. Find the framework or library you use.
  2. Check that your package or runtime version falls within the supported range.
  3. Check the installation method you plan to use: Profiler, NuGet, or OpenTelemetry Bridge.
  4. 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.

Warning

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.

Note

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.

Note

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.

Note

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 client
Grpc.Net.Client
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.
≥2.23.2
<3.0.0
✓ ¹ ✓ ✓ (≥2.57.0)

¹ Using a startup hook on .NET.

Note

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 CosmosDB
Microsoft.Azure.Cosmos
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.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.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.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.DocumentDB
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.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
✗ ✓ ✗
Elasticsearch
Elastic.Clients.Elasticsearch
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.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.Net
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.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)
NEST
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.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 Core
Microsoft.EntityFrameworkCore
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
✓ ¹ ✓ ✗
Entity Framework 6
EntityFramework
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.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
✗ ✓ ✗
MongoDB
MongoDB.Driver
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.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)
MySQL
MySql.Data
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.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
✓ ✗ ✗
Oracle
Oracle.ManagedDataAccess
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.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
✓ ✗ ✗
Oracle
Oracle.ManagedDataAccess.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.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
✓ ✗ ✗
PostgreSQL
Npgsql
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.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
✓ ✗ ✗
Redis
StackExchange.Redis
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.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 SQL
System.Data.SqlClient
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.
≥4.0.0
<5.0.0
✓ ✓ ✗
MS SQL
Microsoft.Data.SqlClient
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.
≥1.0.0
<6.0.0
✓ ✓ ✗
SQLite
Microsoft.Data.Sqlite
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.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
✓ ✗ ✗
SQLite
System.Data.SQLite
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.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.

Note

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 Bus
Azure.Messaging.ServiceBus
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.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.ServiceBus
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.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
✗ ✓ ✗
Kafka
Confluent.Kafka
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.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 ¹
RabbitMQ
RabbitMQ.Client
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.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.

Note

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 worker
Microsoft.Azure.Functions.Worker
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.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-process
Microsoft.Azure.Functions.Extensions
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.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
✗ ✓ ✗
Note

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 Storage
Azure.Storage.Blobs
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.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 Storage
Azure.Storage.Queues
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.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 Storage
Azure.Storage.Files.Shares
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.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
✓ ✓ ✓
Note

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
HttpClient
System.Net.Http.HttpClient
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.
built-in (.NET) ✓ ✓ ✗
HttpWebRequest
System.Net.HttpWebRequest
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.
built-in (.NET) ✓ ✓ ✗