diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java index 070695cbc..12e621287 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/buffer/BufferGroup.java @@ -2,6 +2,7 @@ package com.ai.cloud.skywalking.buffer; import com.ai.cloud.skywalking.conf.Config; +import com.ai.cloud.skywalking.conf.Constants; import com.ai.cloud.skywalking.protocol.Span; import com.ai.cloud.skywalking.selfexamination.HealthCollector; import com.ai.cloud.skywalking.selfexamination.HeathReading; @@ -76,7 +77,7 @@ public class BufferGroup { data = new StringBuilder(); } - data.append(dataBuffer[i] + ";"); + data.append(dataBuffer[i] + Constants.DATA_SPILT); dataBuffer[i] = null; } diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java index 07545fe07..546ae127f 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java @@ -5,6 +5,7 @@ public class AuthDesc { static { ConfigInitializer.initialize(); + ConfigValidator.validate(); } public static boolean isAuth() { diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java index 0149406a3..57c6e98fb 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java @@ -30,7 +30,7 @@ public class Config { public static class Buffer { // 每个Buffer的最大个数 - public static int BUFFER_MAX_SIZE = 18000; + public static int BUFFER_MAX_SIZE = 20000; // Buffer池的最大长度 public static int POOL_SIZE = 5; @@ -47,7 +47,7 @@ public class Config { public static boolean IS_OFF = false; // 发送的最大长度 - public static int MAX_SEND_LENGTH = 1800; + public static int MAX_SEND_LENGTH = 18500; public static long RETRY_GET_SENDER_WAIT_INTERVAL = 2000L; diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigValidator.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigValidator.java new file mode 100644 index 000000000..9c35319dd --- /dev/null +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigValidator.java @@ -0,0 +1,26 @@ +package com.ai.cloud.skywalking.conf; + +public class ConfigValidator { + private ConfigValidator() { + // Non + } + + public static boolean validate() { + if (!validateSendMaxLength()) { + throw new IllegalArgumentException("Max send length must great than the sum of the maximum " + + "length of sending exception stack and the maximum length of sending business key."); + } + + return true; + } + + private static boolean validateSendMaxLength() { + if (Config.Sender.MAX_SEND_LENGTH < (Config.BuriedPoint.MAX_EXCEPTION_STACK_LENGTH + + Config.BuriedPoint.BUSINESSKEY_MAX_LENGTH)) { + return false; + } + + return true; + } + +} diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Constants.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Constants.java index c48e4a324..ee52e249a 100644 --- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Constants.java +++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Constants.java @@ -3,4 +3,6 @@ package com.ai.cloud.skywalking.conf; public class Constants { public static final String HEALTH_DATA_SPILT_PATTERN = "^~"; + + public static final String DATA_SPILT = ","; }