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);