diff --git a/tracer/src/Datadog.Trace/Agent/TracesEncodingExtensions.cs b/tracer/src/Datadog.Trace/Agent/TracesEncodingExtensions.cs
new file mode 100644
index 000000000000..8191c9bb5b4e
--- /dev/null
+++ b/tracer/src/Datadog.Trace/Agent/TracesEncodingExtensions.cs
@@ -0,0 +1,22 @@
+//
+// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License.
+// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc.
+//
+
+#nullable enable
+
+namespace Datadog.Trace.Agent;
+
+internal static class TracesEncodingExtensions
+{
+ ///
+ /// Returns true when traces are exported using any OTLP encoding.
+ ///
+ ///
+ /// Defined as "not a Datadog-native encoding" so future OTLP encodings (e.g. gRPC) are covered
+ /// automatically; if a new Datadog-native encoding is added, exclude it here. The unsupported-OTLP-protocol
+ /// fallback resolves to , so this correctly returns false for it.
+ ///
+ public static bool IsOtlp(this TracesEncoding encoding)
+ => encoding is not TracesEncoding.DatadogV0_4;
+}
diff --git a/tracer/src/Datadog.Trace/TracerManager.cs b/tracer/src/Datadog.Trace/TracerManager.cs
index 5b1f57f728de..71356fc3d522 100644
--- a/tracer/src/Datadog.Trace/TracerManager.cs
+++ b/tracer/src/Datadog.Trace/TracerManager.cs
@@ -555,6 +555,15 @@ void WriteDictionary(IReadOnlyDictionary dictionary)
writer.WritePropertyName("activity_listener_enabled");
writer.WriteValue(instanceSettings.IsActivityListenerEnabled);
+ writer.WritePropertyName("otlp_traces_export_enabled");
+ writer.WriteValue(exporterSettings.TracesEncoding.IsOtlp());
+
+ writer.WritePropertyName("otlp_metrics_export_enabled");
+ writer.WriteValue(instanceSettings.OtlpRuntimeMetricsEnabled);
+
+ writer.WritePropertyName("otlp_logs_export_enabled");
+ writer.WriteValue(instanceSettings.OpenTelemetryLogsEnabled && instanceSettings.OtelLogsExporterEnabled);
+
writer.WritePropertyName("profiler_enabled");
writer.WriteValue(Profiler.Instance.Status.IsProfilerReady);
diff --git a/tracer/src/Datadog.Trace/TracerManagerFactory.cs b/tracer/src/Datadog.Trace/TracerManagerFactory.cs
index a2ddc20c6525..668511e2bf22 100644
--- a/tracer/src/Datadog.Trace/TracerManagerFactory.cs
+++ b/tracer/src/Datadog.Trace/TracerManagerFactory.cs
@@ -285,7 +285,7 @@ protected virtual ISpanSampler GetSpanSampler(TracerSettings settings)
protected virtual IAgentWriter GetAgentWriter(TracerSettings settings, IStatsdManager statsd, Action> updateSampleRates, Action updateConfigHash, IDiscoveryService discoveryService, TelemetrySettings telemetrySettings)
{
- if (settings.Manager.InitialExporterSettings.TracesEncoding is TracesEncoding.OtlpProtobuf or TracesEncoding.OtlpJson)
+ if (settings.Manager.InitialExporterSettings.TracesEncoding.IsOtlp())
{
var otlpApi = new ManagedApiOtlp(settings);
var otlpStatsAggregator = StatsAggregator.Create(otlpApi, settings, discoveryService, statsd, isOtlp: true);