Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Fixing issues with dropping baggage when TracePropagationBehaviorExtr…
…act = IGNORE

(cherry picked from commit 5facbfd)
  • Loading branch information
mhlidd committed Jun 27, 2025
commit a8f8a3bc7e7beb592e1a2b9fe4bdc254836603fa
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package datadog.trace.core.baggage;

import static datadog.trace.api.TracePropagationBehaviorExtract.IGNORE;
import static java.util.Collections.emptyMap;

import datadog.context.Context;
import datadog.context.propagation.CarrierSetter;
import datadog.context.propagation.CarrierVisitor;
import datadog.context.propagation.Propagator;
import datadog.trace.api.Config;
import datadog.trace.api.TracePropagationBehaviorExtract;
import datadog.trace.bootstrap.instrumentation.api.Baggage;
import datadog.trace.core.util.PercentEscaper;
import datadog.trace.core.util.PercentEscaper.Escaped;
Expand All @@ -28,21 +30,29 @@ public class BaggagePropagator implements Propagator {
private final boolean extractBaggage;
private final int maxItems;
private final int maxBytes;
private final TracePropagationBehaviorExtract behaviorExtract;

public BaggagePropagator(Config config) {
this(
config.isBaggageInject(),
config.isBaggageInject(),
config.getTraceBaggageMaxItems(),
config.getTraceBaggageMaxBytes());
config.getTraceBaggageMaxBytes(),
config.getTracePropagationBehaviorExtract());
}

// use primarily for testing purposes
BaggagePropagator(boolean injectBaggage, boolean extractBaggage, int maxItems, int maxBytes) {
BaggagePropagator(
boolean injectBaggage,
boolean extractBaggage,
int maxItems,
int maxBytes,
TracePropagationBehaviorExtract behaviorExtract) {
this.injectBaggage = injectBaggage;
this.extractBaggage = extractBaggage;
this.maxItems = maxItems;
this.maxBytes = maxBytes;
this.behaviorExtract = behaviorExtract;
}

@Override
Expand Down Expand Up @@ -104,7 +114,11 @@ public <C> void inject(Context context, C carrier, CarrierSetter<C> setter) {

@Override
public <C> Context extract(Context context, C carrier, CarrierVisitor<C> visitor) {
if (!this.extractBaggage || context == null || carrier == null || visitor == null) {
if (!this.extractBaggage
|| this.behaviorExtract == IGNORE
|| context == null
|| carrier == null
|| visitor == null) {
return context;
}
BaggageExtractor baggageExtractor = new BaggageExtractor();
Expand Down