Unable to completely disable Npgsql tracing
Describe the bug
- We have a scenario where we want to disable tracing completely for
Npgsql- in this instance there is an issue withNpgsqlwhere multiplexing and open telemetry tracing are causing runaway CPU and memory issues. - Simply setting
DD_TRACE_Npgsql_ENABLED=falsedoes cause datadog to ignore traces produced byNpgsql - However, because the datadog Tracer still listens to the
NpgsqlActivitySourcein theIgnoreActivityHandler,Npgsqlis still producing the traces, and still causing runaway CPU and memory issues. - Is there any way to completely disconnect certain integrations?
- This is hopefully a temporary issue on the
Npgsqlside, but in the meantime we appear to have no way to turn off the problematic tracing. - This is also a broader issue, in that the tracing overhead is still incurred even when you would expect an
Ignoredintegration to disable tracing for that integration entirely, whatever your reason for doing so may be.
To Reproduce Steps to reproduce the behavior:
- Disable tracing for an integration, eg
DD_TRACE_Npgsql_ENABLED=false - Notice traces are still being created by the code
Expected behavior
- Ignored integrations shouldn't be tracing at all.
- OR there should be a way to completely disable tracing for an integration, instead of the enabled-but-ignored scenario we have now.
Runtime environment (please complete the following information):
- Instrumentation mode: Nuget
- Tracer version:
<PackageReference Include="Datadog.Trace" Version="2.45.0" /> - CLR: .net core 8.0.5
Hi @samcarton, at this moment the only way to disable this is to set DD_TRACE_OTEL_ENABLED to false (if it is enabled), unfortunately this would disable the OpenTelemetry support within the .NET Tracer as well.
Thanks for raising this though as we will look into improving this as this isn't ideal.
Update: it looks like #5795 (work in progress) will help resolve this issue
FYI we have released version 3.11.1 which includes the fix, thanks for flagging it!