This is an Instrumentation Library, which instruments NEST/Elasticsearch.Net and collects traces about outgoing requests.
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 PackageAdd 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.
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
.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4