OpenTelemetry.Instrumentation.ElasticsearchClient 1.12.0-beta.1
Elasticsearch Client Instrumentation for OpenTelemetry .NET
| Status | |
|---|---|
| Stability | Beta |
| Code Owners | @ejsmith |
NEST/Elasticsearch.Net
This is an Instrumentation Library, which instruments NEST/Elasticsearch.Net and collects traces about outgoing requests.
Note
This component is based on the OpenTelemetry semantic conventions for metrics and traces. These conventions are Experimental, and hence, this package is a pre-release. Until a stable version is released, there can be breaking changes.
Steps to enable OpenTelemetry.Instrumentation.ElasticsearchClient
Step 1: Install Package
Add a reference to the
OpenTelemetry.Instrumentation.ElasticsearchClient
package. Also, add any other instrumentations & exporters you will need.
dotnet add package --prerelease OpenTelemetry.Instrumentation.ElasticsearchClient
Step 2: Enable NEST/Elasticsearch.Net Instrumentation at application startup
NEST/Elasticsearch.Net instrumentation must be enabled at application startup.
The following example demonstrates adding NEST/Elasticsearch.Net
instrumentation to a console application. This example also sets up the
OpenTelemetry Console exporter, which requires adding the package
OpenTelemetry.Exporter.Console
to the application.
using OpenTelemetry;
using OpenTelemetry.Trace;
public class Program
{
public static void Main(string[] args)
{
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddElasticsearchClientInstrumentation()
.AddConsoleExporter()
.Build();
}
}
For an ASP.NET Core application, adding instrumentation is typically done in the
ConfigureServices of your Startup class. Refer to documentation for
OpenTelemetry.Instrumentation.AspNetCore.
For an ASP.NET application, adding instrumentation is typically done in the
Global.asax.cs. Refer to the documentation for
OpenTelemetry.Instrumentation.AspNet.
Advanced configuration
This instrumentation can be configured to change the default behavior by using
ElasticsearchClientInstrumentationOptions.
services.AddOpenTelemetry()
.WithTracing(builder => builder
.AddElasticsearchClientInstrumentation(options =>
{
// add request json as db.statement attribute tag
options.SetDbStatementForRequest = true;
})
.AddConsoleExporter());
When used with
OpenTelemetry.Extensions.Hosting,
all configurations to ElasticsearchClientInstrumentationOptions
can be done in the ConfigureServices method of you applications Startup
class as shown below.
// Configure
services.Configure<ElasticsearchClientInstrumentationOptions>(options =>
{
// add request json as db.statement attribute tag
options.SetDbStatementForRequest = true;
});
services.AddOpenTelemetry()
.WithTracing(builder => builder
.AddElasticsearchClientInstrumentation()
.AddConsoleExporter());
Elastic.Clients.Elasticsearch
Elastic.Clients.Elasticsearch,
that deprecates NEST/Elasticsearch.Net,
brings native support for OpenTelemetry. To instrument it you need
to configure the OpenTelemetry SDK to listen to the ActivitySource
used by the library by calling AddSource("Elastic.Clients.Elasticsearch.ElasticsearchClient")
(Elastic.Clients.Elasticsearch version < 8.10.0) or AddSource("Elastic.Transport")
(Elastic.Clients.Elasticsearch version >= 8.10.0)
on the TracerProviderBuilder.
References
Showing the top 20 packages that depend on OpenTelemetry.Instrumentation.ElasticsearchClient.
| Packages | Downloads |
|---|---|
|
Grafana.OpenTelemetry
Full Grafana distribution of OpenTelemetry .NET
|
13 |
|
Grafana.OpenTelemetry
Full Grafana distribution of OpenTelemetry .NET
|
2 |
|
Grafana.OpenTelemetry
Full Grafana distribution of OpenTelemetry .NET
|
1 |
.NET Framework 4.6.2
- OpenTelemetry (>= 1.12.0 && < 2.0.0)
- System.Text.Encodings.Web (>= 4.7.2)
- System.Text.Json (>= 4.7.2)
.NET Standard 2.0
- OpenTelemetry (>= 1.12.0 && < 2.0.0)
- System.Text.Encodings.Web (>= 4.7.2)
- System.Text.Json (>= 4.7.2)
| Version | Downloads | Last updated |
|---|---|---|
| 1.14.0-beta.1 | 1 | 12/14/2025 |
| 1.13.0-beta.1 | 0 | 10/23/2025 |
| 1.12.0-beta.1 | 11 | 10/24/2025 |
| 1.0.0-beta.5 | 1 | 10/24/2025 |
| 1.0.0-beta.4 | 0 | 03/07/2023 |
| 1.0.0-beta.3 | 0 | 03/17/2022 |