From d19fc6e976d2358492a3691b26defc922cc438fd Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Sat, 8 Mar 2025 22:03:13 +0100 Subject: [PATCH] Enable optional OpenTelemetry tracing configuration. Added a feature flag (`useOtel`) to conditionally enable OpenTelemetry tracing. This allows developers to toggle tracing for debugging or testing without affecting the default behavior. --- src/apps/Elsa.Server.Web/Program.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/apps/Elsa.Server.Web/Program.cs b/src/apps/Elsa.Server.Web/Program.cs index 2e802dcc0..85815a143 100644 --- a/src/apps/Elsa.Server.Web/Program.cs +++ b/src/apps/Elsa.Server.Web/Program.cs @@ -96,6 +96,7 @@ const bool useTenantsFromConfiguration = true; const bool useSecrets = false; const bool disableVariableWrappers = false; const bool disableVariableCopying = false; +const bool useOtel = false; var builder = WebApplication.CreateBuilder(args); var services = builder.Services; @@ -120,13 +121,15 @@ var sqlDatabaseProvider = Enum.Parse(configuration["Databas TypeAliasRegistry.RegisterAlias("OrderReceivedProducerFactory", typeof(GenericProducerFactory)); TypeAliasRegistry.RegisterAlias("OrderReceivedConsumerFactory", typeof(GenericConsumerFactory)); +if (useOtel) +{ // Configure OpenTelemetry Tracing -using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource("Elsa.Workflows") // Match your ActivitySource name here - .SetSampler(new AlwaysOnSampler()) // Always record traces for testing - .AddConsoleExporter() // Export spans to the console (optional) - .Build(); - + using var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSource("Elsa.Workflows") // Match your ActivitySource name here + .SetSampler(new AlwaysOnSampler()) // Always record traces for testing + .AddConsoleExporter() // Export spans to the console (optional) + .Build(); +} // Add Elsa services. services