From c56046d29a3ee07ba1d98ac34b9eefdd3ace098a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=99=9F=20Wu=20Sheng?= Date: Mon, 19 Mar 2018 15:33:05 +0800 Subject: [PATCH] Add namespace for headers. (#954) --- .../skywalking/apm/agent/core/conf/Config.java | 5 +++++ .../apm/agent/core/context/CarrierItem.java | 14 +++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) 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 86fbebb494..577a573f2a 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 c5c343fe75..80385079b3 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; } -- GitLab