diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java index 86fbebb4940fcff1c27c8e228894789187a4b139..577a573f2a721b40c1ae88396711a5ef761d3731 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java @@ -31,6 +31,11 @@ import org.apache.skywalking.apm.agent.core.logging.core.WriterFactory; public class Config { public static class Agent { + /** + * Namespace isolates headers in cross process propagation. The HEADER name will be `HeaderName:Namespace`. + */ + public static String NAMESPACE = ""; + /** * Application code is showed in sky-walking-ui. Suggestion: set an unique name for each application, one * application's nodes share the same code. diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/CarrierItem.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/CarrierItem.java index c5c343fe75f99c4c3b1e5f9e60637a01f1f56d45..80385079b3039b0975240f8165fde65ade354e97 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/CarrierItem.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/CarrierItem.java @@ -16,10 +16,12 @@ * */ - package org.apache.skywalking.apm.agent.core.context; import java.util.Iterator; +import org.apache.skywalking.apm.util.StringUtil; + +import static org.apache.skywalking.apm.agent.core.conf.Config.Agent.NAMESPACE; /** * @author wusheng @@ -30,13 +32,15 @@ public class CarrierItem implements Iterator { private CarrierItem next; public CarrierItem(String headKey, String headValue) { - this.headKey = headKey; - this.headValue = headValue; - next = null; + this(headKey, headValue, null); } public CarrierItem(String headKey, String headValue, CarrierItem next) { - this.headKey = headKey; + if (StringUtil.isEmpty(NAMESPACE)) { + this.headKey = headKey; + } else { + this.headKey = NAMESPACE + ":" + headValue; + } this.headValue = headValue; this.next = next; }