diff --git a/samples/skywalking-auth/src/main/resources/sky-walking.auth b/samples/skywalking-auth/src/main/resources/sky-walking.auth index f58575d05..9be01f6e3 100644 --- a/samples/skywalking-auth/src/main/resources/sky-walking.auth +++ b/samples/skywalking-auth/src/main/resources/sky-walking.auth @@ -1,14 +1,15 @@ #skyWalking用户ID skywalking.user_id=123 #skyWalking应用编码 -skywalking.application_code=test +skywalking.application_code=skywalking-sample-dubbo #skywalking auth的环境变量名字 skywalking.auth_system_env_name=SKYWALKING_RUN #skywalking数据编码 skywalking.charset=UTF-8 +skywalking.auth_override=true #是否打印数据 -buriedpoint.printf=false +buriedpoint.printf=true #埋点异常的最大长度 buriedpoint.max_exception_stack_length=4000 #业务字段的最大长度 @@ -27,11 +28,8 @@ sender.max_send_length=20000 #当没有Sender时,尝试获取sender的等待周期 sender.retry_get_sender_wait_interval=2000 - - - #最大消费线程数 -consumer.max_consumer=2 +consumer.max_consumer=0 #消费者最大等待时间 consumer.max_wait_time=5 #发送失败等待时间 diff --git a/skywalking-collector/skywalking-agent/src/main/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java b/skywalking-collector/skywalking-agent/src/main/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java index e3222f3b9..ca02cfb2d 100644 --- a/skywalking-collector/skywalking-agent/src/main/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java +++ b/skywalking-collector/skywalking-agent/src/main/java/com/ai/cloud/skywalking/agent/SkywalkingAgent.java @@ -1,6 +1,7 @@ package com.ai.cloud.skywalking.agent; import com.ai.cloud.skywalking.conf.AuthDesc; +import com.ai.cloud.skywalking.conf.Config; import com.ai.cloud.skywalking.conf.ConfigInitializer; import com.ai.cloud.skywalking.logging.LogManager; import com.ai.cloud.skywalking.logging.Logger; @@ -19,9 +20,8 @@ public class SkywalkingAgent { private static Logger logger = LogManager.getLogger(SkywalkingAgent.class); public static void premain(String agentArgs, Instrumentation instrumentation) throws PluginException { - ConfigInitializer.initialize(); + Config.SkyWalking.IS_PREMAIN_MODE = true; if (!AuthDesc.isAuth()) { - List plugins = new PluginBootstrap().loadPlugins(); final PluginDefineCategory pluginDefineCategory = PluginDefineCategory.category(plugins); diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java index f03a81914..91ea39edf 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/AuthDesc.java @@ -1,17 +1,50 @@ package com.ai.cloud.skywalking.conf; +import com.ai.cloud.skywalking.logging.LogManager; +import com.ai.cloud.skywalking.logging.Logger; import com.ai.cloud.skywalking.selfexamination.SDKHealthCollector; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.net.URL; + public class AuthDesc { - static boolean isAuth = false; + private static Logger logger = LogManager.getLogger(AuthDesc.class); + static boolean isAuth = false; static { - ConfigInitializer.initialize(); + InputStream authFileInputStream; + if (Config.SkyWalking.IS_PREMAIN_MODE) { + authFileInputStream = fetchAuthFileInputStream(); + } else { + authFileInputStream = AuthDesc.class.getResourceAsStream("/sky-walking.auth"); + } + + ConfigInitializer.initialize(authFileInputStream); ConfigValidator.validate(); - SDKHealthCollector.init(); } + private static InputStream fetchAuthFileInputStream() { + try { + InputStream authFileInputStream; + String urlString = ClassLoader.getSystemClassLoader().getResource(generateLocationPath()).toString(); + urlString = urlString.substring(urlString.indexOf("file:"), urlString.indexOf('!')); + URL url = new URL(urlString); + File file = new File(url.toURI()); + authFileInputStream = new FileInputStream(file.getParentFile().getName() + File.separator + "/sky-walking.auth"); + return authFileInputStream; + } catch (Exception e) { + logger.error("Error to fetch auth file input stream.", e); + return null; + } + } + + private static String generateLocationPath() { + return AuthDesc.class.getName().replaceAll(".", "/") + ".class"; + } + public static boolean isAuth() { return isAuth; } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java index dd5308038..4a57a1b6f 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Config.java @@ -14,6 +14,8 @@ public class Config { public static String CHARSET = "UTF-8"; public static boolean ALL_METHOD_MONITOR = false; + + public static boolean IS_PREMAIN_MODE = false; } public static class BuriedPoint { diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigInitializer.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigInitializer.java index 24f0398e0..1e61a57d7 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigInitializer.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/ConfigInitializer.java @@ -16,8 +16,7 @@ import java.util.Properties; public class ConfigInitializer { private static Logger logger = LogManager.getLogger(ConfigInitializer.class); - public static void initialize() { - InputStream inputStream = ConfigInitializer.class.getResourceAsStream("/sky-walking.auth"); + static void initialize(InputStream inputStream) { if (inputStream == null) { logger.info("No provider sky-walking certification documents, sky-walking api auto shutdown."); } else { diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/IFileWriter.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/IWriter.java similarity index 71% rename from skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/IFileWriter.java rename to skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/IWriter.java index 1a297dee2..3188d2a40 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/IFileWriter.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/IWriter.java @@ -1,5 +1,5 @@ package com.ai.cloud.skywalking.logging; -public interface IFileWriter { +public interface IWriter { void write(String message); } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/Logger.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/Logger.java index 86fe9e2ed..5b6353f40 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/Logger.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/Logger.java @@ -13,6 +13,7 @@ public class Logger { private Class toBeLoggerClass; + public Logger(Class toBeLoggerClass) { this.toBeLoggerClass = toBeLoggerClass; } @@ -22,11 +23,11 @@ public class Logger { StackTraceElement locations[] = dummyException.getStackTrace(); if (locations != null && locations.length > 2) { - SyncFileWriter.instance().write(formatMessage(level, message, locations[2])); + WriterFactory.getLogWriter().write(formatMessage(level, message, locations[2])); } if (e != null) { - SyncFileWriter.instance().write(LoggingUtil.fetchThrowableStack(e)); + WriterFactory.getLogWriter().write(LoggingUtil.fetchThrowableStack(e)); } } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/STDOutWriter.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/STDOutWriter.java new file mode 100644 index 000000000..9e88ed613 --- /dev/null +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/STDOutWriter.java @@ -0,0 +1,10 @@ +package com.ai.cloud.skywalking.logging; + +public class STDOutWriter implements IWriter { + + + @Override + public void write(String message) { + System.err.println(message); + } +} diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/SyncFileWriter.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/SyncFileWriter.java index 4a9a107de..dbb6bbf9d 100644 --- a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/SyncFileWriter.java +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/SyncFileWriter.java @@ -14,7 +14,7 @@ import java.util.Date; import static com.ai.cloud.skywalking.conf.Config.Logging.LOG_FILE_NAME; import static com.ai.cloud.skywalking.conf.Config.Logging.LOG_FILE_PATH; -public class SyncFileWriter implements IFileWriter { +public class SyncFileWriter implements IWriter { private static SyncFileWriter writer; private FileOutputStream os; @@ -35,7 +35,7 @@ public class SyncFileWriter implements IFileWriter { } - public static IFileWriter instance() { + public static IWriter instance() { if (writer == null) { writer = new SyncFileWriter(); } diff --git a/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/WriterFactory.java b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/WriterFactory.java new file mode 100644 index 000000000..ebedd71b3 --- /dev/null +++ b/skywalking-collector/skywalking-api/src/main/java/com/ai/cloud/skywalking/logging/WriterFactory.java @@ -0,0 +1,17 @@ +package com.ai.cloud.skywalking.logging; + +import com.ai.cloud.skywalking.conf.Config; + +public class WriterFactory { + private WriterFactory(){ + } + + public static IWriter getLogWriter(){ + if (Config.SkyWalking.IS_PREMAIN_MODE){ + return SyncFileWriter.instance(); + }else{ + return new STDOutWriter(); + } + + } +}