diff --git a/src/NATS.Net.OpenTelemetry/NATS.Net.OpenTelemetry.csproj b/src/NATS.Net.OpenTelemetry/NATS.Net.OpenTelemetry.csproj
index f5ae8bf9b..89f1cf38b 100644
--- a/src/NATS.Net.OpenTelemetry/NATS.Net.OpenTelemetry.csproj
+++ b/src/NATS.Net.OpenTelemetry/NATS.Net.OpenTelemetry.csproj
@@ -16,4 +16,12 @@
+
+
+
+
+
+
+
+
diff --git a/src/NATS.Net.OpenTelemetry/OpenTelemetryTracingExtensions.cs b/src/NATS.Net.OpenTelemetry/OpenTelemetryTracingExtensions.cs
new file mode 100644
index 000000000..3e64c7c0c
--- /dev/null
+++ b/src/NATS.Net.OpenTelemetry/OpenTelemetryTracingExtensions.cs
@@ -0,0 +1,23 @@
+using NATS.Client.Core;
+
+// ReSharper disable once CheckNamespace - Place in OTEL namespace for discoverability
+namespace OpenTelemetry.Trace;
+
+public static class OpenTelemetryTracingExtensions
+{
+ ///
+ /// Enables trace collection on activity sources from the NATS.Client nuget package.
+ ///
+ /// being configured.
+ /// Include traces from internal messaging used for control flow and lower level usage during high level abstractions (e.g. JetStream, KvStore, etc)
+ /// The same instance of to chain the calls.
+ public static TracerProviderBuilder AddNatsInstrumentation(this TracerProviderBuilder builder, bool includeInternal = false)
+ {
+ builder.AddSource("NATS.Client");
+
+ if (includeInternal)
+ builder.AddSource("NATS.Client.Internal");
+
+ return builder;
+ }
+}