feat: add commenter_for_nonrecording_spans option to enable SQLCommenter for non-recording spans
#4090
+226
−27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Add
commenter_for_nonrecording_spansoption to SQLAlchemy and DBAPI instrumentations, enabling SQLCommenter to add SQL comments (includingtraceparent) for non-recording (unsampled) spans.Motivation: By default, SQLCommenter only adds comments when
span.is_recording()isTrue. This means unsampled spans (e.g., when using a sampling rate < 100%) don't get SQL comments. However, some users wanttraceparentpropagated in SQL comments for all requests regardless of sampling decision, enabling database-side correlation with distributed traces.Changes:
commenter_for_nonrecording_spansparameter (default:False) to both SQLAlchemy and DBAPI instrumentationsspan.is_recording()isTrue(existing behavior preserved)Type of change
How Has This Been Tested?
Added unit tests for both instrumentations:
test_commenter_for_nonrecording_spans_disabled_by_default- Verifies SQL comments are NOT added for non-recording spans when flag isFalse(default)test_commenter_for_nonrecording_spans_enabled- Verifies SQL comments ARE added for non-recording spans when flag isTrue