From dcdbcef6ffe487d0862698bef5c73cbd9eb5aaa4 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 13 Jul 2023 16:18:52 +0200 Subject: [PATCH 01/14] added dotnet otel --- .../product/performance/getting-started.mdx | 1 + .../feature-stage-beta-opentelemetry.mdx | 1 + .../opentelemetry-install/dotnet.mdx | 24 +++++ .../opentelemetry-setup/dotnet.mdx | 87 +++++++++++++++++++ .../instrumentation/opentelemetry.mdx | 2 +- 5 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 src/platform-includes/performance/opentelemetry-install/dotnet.mdx create mode 100644 src/platform-includes/performance/opentelemetry-setup/dotnet.mdx diff --git a/src/docs/product/performance/getting-started.mdx b/src/docs/product/performance/getting-started.mdx index b0b54a1e18f55..b0cd5d0f95dcc 100644 --- a/src/docs/product/performance/getting-started.mdx +++ b/src/docs/product/performance/getting-started.mdx @@ -14,6 +14,7 @@ If you don't already have performance monitoring enabled, use the links for supp - - [ASP.NET Core](/platforms/dotnet/guides/aspnetcore/performance) + - [OpenTelemetry](/platforms/go/performance/instrumentation/opentelemetry/) - diff --git a/src/includes/feature-stage-beta-opentelemetry.mdx b/src/includes/feature-stage-beta-opentelemetry.mdx index 2e6bbf9ad5f33..4832df76a538d 100644 --- a/src/includes/feature-stage-beta-opentelemetry.mdx +++ b/src/includes/feature-stage-beta-opentelemetry.mdx @@ -9,6 +9,7 @@ Currently, OpenTelemetry is supported on the following SDKs: - [Python](/platforms/python/performance/instrumentation/opentelemetry/) - [Ruby](/platforms/ruby/performance/instrumentation/opentelemetry/) - [Java](/platforms/java/performance/instrumentation/opentelemetry/) +- [.NET](/platforms/dotnet/performance/instrumentation/opentelemetry/) - [Go](/platforms/go/performance/instrumentation/opentelemetry/) diff --git a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx new file mode 100644 index 0000000000000..e50e1415cbfb2 --- /dev/null +++ b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx @@ -0,0 +1,24 @@ + + +The `Sentry.OpenTelemetry` package requires the `OpenTelemetry` package `1.5.0` or higher. + + + +Add the `Sentry` and `Sentry.OpenTelemetry` **NuGet** packages to your project: + +```shell {tabTitle:.NET Core CLI} +dotnet add package Sentry -v {{@inject packages.version('sentry.dotnet') }} +dotnet add package Sentry.OpenTelemetry -v {{@inject packages.version('sentry.dotnet') }} +``` + +```powershell {tabTitle:Package Manager} +Install-Package Sentry -Version {{@inject packages.version('sentry.dotnet') }} +Install-Package Sentry.OpenTelemetry -Version {{@inject packages.version('sentry.dotnet') }} +``` + +```shell {tabTitle:Paket CLI} +paket add Sentry --version {{@inject packages.version('sentry.dotnet') }} +paket add Sentry.OpenTelemetry --version {{@inject packages.version('sentry.dotnet') }} +``` + +If you're building an ASP.NET or ASP.NET Core application you'll want to add their respective packages as well, i.e. `Sentry.AspNet` or `Sentry.AspNetCore`. diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx new file mode 100644 index 0000000000000..3470e99a1ea55 --- /dev/null +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -0,0 +1,87 @@ +### Console applications + +To start tracing in a console application, you need to create a tracer provider. Add Sentry to the tracer provider to allow OpenTelemetry spans to be captured by Sentry. + +```csharp +using var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSource(serviceName) + .ConfigureResource(resource => + resource.AddService( + serviceName: serviceName, + serviceVersion: serviceVersion)) + .AddSentry() // <-- Configure OpenTelemetry to send traces to Sentry + .Build(); +``` + +Next, initialize Sentry and opt into the use of OpenTelemetry. This allows the SDK to sent OpenTelemetry spans to be sent to Sentry. + +```csharp +SentrySdk.Init(options => +{ + // options.Dsn = "... Your DSN ..."; + options.TracesSampleRate = 1.0; + options.UseOpenTelemetry(); // <-- Configure Sentry to use OpenTelemetry trace information +}); +``` + +### ASP.NET Core applications + +To start tracing in an ASP.NET Core app, add OpenTelemetry with tracing and add Sentry to the tracer provider. + +```csharp +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddOpenTelemetry() + .WithTracing(tracerProviderBuilder => + tracerProviderBuilder + .AddSource(Telemetry.ActivitySource.Name) + .ConfigureResource(resource => resource.AddService(Telemetry.ServiceName)) + .AddAspNetCoreInstrumentation() + .AddHttpClientInstrumentation() + .AddSentry() // <-- Configure OpenTelemetry to send trace information to Sentry + ); +``` + +Next, initialize Sentry and opt into the use of OpenTelemetry. This allows the SDK to sent OpenTelemetry spans to be sent to Sentry. + +```csharp +builder.WebHost.UseSentry(options => +{ + options.Dsn = "...Your DSN..."; + options.TracesSampleRate = 1.0; + options.UseOpenTelemetry(); // <-- Configure Sentry to use OpenTelemetry trace information +}); +``` + +### ASP.NET applications + +To start tracing in an ASP.NET application, you need to create a tracer provider. + +```csharp +var builder = Sdk.CreateTracerProviderBuilder() + .AddAspNetInstrumentation() + .AddSource(Telemetry.ServiceName) + .SetResourceBuilder( + ResourceBuilder.CreateDefault() + .AddService(serviceName: Telemetry.ServiceName, serviceVersion: "1.0.0") + ); + +``` + +Next, initialize Sentry and opt into the use of OpenTelemetry. You'll need to provide the SDK with the builder for OpenTelemetry's tracer provider to allow sending spans to Sentry. + +```csharp +_sentry = SentrySdk.Init(o => +{ + //o.Dsn = "...Your DSN..."; + o.TracesSampleRate = 1.0; + o.AddAspNet(RequestSize.Always); + o.UseOpenTelemetry(builder); +}); +``` + +Lastly, build the tracer provider. + +```csharp +tracerProvider = builder.Build(); +``` diff --git a/src/platforms/common/performance/instrumentation/opentelemetry.mdx b/src/platforms/common/performance/instrumentation/opentelemetry.mdx index bc2e12dd1fd35..794e2927f50d1 100644 --- a/src/platforms/common/performance/instrumentation/opentelemetry.mdx +++ b/src/platforms/common/performance/instrumentation/opentelemetry.mdx @@ -8,6 +8,7 @@ supported: - ruby - go - java + - dotnet notSupported: - javascript - dart @@ -15,7 +16,6 @@ notSupported: - react-native - android - apple - - dotnet - javascript.cordova - javascript.electron - unity From e284df3c8f85f87e3672f7c33e13d1eed616294a Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 13 Jul 2023 16:23:01 +0200 Subject: [PATCH 02/14] copypasta error --- src/docs/product/performance/getting-started.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/docs/product/performance/getting-started.mdx b/src/docs/product/performance/getting-started.mdx index b0cd5d0f95dcc..34d6db73b40d6 100644 --- a/src/docs/product/performance/getting-started.mdx +++ b/src/docs/product/performance/getting-started.mdx @@ -14,7 +14,7 @@ If you don't already have performance monitoring enabled, use the links for supp - - [ASP.NET Core](/platforms/dotnet/guides/aspnetcore/performance) - - [OpenTelemetry](/platforms/go/performance/instrumentation/opentelemetry/) + - [OpenTelemetry](/platforms/dotnet/performance/instrumentation/opentelemetry/) - From a60327f4bcc42a0ccb5351163c49e30a968ea7b2 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 13 Jul 2023 16:24:00 +0200 Subject: [PATCH 03/14] consistence underscore --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index 3470e99a1ea55..d07bb14a8539f 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -83,5 +83,5 @@ _sentry = SentrySdk.Init(o => Lastly, build the tracer provider. ```csharp -tracerProvider = builder.Build(); +_tracerProvider = builder.Build(); ``` From 4b74caba4e5e14397a079701f75de32d8b6259bc Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:26:42 +0200 Subject: [PATCH 04/14] Update src/platform-includes/performance/opentelemetry-install/dotnet.mdx Co-authored-by: vivianyentran <20403606+vivianyentran@users.noreply.github.com> --- .../performance/opentelemetry-install/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx index e50e1415cbfb2..bb8dc633127d4 100644 --- a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx @@ -21,4 +21,4 @@ paket add Sentry --version {{@inject packages.version('sentry.dotnet') }} paket add Sentry.OpenTelemetry --version {{@inject packages.version('sentry.dotnet') }} ``` -If you're building an ASP.NET or ASP.NET Core application you'll want to add their respective packages as well, i.e. `Sentry.AspNet` or `Sentry.AspNetCore`. +If you're building an ASP.NET or ASP.NET Core application, add their respective packages (`Sentry.AspNet` or `Sentry.AspNetCore`) as well. From 4da9590a2c275a69823b5191433e18575785d32b Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:26:59 +0200 Subject: [PATCH 05/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: vivianyentran <20403606+vivianyentran@users.noreply.github.com> --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index d07bb14a8539f..58def145ec393 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -13,7 +13,7 @@ using var tracerProvider = Sdk.CreateTracerProviderBuilder() .Build(); ``` -Next, initialize Sentry and opt into the use of OpenTelemetry. This allows the SDK to sent OpenTelemetry spans to be sent to Sentry. +Next, initialize Sentry and opt into the use of OpenTelemetry. This allows the SDK to send OpenTelemetry spans to Sentry. ```csharp SentrySdk.Init(options => From b3d1de060dee786afcb5faa705ba3c72455f8bb3 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:27:06 +0200 Subject: [PATCH 06/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: vivianyentran <20403606+vivianyentran@users.noreply.github.com> --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index 58def145ec393..ce6eb9977f4ac 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -68,7 +68,7 @@ var builder = Sdk.CreateTracerProviderBuilder() ``` -Next, initialize Sentry and opt into the use of OpenTelemetry. You'll need to provide the SDK with the builder for OpenTelemetry's tracer provider to allow sending spans to Sentry. +Next, initialize Sentry and opt into the use of OpenTelemetry. Provide the SDK with the builder for OpenTelemetry's tracer provider to allow sending spans to Sentry. ```csharp _sentry = SentrySdk.Init(o => From 014258cd5750a7b33ef9dc8f69d7ec50124f55ba Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:27:22 +0200 Subject: [PATCH 07/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: vivianyentran <20403606+vivianyentran@users.noreply.github.com> --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index ce6eb9977f4ac..db6838f15c176 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -42,7 +42,7 @@ builder.Services.AddOpenTelemetry() ); ``` -Next, initialize Sentry and opt into the use of OpenTelemetry. This allows the SDK to sent OpenTelemetry spans to be sent to Sentry. +Next, initialize Sentry and opt into the use of OpenTelemetry. This allows the SDK to send OpenTelemetry spans to Sentry. ```csharp builder.WebHost.UseSentry(options => From ef8402acd670a7ca6bd212246d7a24091496c7a4 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:27:35 +0200 Subject: [PATCH 08/14] Update src/platform-includes/performance/opentelemetry-install/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-install/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx index bb8dc633127d4..c5dc55ed505bc 100644 --- a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx @@ -1,6 +1,6 @@ -The `Sentry.OpenTelemetry` package requires the `OpenTelemetry` package `1.5.0` or higher. +The `Sentry.OpenTelemetry` package requires `OpenTelemetry` package `1.5.0` or higher. From 2de5a46680ac8bc014afda72629d8e8d4d002021 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:27:52 +0200 Subject: [PATCH 09/14] Update src/platform-includes/performance/opentelemetry-install/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-install/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx index c5dc55ed505bc..3a7242c764dbf 100644 --- a/src/platform-includes/performance/opentelemetry-install/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-install/dotnet.mdx @@ -4,7 +4,7 @@ The `Sentry.OpenTelemetry` package requires `OpenTelemetry` package `1.5.0` or h -Add the `Sentry` and `Sentry.OpenTelemetry` **NuGet** packages to your project: +To install, add the `Sentry` and `Sentry.OpenTelemetry` **NuGet** packages to your project: ```shell {tabTitle:.NET Core CLI} dotnet add package Sentry -v {{@inject packages.version('sentry.dotnet') }} From 2b29894dc06107c2a7c5c026efd5f60e75c68603 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:28:09 +0200 Subject: [PATCH 10/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-setup/dotnet.mdx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index db6838f15c176..3931f3d194171 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -1,4 +1,6 @@ -### Console applications +To learn how to start tracing based on your application kind, read the instructions below. + +### Console Applications To start tracing in a console application, you need to create a tracer provider. Add Sentry to the tracer provider to allow OpenTelemetry spans to be captured by Sentry. From 3f18877052bd1ab2a3d51492e04d126ddf2baa4c Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:28:24 +0200 Subject: [PATCH 11/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index 3931f3d194171..8ac7add4a4d03 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -2,7 +2,7 @@ To learn how to start tracing based on your application kind, read the instructi ### Console Applications -To start tracing in a console application, you need to create a tracer provider. Add Sentry to the tracer provider to allow OpenTelemetry spans to be captured by Sentry. +To start tracing in a console application, you'll need to add Sentry to the tracer provider. This will make it possible for OpenTelemetry spans to be captured by Sentry. ```csharp using var tracerProvider = Sdk.CreateTracerProviderBuilder() From c90f22c20bde987169244b0d5c9ec553f697e6c2 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:28:31 +0200 Subject: [PATCH 12/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index 8ac7add4a4d03..fa72d1ac9fd57 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -26,7 +26,7 @@ SentrySdk.Init(options => }); ``` -### ASP.NET Core applications +### ASP.NET Core Applications To start tracing in an ASP.NET Core app, add OpenTelemetry with tracing and add Sentry to the tracer provider. From 36234fd4fd036212f0375cf1b8c482cb9fd6ee49 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:28:40 +0200 Subject: [PATCH 13/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index fa72d1ac9fd57..59f67351d0181 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -55,7 +55,7 @@ builder.WebHost.UseSentry(options => }); ``` -### ASP.NET applications +### ASP.NET Applications To start tracing in an ASP.NET application, you need to create a tracer provider. From 2bc50fd6e58dcbf07579d49a908e5b2a579e12d2 Mon Sep 17 00:00:00 2001 From: Stefan Jandl Date: Fri, 14 Jul 2023 11:28:47 +0200 Subject: [PATCH 14/14] Update src/platform-includes/performance/opentelemetry-setup/dotnet.mdx Co-authored-by: Liza Mock --- .../performance/opentelemetry-setup/dotnet.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx index 59f67351d0181..27f9f735d5b0a 100644 --- a/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx +++ b/src/platform-includes/performance/opentelemetry-setup/dotnet.mdx @@ -57,7 +57,7 @@ builder.WebHost.UseSentry(options => ### ASP.NET Applications -To start tracing in an ASP.NET application, you need to create a tracer provider. +To start tracing in an ASP.NET application, you'll need to create a tracer provider. ```csharp var builder = Sdk.CreateTracerProviderBuilder()