diff --git a/apm-collector/apm-collector-boot/bin/collectorService.bat b/apm-backend-dist/bin/collectorService.bat
similarity index 89%
rename from apm-collector/apm-collector-boot/bin/collectorService.bat
rename to apm-backend-dist/bin/collectorService.bat
index f9d2826d0..3bbbd38f5 100644
--- a/apm-collector/apm-collector-boot/bin/collectorService.bat
+++ b/apm-backend-dist/bin/collectorService.bat
@@ -6,7 +6,7 @@ set COLLECTOR_HOME=%~dp0%..
set COLLECTOR_OPTS="-Xms256M -Xmx512M -Dcollector.logDir=%COLLECTOR_HOME%\logs"
set CLASSPATH=%COLLECTOR_HOME%\config;.;
-set CLASSPATH=%COLLECTOR_HOME%\libs\*;%CLASSPATH%
+set CLASSPATH=%COLLECTOR_HOME%\collector-libs\*;%CLASSPATH%
if defined JAVA_HOME (
set _EXECJAVA="%JAVA_HOME:"=%"\bin\java
diff --git a/apm-collector/apm-collector-boot/bin/collectorService.sh b/apm-backend-dist/bin/collectorService.sh
similarity index 94%
rename from apm-collector/apm-collector-boot/bin/collectorService.sh
rename to apm-backend-dist/bin/collectorService.sh
index dbb7774b2..069a681ab 100644
--- a/apm-collector/apm-collector-boot/bin/collectorService.sh
+++ b/apm-backend-dist/bin/collectorService.sh
@@ -15,7 +15,7 @@ _RUNJAVA=${JAVA_HOME}/bin/java
[ -z "$JAVA_HOME" ] && _RUNJAVA=java
CLASSPATH="$COLLECTOR_HOME/config:$CLASSPATH"
-for i in "$COLLECTOR_HOME"/libs/*.jar
+for i in "$COLLECTOR_HOME"/collector-libs/*.jar
do
CLASSPATH="$i:$CLASSPATH"
done
diff --git a/apm-collector/apm-collector-boot/bin/startup.bat b/apm-backend-dist/bin/startup.bat
similarity index 65%
rename from apm-collector/apm-collector-boot/bin/startup.bat
rename to apm-backend-dist/bin/startup.bat
index d1f9f401d..7c00ffbc1 100644
--- a/apm-collector/apm-collector-boot/bin/startup.bat
+++ b/apm-backend-dist/bin/startup.bat
@@ -2,4 +2,5 @@
setlocal
call "%~dp0"\collectorService.bat start
+call "%~dp0"\webappService.bat start
endlocal
diff --git a/apm-backend-dist/bin/startup.sh b/apm-backend-dist/bin/startup.sh
new file mode 100644
index 000000000..20f3b3b7c
--- /dev/null
+++ b/apm-backend-dist/bin/startup.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env sh
+
+PRG="$0"
+PRGDIR=`dirname "$PRG"`
+COLLECTOR_EXE=collectorService.sh
+WEBAPP_EXE=webappService.sh
+
+"$PRGDIR"/"$COLLECTOR_EXE"
+
+"$PRGDIR"/"$WEBAPP_EXE"
diff --git a/apm-backend-dist/bin/webappService.bat b/apm-backend-dist/bin/webappService.bat
new file mode 100644
index 000000000..e8d0c943c
--- /dev/null
+++ b/apm-backend-dist/bin/webappService.bat
@@ -0,0 +1,18 @@
+@echo off
+
+setlocal
+set WEBAPP_PROCESS_TITLE=Skywalking-Webapp
+set WEBAPP_HOME=%~dp0%..
+set JARPATH=%WEBAPP_HOME%\webapp
+
+if defined JAVA_HOME (
+ set _EXECJAVA="%JAVA_HOME:"=%"\bin\java
+)
+
+if not defined JAVA_HOME (
+ echo "JAVA_HOME not set."
+ set _EXECJAVA=java
+)
+
+start "%WEBAPP_PROCESS_TITLE%" %_EXECJAVA% -jar %JARPATH%/skywalking-webapp.jar
+endlocal
diff --git a/apm-backend-dist/bin/webappService.sh b/apm-backend-dist/bin/webappService.sh
new file mode 100644
index 000000000..07b951b83
--- /dev/null
+++ b/apm-backend-dist/bin/webappService.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env sh
+
+PRG="$0"
+PRGDIR=`dirname "$PRG"`
+[ -z "$WEBAPP_HOME" ] && WEBAPP_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`
+
+WEBAPP_LOG_DIR="${WEBAPP_HOME}/logs"
+JAVA_OPTS=" -Xms256M -Xmx512M"
+JAR_PATH="${WEBAPP_HOME}/webapp"
+
+if [ ! -d "${WEBAPP_HOME}/logs" ]; then
+ mkdir -p "${WEBAPP_LOG_DIR}"
+fi
+
+_RUNJAVA=${JAVA_HOME}/bin/java
+[ -z "$JAVA_HOME" ] && _RUNJAVA=java
+
+eval exec "\"$_RUNJAVA\" ${JAVA_OPTS} -jar ${JAR_PATH}/skywalking-webapp.jar \
+ 2>${WEBAPP_LOG_DIR}/webapp.log 1> /dev/null &"
+
+if [ $? -eq 0 ]; then
+ sleep 1
+ echo "Skywalking Web Application started successfully!"
+else
+ echo "Skywalking Web Application started failure!"
+ exit 1
+fi
diff --git a/apm-backend-dist/pom.xml b/apm-backend-dist/pom.xml
new file mode 100644
index 000000000..88a90bdd7
--- /dev/null
+++ b/apm-backend-dist/pom.xml
@@ -0,0 +1,77 @@
+
+
+
+ apm
+ org.apache.skywalking
+ 5.0.0-alpha-SNAPSHOT
+
+ 4.0.0
+
+ apm-backend-dist
+ pom
+
+
+
+
+ org.apache.skywalking
+ apm-collector-boot
+ ${project.version}
+
+
+ org.apache.skywalking
+ apm-collector-boot
+ ${project.version}
+
+
+
+
+ skywalking-backend
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+
+
+ dist
+ package
+
+ single
+
+
+
+
+ true
+ posix
+ false
+
+ ${project.basedir}/src/main/assembly/binary.xml
+
+ false
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+
+
+ package
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apm-backend-dist/src/main/assembly/binary.xml b/apm-backend-dist/src/main/assembly/binary.xml
new file mode 100644
index 000000000..c491faf8e
--- /dev/null
+++ b/apm-backend-dist/src/main/assembly/binary.xml
@@ -0,0 +1,58 @@
+
+
+
+ dist
+
+ zip
+ tar.gz
+
+
+
+ ${project.basedir}/bin
+ /bin
+
+ *.sh
+ *.bat
+
+ 0755
+
+
+ ${project.basedir}/../apm-collector/apm-collector-boot/target/skywalking-collector-assembly/skywalking-collector/config
+ /config
+
+ *.yml
+ *.xml
+
+
+
+ ${project.basedir}/../apm-collector/apm-collector-boot/target/skywalking-collector-assembly/skywalking-collector/libs
+ /collector-libs
+
+
+
+
+ ${project.basedir}/../apm-webapp/target/skywalking-webapp.jar
+ /webapp
+ 0644
+
+
+
diff --git a/apm-collector/apm-collector-boot/bin/startup.sh b/apm-collector/apm-collector-boot/bin/startup.sh
deleted file mode 100644
index d8f441aa7..000000000
--- a/apm-collector/apm-collector-boot/bin/startup.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env sh
-
-PRG="$0"
-PRGDIR=`dirname "$PRG"`
-EXECUTABLE=collectorService.sh
-
-exec "$PRGDIR"/"$EXECUTABLE" start
diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml
index 99605cca1..1acface4b 100644
--- a/apm-collector/apm-collector-boot/pom.xml
+++ b/apm-collector/apm-collector-boot/pom.xml
@@ -227,26 +227,7 @@
-
- org.apache.maven.plugins
- maven-antrun-plugin
-
-
- package
-
- run
-
-
-
-
-
-
-
-
-
-
+
com.spotify
docker-maven-plugin
diff --git a/apm-collector/apm-collector-boot/src/main/assembly/assembly.xml b/apm-collector/apm-collector-boot/src/main/assembly/assembly.xml
index d694f8ed6..ea2ee62ac 100644
--- a/apm-collector/apm-collector-boot/src/main/assembly/assembly.xml
+++ b/apm-collector/apm-collector-boot/src/main/assembly/assembly.xml
@@ -22,8 +22,7 @@
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
assembly
- zip
- tar.gz
+ dir
@@ -32,15 +31,6 @@
-
- ${project.basedir}/bin
- /bin
-
- *.sh
- *.bat
-
- 0755
-
src/main/resources
/config
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClient.java
index 1c81fcd00..565a7d7d4 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClient.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClient.java
@@ -26,6 +26,7 @@ import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Random;
+import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -46,6 +47,9 @@ import static org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig.C
*/
public class DiscoveryRestServiceClient implements Runnable {
private static final ILog logger = LogManager.getLogger(DiscoveryRestServiceClient.class);
+ private static final int HTTP_CONNECT_TIMEOUT = 2000;
+ private static final int HTTP_CONNECTION_REQUEST_TIMEOUT = 1000;
+ private static final int HTTP_SOCKET_TIMEOUT = 2000;
private String[] serverList;
private volatile int selectedServer = -1;
@@ -133,7 +137,11 @@ public class DiscoveryRestServiceClient implements Runnable {
return null;
}
HttpGet httpGet = new HttpGet("http://" + serverList[selectedServer] + Config.Collector.DISCOVERY_SERVICE_NAME);
-
+ RequestConfig requestConfig = RequestConfig.custom()
+ .setConnectTimeout(HTTP_CONNECT_TIMEOUT)
+ .setConnectionRequestTimeout(HTTP_CONNECTION_REQUEST_TIMEOUT)
+ .setSocketTimeout(HTTP_SOCKET_TIMEOUT).build();
+ httpGet.setConfig(requestConfig);
return httpGet;
}
diff --git a/pom.xml b/pom.xml
index 08e93f514..bcbbff716 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,7 @@
apm-collector
apm-protocol
apm-webapp
+ apm-backend-dist
pom