Report OTLP export status in tracer startup log#8936
Conversation
Emit otlp_traces_export_enabled, otlp_metrics_export_enabled, and otlp_logs_export_enabled booleans in the DATADOG TRACER CONFIGURATION startup log, aligning the .NET tracer with the shared cross-tracer diagnostic-log schema. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
BenchmarksBenchmark execution time: 2026-07-24 02:30:55 Comparing candidate commit 1e5bf35 in PR branch Found 0 performance improvements and 1 performance regressions! Performance is the same for 71 metrics, 0 unstable metrics, 61 known flaky benchmarks, 65 flaky benchmarks without significant changes.
|
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing This PR (8936) and master. ✅ No regressions detected - check the details below Full Metrics ComparisonFakeDbCommand
HttpMessageHandler
Comparison explanationExecution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). Duration chartsFakeDbCommand (.NET Framework 4.8)gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (75ms) : 70, 79
master - mean (73ms) : 68, 77
section Bailout
This PR (8936) - mean (79ms) : 75, 83
master - mean (78ms) : 75, 82
section CallTarget+Inlining+NGEN
This PR (8936) - mean (1,092ms) : 1046, 1138
master - mean (1,089ms) : 1033, 1145
FakeDbCommand (.NET Core 3.1)gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (115ms) : 109, 121
master - mean (115ms) : 107, 122
section Bailout
This PR (8936) - mean (112ms) : 109, 115
master - mean (113ms) : 106, 120
section CallTarget+Inlining+NGEN
This PR (8936) - mean (789ms) : 759, 818
master - mean (786ms) : 757, 815
FakeDbCommand (.NET 6)gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (98ms) : 94, 102
master - mean (97ms) : 94, 100
section Bailout
This PR (8936) - mean (103ms) : 97, 109
master - mean (104ms) : 97, 111
section CallTarget+Inlining+NGEN
This PR (8936) - mean (946ms) : 895, 997
master - mean (948ms) : 902, 994
FakeDbCommand (.NET 8)gantt
title Execution time (ms) FakeDbCommand (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (96ms) : 92, 99
master - mean (96ms) : 93, 100
section Bailout
This PR (8936) - mean (97ms) : 95, 98
master - mean (97ms) : 95, 99
section CallTarget+Inlining+NGEN
This PR (8936) - mean (824ms) : 783, 866
master - mean (826ms) : 789, 863
HttpMessageHandler (.NET Framework 4.8)gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (220ms) : 207, 234
master - mean (239ms) : 214, 265
section Bailout
This PR (8936) - mean (225ms) : 206, 245
master - mean (243ms) : 224, 262
section CallTarget+Inlining+NGEN
This PR (8936) - mean (1,268ms) : 1213, 1324
master - mean (1,314ms) : 1244, 1384
HttpMessageHandler (.NET Core 3.1)gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (316ms) : 292, 340
master - mean (318ms) : 295, 341
section Bailout
This PR (8936) - mean (319ms) : 298, 340
master - mean (311ms) : 298, 325
section CallTarget+Inlining+NGEN
This PR (8936) - mean (1,010ms) : 977, 1043
master - mean (1,050ms) : 1003, 1097
HttpMessageHandler (.NET 6)gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (315ms) : 294, 336
master - mean (316ms) : 285, 347
section Bailout
This PR (8936) - mean (319ms) : 298, 339
master - mean (312ms) : 292, 332
section CallTarget+Inlining+NGEN
This PR (8936) - mean (1,201ms) : 1149, 1253
master - mean (1,272ms) : 1141, 1404
HttpMessageHandler (.NET 8)gantt
title Execution time (ms) HttpMessageHandler (.NET 8)
dateFormat x
axisFormat %Q
todayMarker off
section Baseline
This PR (8936) - mean (308ms) : 282, 334
master - mean (323ms) : 289, 358
section Bailout
This PR (8936) - mean (300ms) : 285, 315
master - mean (353ms) : 320, 386
section CallTarget+Inlining+NGEN
This PR (8936) - mean (1,147ms) : 1032, 1262
master - mean (1,207ms) : 1142, 1272
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Summary of changes
Add three boolean fields to the
DATADOG TRACER CONFIGURATIONstartup diagnostic log written byTracerManager.WriteDiagnosticLog:otlp_traces_export_enabled: true when the traces encoding is OTLP protobuf or OTLP JSON (OTEL_TRACES_EXPORTER=otlp).otlp_metrics_export_enabled: true when OTLP runtime metrics export is enabled (OtlpRuntimeMetricsEnabled).otlp_logs_export_enabled: true when OTel logs are enabled and the OTel logs exporter is set to otlp.Reason for change
Part of a cross-tracer effort to report OTLP export status in the tracer startup log. The same JSON keys are added across the dd-trace-* libraries so the log gives a uniform view of OTLP traces, metrics, and logs export configuration.
Implementation details
Three properties are written next to the existing configuration fields:
otlp_traces_export_enabled:exporterSettings.TracesEncoding is TracesEncoding.OtlpProtobuf or TracesEncoding.OtlpJsonotlp_metrics_export_enabled:instanceSettings.OtlpRuntimeMetricsEnabledotlp_logs_export_enabled:instanceSettings.OpenTelemetryLogsEnabled && instanceSettings.OtelLogsExporterEnabledTest coverage
The repository has no field-level assertion for the startup diagnostic log, so this source-only change adds no test. Existing tests that parse the log assert only on individual pre-existing keys and are unaffected.
Other details
None.
Related PRs — cross-tracer OTLP startup-log effort