This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch 6.0
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git
The following commit(s) were added to refs/heads/6.0 by this push:
new 1ec420b Remove collector.servers and collector.direct_servers, and
add collector.backend_service setting. cc @ascrutae
1ec420b is described below
commit 1ec420b0fdfa4d5d82b4be29702d0c49d73a78a4
Author: Wu Sheng <[email protected]>
AuthorDate: Wed Aug 15 22:08:30 2018 +0800
Remove collector.servers and collector.direct_servers, and add
collector.backend_service setting. cc @ascrutae
---
apm-protocol/apm-network/src/main/proto | 2 +-
apm-sniffer/apm-agent-core/pom.xml | 5 -
.../skywalking/apm/agent/core/conf/Config.java | 27 +---
.../agent/core/conf/RemoteDownstreamConfig.java | 9 --
.../agent/core/conf/SnifferConfigInitializer.java | 2 +-
.../core/remote/CollectorDiscoveryService.java | 87 -----------
.../core/remote/DiscoveryRestServiceClient.java | 165 ---------------------
.../apm/agent/core/remote/GRPCChannelManager.java | 15 +-
...ache.skywalking.apm.agent.core.boot.BootService | 1 -
.../apm/agent/core/boot/ServiceManagerTest.java | 19 +--
.../core/conf/SnifferConfigInitializerTest.java | 4 +-
.../remote/DiscoveryRestServiceClientTest.java | 133 -----------------
.../agent/core/remote/GRPCChannelManagerTest.java | 121 ---------------
.../src/test/resources/config/agent.config | 2 +-
apm-sniffer/config/agent.config | 18 +--
15 files changed, 26 insertions(+), 584 deletions(-)
diff --git a/apm-protocol/apm-network/src/main/proto
b/apm-protocol/apm-network/src/main/proto
index 75c7418..33b132b 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit 75c74186a1548657013a299f388e6e8b7b4b5251
+Subproject commit 33b132bffaabacbd003eec41b498d2810f386161
diff --git a/apm-sniffer/apm-agent-core/pom.xml
b/apm-sniffer/apm-agent-core/pom.xml
index 61ac01d..cfa73fa 100644
--- a/apm-sniffer/apm-agent-core/pom.xml
+++ b/apm-sniffer/apm-agent-core/pom.xml
@@ -83,11 +83,6 @@
<version>3.3.6</version>
</dependency>
<dependency>
- <groupId>org.apache.httpcomponents</groupId>
- <artifactId>httpclient</artifactId>
- <version>4.5.3</version>
- </dependency>
- <dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>${jetty.version}</version>
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 893d1aa..7addc90 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
@@ -82,32 +82,9 @@ public class Config {
*/
public static long APP_AND_SERVICE_REGISTER_CHECK_INTERVAL = 3;
/**
- * discovery rest check interval
+ * Collector skywalking trace receiver service addresses.
*/
- public static long DISCOVERY_CHECK_INTERVAL = 60;
- /**
- * Collector naming/jetty service addresses.
- * Primary address setting.
- *
- * e.g.
- * SERVERS="127.0.0.1:10800" for single collector node.
- * SERVERS="10.2.45.126:10800,10.2.45.127:10800" for multi collector
nodes.
- */
- public static String SERVERS = "";
-
- /**
- * Collector agent_gRPC/grpc service addresses.
- * Secondary address setting, only effect when #SERVERS is empty.
- *
- * By using this, no discovery mechanism provided. The agent only uses
these addresses to uplink data.
- *
- */
- public static String DIRECT_SERVERS = "";
-
- /**
- * Collector service discovery REST service name
- */
- public static String DISCOVERY_SERVICE_NAME = "/agent/gRPC";
+ public static String BACKEND_SERVICE = "";
}
public static class Jvm {
diff --git
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/RemoteDownstreamConfig.java
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/RemoteDownstreamConfig.java
index 6e6f5c4..d236b62 100644
---
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/RemoteDownstreamConfig.java
+++
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/RemoteDownstreamConfig.java
@@ -19,8 +19,6 @@
package org.apache.skywalking.apm.agent.core.conf;
-import java.util.LinkedList;
-import java.util.List;
import org.apache.skywalking.apm.agent.core.dictionary.DictionaryUtil;
/**
@@ -35,11 +33,4 @@ public class RemoteDownstreamConfig {
public volatile static int APPLICATION_INSTANCE_ID =
DictionaryUtil.nullValue();
}
-
- public static class Collector {
- /**
- * Collector GRPC-Service address.
- */
- public volatile static List<String> GRPC_SERVERS = new
LinkedList<String>();
- }
}
diff --git
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java
index 477455b..64f6e33 100644
---
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java
+++
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializer.java
@@ -75,7 +75,7 @@ public class SnifferConfigInitializer {
if (StringUtil.isEmpty(Config.Agent.APPLICATION_CODE)) {
throw new ExceptionInInitializerError("`agent.application_code` is
missing.");
}
- if (StringUtil.isEmpty(Config.Collector.SERVERS) &&
StringUtil.isEmpty(Config.Collector.DIRECT_SERVERS)) {
+ if (StringUtil.isEmpty(Config.Collector.BACKEND_SERVICE)) {
throw new ExceptionInInitializerError("`collector.direct_servers`
and `collector.servers` cannot be empty at the same time.");
}
diff --git
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/CollectorDiscoveryService.java
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/CollectorDiscoveryService.java
deleted file mode 100644
index b0de03f..0000000
---
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/CollectorDiscoveryService.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.agent.core.remote;
-
-import org.apache.skywalking.apm.agent.core.boot.BootService;
-import org.apache.skywalking.apm.agent.core.boot.DefaultImplementor;
-import org.apache.skywalking.apm.agent.core.boot.DefaultNamedThreadFactory;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig;
-import org.apache.skywalking.apm.agent.core.logging.api.ILog;
-import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
-import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
-
-import java.util.Arrays;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
-
-/**
- * The <code>CollectorDiscoveryService</code> is responsible for start {@link
DiscoveryRestServiceClient}.
- *
- * @author wusheng
- */
-@DefaultImplementor
-public class CollectorDiscoveryService implements BootService {
- private static final ILog logger =
LogManager.getLogger(CollectorDiscoveryService.class);
- private ScheduledFuture<?> future;
-
- @Override
- public void prepare() {
-
- }
-
- @Override
- public void boot() {
- DiscoveryRestServiceClient discoveryRestServiceClient = new
DiscoveryRestServiceClient();
- if (discoveryRestServiceClient.hasNamingServer()) {
- discoveryRestServiceClient.run();
- future = Executors.newSingleThreadScheduledExecutor(
- new DefaultNamedThreadFactory("CollectorDiscoveryService"))
- .scheduleAtFixedRate(new
RunnableWithExceptionProtection(discoveryRestServiceClient, new
RunnableWithExceptionProtection.CallbackWhenException() {
- @Override
- public void handle(Throwable t) {
- logger.error("unexpected exception.", t);
- }
- }),
- Config.Collector.DISCOVERY_CHECK_INTERVAL,
- Config.Collector.DISCOVERY_CHECK_INTERVAL,
- TimeUnit.SECONDS);
- } else {
- if (Config.Collector.DIRECT_SERVERS == null ||
Config.Collector.DIRECT_SERVERS.trim().length() == 0) {
- logger.error("Collector server and direct server addresses are
both not set.");
- logger.error("Agent will not uplink any data.");
- return;
- }
- RemoteDownstreamConfig.Collector.GRPC_SERVERS =
Arrays.asList(Config.Collector.DIRECT_SERVERS.split(","));
- }
- }
-
- @Override
- public void onComplete() throws Throwable {
-
- }
-
- @Override
- public void shutdown() throws Throwable {
- if (future != null) {
- future.cancel(true);
- }
- }
-}
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
deleted file mode 100644
index 620efef..0000000
---
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClient.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.agent.core.remote;
-
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-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;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.logging.api.ILog;
-import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
-
-import java.io.IOException;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Random;
-
-import static
org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig.Collector.GRPC_SERVERS;
-
-/**
- * The <code>DiscoveryRestServiceClient</code> try to get the collector's
grpc-server list
- * in every 60 seconds,
- * and override {@link
org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig.Collector#GRPC_SERVERS}.
- *
- * @author wusheng
- */
-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;
-
- public DiscoveryRestServiceClient() {
- if (Config.Collector.SERVERS == null ||
Config.Collector.SERVERS.trim().length() == 0) {
- logger.warn("Collector server not set.");
- return;
- }
-
- serverList = Config.Collector.SERVERS.split(",");
- Random r = new Random();
- if (serverList.length > 0) {
- selectedServer = r.nextInt(serverList.length);
- }
- }
-
- boolean hasNamingServer() {
- return serverList != null && serverList.length > 0;
- }
-
- @Override
- public void run() {
- try {
- findServerList();
- } catch (Throwable t) {
- logger.error(t, "Find server list fail.");
- }
- }
-
- private void findServerList() throws RESTResponseStatusError, IOException {
- CloseableHttpClient httpClient = HttpClients.custom().build();
- try {
- HttpGet httpGet = buildGet();
- if (httpGet != null) {
- CloseableHttpResponse httpResponse =
httpClient.execute(httpGet);
- int statusCode = httpResponse.getStatusLine().getStatusCode();
- if (200 != statusCode) {
- findBackupServer();
- throw new RESTResponseStatusError(statusCode);
- } else {
- JsonArray serverList = new
Gson().fromJson(EntityUtils.toString(httpResponse.getEntity()),
JsonArray.class);
- if (serverList != null && serverList.size() > 0) {
- LinkedList<String> newServerList = new
LinkedList<String>();
- for (JsonElement element : serverList) {
- newServerList.add(element.getAsString());
- }
-
- if (!isListEquals(newServerList, GRPC_SERVERS)) {
- GRPC_SERVERS = newServerList;
- logger.debug("Refresh GRPC server list: {}",
GRPC_SERVERS);
- } else {
- logger.debug("GRPC server list remain unchanged:
{}", GRPC_SERVERS);
- }
-
- }
- }
- }
- } catch (IOException e) {
- findBackupServer();
- throw e;
- } finally {
- httpClient.close();
- }
- }
-
- private boolean isListEquals(List<String> list1, List<String> list2) {
- if (list1.size() != list2.size()) {
- return false;
- }
-
- for (String ip1 : list1) {
- if (!list2.contains(ip1)) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Prepare the given message for HTTP Post service.
- *
- * @return {@link HttpGet}, when is ready to send. otherwise, null.
- */
- private HttpGet buildGet() {
- if (selectedServer == -1) {
- //no available server
- 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;
- }
-
- /**
- * Choose the next server in {@link #serverList}, by moving {@link
#selectedServer}.
- */
- private void findBackupServer() {
- selectedServer++;
- if (selectedServer >= serverList.length) {
- selectedServer = 0;
- }
-
- if (serverList.length == 0) {
- selectedServer = -1;
- }
- }
-}
diff --git
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManager.java
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManager.java
index 0c7f6d1..c6f7cc0 100644
---
a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManager.java
+++
b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManager.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.apm.agent.core.remote;
import io.grpc.Channel;
import io.grpc.Status;
import io.grpc.StatusRuntimeException;
+import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
@@ -32,7 +33,6 @@ import org.apache.skywalking.apm.agent.core.boot.BootService;
import org.apache.skywalking.apm.agent.core.boot.DefaultImplementor;
import org.apache.skywalking.apm.agent.core.boot.DefaultNamedThreadFactory;
import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig;
import org.apache.skywalking.apm.agent.core.logging.api.ILog;
import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
import org.apache.skywalking.apm.util.RunnableWithExceptionProtection;
@@ -49,6 +49,7 @@ public class GRPCChannelManager implements BootService,
Runnable {
private volatile boolean reconnect = true;
private Random random = new Random();
private List<GRPCChannelListener> listeners =
Collections.synchronizedList(new LinkedList<GRPCChannelListener>());
+ private volatile List<String> grpcServers;
@Override
public void prepare() throws Throwable {
@@ -57,6 +58,12 @@ public class GRPCChannelManager implements BootService,
Runnable {
@Override
public void boot() throws Throwable {
+ if (Config.Collector.BACKEND_SERVICE.trim().length() == 0) {
+ logger.error("Collector server addresses are not set.");
+ logger.error("Agent will not uplink any data.");
+ return;
+ }
+ grpcServers =
Arrays.asList(Config.Collector.BACKEND_SERVICE.split(","));
connectCheckFuture = Executors
.newSingleThreadScheduledExecutor(new
DefaultNamedThreadFactory("GRPCChannelManager"))
.scheduleAtFixedRate(new RunnableWithExceptionProtection(this, new
RunnableWithExceptionProtection.CallbackWhenException() {
@@ -85,11 +92,11 @@ public class GRPCChannelManager implements BootService,
Runnable {
public void run() {
logger.debug("Selected collector grpc service running, reconnect:{}.",
reconnect);
if (reconnect) {
- if (RemoteDownstreamConfig.Collector.GRPC_SERVERS.size() > 0) {
+ if (grpcServers.size() > 0) {
String server = "";
try {
- int index = Math.abs(random.nextInt()) %
RemoteDownstreamConfig.Collector.GRPC_SERVERS.size();
- server =
RemoteDownstreamConfig.Collector.GRPC_SERVERS.get(index);
+ int index = Math.abs(random.nextInt()) %
grpcServers.size();
+ server = grpcServers.get(index);
String[] ipAndPort = server.split(":");
managedChannel = GRPCChannel.newBuilder(ipAndPort[0],
Integer.parseInt(ipAndPort[1]))
diff --git
a/apm-sniffer/apm-agent-core/src/main/resources/META-INF/services/org.apache.skywalking.apm.agent.core.boot.BootService
b/apm-sniffer/apm-agent-core/src/main/resources/META-INF/services/org.apache.skywalking.apm.agent.core.boot.BootService
index 8251824..9beec08 100644
---
a/apm-sniffer/apm-agent-core/src/main/resources/META-INF/services/org.apache.skywalking.apm.agent.core.boot.BootService
+++
b/apm-sniffer/apm-agent-core/src/main/resources/META-INF/services/org.apache.skywalking.apm.agent.core.boot.BootService
@@ -18,7 +18,6 @@
org.apache.skywalking.apm.agent.core.remote.TraceSegmentServiceClient
org.apache.skywalking.apm.agent.core.context.ContextManager
-org.apache.skywalking.apm.agent.core.remote.CollectorDiscoveryService
org.apache.skywalking.apm.agent.core.sampling.SamplingService
org.apache.skywalking.apm.agent.core.remote.GRPCChannelManager
org.apache.skywalking.apm.agent.core.jvm.JVMService
diff --git
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/boot/ServiceManagerTest.java
b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/boot/ServiceManagerTest.java
index 912f2d9..3009f4b 100644
---
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/boot/ServiceManagerTest.java
+++
b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/boot/ServiceManagerTest.java
@@ -22,21 +22,19 @@ package org.apache.skywalking.apm.agent.core.boot;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
-
-import org.apache.skywalking.apm.agent.core.context.TracingContext;
-import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
-import org.junit.AfterClass;
-import org.junit.Rule;
-import org.junit.Test;
import org.apache.skywalking.apm.agent.core.context.ContextManager;
import org.apache.skywalking.apm.agent.core.context.IgnoredTracerContext;
+import org.apache.skywalking.apm.agent.core.context.TracingContext;
import org.apache.skywalking.apm.agent.core.context.TracingContextListener;
import org.apache.skywalking.apm.agent.core.jvm.JVMService;
-import org.apache.skywalking.apm.agent.core.remote.CollectorDiscoveryService;
import org.apache.skywalking.apm.agent.core.remote.GRPCChannelListener;
import org.apache.skywalking.apm.agent.core.remote.GRPCChannelManager;
import org.apache.skywalking.apm.agent.core.remote.TraceSegmentServiceClient;
import org.apache.skywalking.apm.agent.core.sampling.SamplingService;
+import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
+import org.junit.AfterClass;
+import org.junit.Rule;
+import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -57,11 +55,10 @@ public class ServiceManagerTest {
public void testServiceDependencies() throws Exception {
HashMap<Class, BootService> registryService =
getFieldValue(ServiceManager.INSTANCE, "bootedServices");
- assertThat(registryService.size(), is(8));
+ assertThat(registryService.size(), is(7));
assertTraceSegmentServiceClient(ServiceManager.INSTANCE.findService(TraceSegmentServiceClient.class));
assertContextManager(ServiceManager.INSTANCE.findService(ContextManager.class));
-
assertCollectorDiscoveryService(ServiceManager.INSTANCE.findService(CollectorDiscoveryService.class));
assertGRPCChannelManager(ServiceManager.INSTANCE.findService(GRPCChannelManager.class));
assertSamplingService(ServiceManager.INSTANCE.findService(SamplingService.class));
assertJVMService(ServiceManager.INSTANCE.findService(JVMService.class));
@@ -100,10 +97,6 @@ public class ServiceManagerTest {
assertNotNull(service);
}
- private void assertCollectorDiscoveryService(CollectorDiscoveryService
service) {
- assertNotNull(service);
- }
-
private void assertContextManager(ContextManager service) {
assertNotNull(service);
}
diff --git
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
index 2e517d6..814c3cd 100644
---
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
+++
b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/conf/SnifferConfigInitializerTest.java
@@ -32,11 +32,11 @@ public class SnifferConfigInitializerTest {
@Test
public void testLoadConfigFromJavaAgentDir() throws
AgentPackageNotFoundException, ConfigNotFoundException {
System.setProperty("skywalking.agent.application_code", "testApp");
- System.setProperty("skywalking.collector.servers", "127.0.0.1:8090");
+ System.setProperty("skywalking.collector.backend_service",
"127.0.0.1:8090");
System.setProperty("skywalking.logging.level", "info");
SnifferConfigInitializer.initialize();
assertThat(Config.Agent.APPLICATION_CODE, is("testApp"));
- assertThat(Config.Collector.SERVERS, is("127.0.0.1:8090"));
+ assertThat(Config.Collector.BACKEND_SERVICE, is("127.0.0.1:8090"));
assertThat(Config.Logging.LEVEL, is(LogLevel.INFO));
}
diff --git
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClientTest.java
b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClientTest.java
deleted file mode 100644
index 86fe798..0000000
---
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/remote/DiscoveryRestServiceClientTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.agent.core.remote;
-
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
-
-import java.io.IOException;
-
-import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
-import org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig;
-import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
-import org.hamcrest.MatcherAssert;
-import org.junit.*;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-public class DiscoveryRestServiceClientTest {
-
- @Rule
- public AgentServiceRule agentServiceRule = new AgentServiceRule();
-
- private DiscoveryRestServiceClient client;
- @Rule
- public WireMockRule wireMockRule = new WireMockRule(8089);
-
- @AfterClass
- public static void afterClass() {
- ServiceManager.INSTANCE.shutdown();
- }
-
- @Before
- public void setUpBeforeClass() {
- Config.Collector.DISCOVERY_CHECK_INTERVAL = 1;
- stubFor(get(urlEqualTo("/withoutResult"))
- .willReturn(aResponse()
- .withStatus(200)
- .withHeader("Content-Type", "application/json")
- .withBody("[]")));
- stubFor(get(urlEqualTo("/withResult"))
- .willReturn(aResponse()
- .withStatus(200)
- .withHeader("Content-Type", "application/json")
- .withBody("['127.0.0.1:8080','127.0.0.1:8090']")));
- stubFor(get(urlEqualTo("/withSameResult"))
- .willReturn(aResponse()
- .withStatus(200)
- .withHeader("Content-Type", "application/json")
- .withBody("['127.0.0.1:8090','127.0.0.1:8080']")));
- stubFor(get(urlEqualTo("/withDifferenceResult"))
- .willReturn(aResponse()
- .withStatus(200)
- .withHeader("Content-Type", "application/json")
- .withBody("['127.0.0.1:9090','127.0.0.1:18090']")));
- stubFor(get(urlEqualTo("/with404"))
- .willReturn(aResponse()
- .withStatus(400)));
- }
-
- @Test
- public void testWithoutCollectorServer() throws RESTResponseStatusError,
IOException {
- client = new DiscoveryRestServiceClient();
- client.run();
-
MatcherAssert.assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.size(),
is(0));
- }
-
- @Test
- public void testWithGRPCAddress() throws RESTResponseStatusError,
IOException {
- Config.Collector.SERVERS = "127.0.0.1:8089";
- Config.Collector.DISCOVERY_SERVICE_NAME = "/withResult";
- client = new DiscoveryRestServiceClient();
- client.run();
-
- assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.size(),
is(2));
-
assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.contains("127.0.0.1:8080"),
is(true));
-
assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.contains("127.0.0.1:8090"),
is(true));
- }
-
- @Test
- public void testWithoutGRPCAddress() throws RESTResponseStatusError,
IOException {
- Config.Collector.SERVERS = "127.0.0.1:8089";
- Config.Collector.DISCOVERY_SERVICE_NAME = "/withoutResult";
- client = new DiscoveryRestServiceClient();
- client.run();
-
- assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.size(),
is(0));
- }
-
- @Test
- public void testChangeGrpcAddress() throws RESTResponseStatusError,
IOException {
- Config.Collector.SERVERS = "127.0.0.1:8089";
- Config.Collector.DISCOVERY_SERVICE_NAME = "/withResult";
- client = new DiscoveryRestServiceClient();
- client.run();
-
- Config.Collector.DISCOVERY_SERVICE_NAME = "/withDifferenceResult";
- client.run();
-
- assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.size(),
is(2));
-
assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.contains("127.0.0.1:9090"),
is(true));
-
assertThat(RemoteDownstreamConfig.Collector.GRPC_SERVERS.contains("127.0.0.1:18090"),
is(true));
- }
-
- @After
- public void tearDown() {
- Config.Collector.SERVERS = "";
- Config.Collector.DISCOVERY_SERVICE_NAME = "/grpc/address";
- RemoteDownstreamConfig.Collector.GRPC_SERVERS.clear();
- }
-
-}
diff --git
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManagerTest.java
b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManagerTest.java
deleted file mode 100644
index 059fc40..0000000
---
a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/remote/GRPCChannelManagerTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-
-package org.apache.skywalking.apm.agent.core.remote;
-
-import io.grpc.NameResolver;
-import io.grpc.Status;
-import io.grpc.StatusRuntimeException;
-import io.grpc.netty.NettyChannelBuilder;
-import io.grpc.testing.GrpcServerRule;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.RemoteDownstreamConfig;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.mockStatic;
-import static org.powermock.api.mockito.PowerMockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({GRPCChannelManager.class, NettyChannelBuilder.class})
-public class GRPCChannelManagerTest {
-
- @Rule
- private GrpcServerRule grpcServerRule = new
GrpcServerRule().directExecutor();
-
- @Spy
- private GRPCChannelManager grpcChannelManager = new GRPCChannelManager();
-
- @Mock
- private NettyChannelBuilder mock;
-
- @Spy
- private MockGRPCChannelListener listener = new MockGRPCChannelListener();
-
- @Before
- public void setUp() throws Throwable {
- List<String> grpcServers = new ArrayList<String>();
- grpcServers.add("127.0.0.1:2181");
- RemoteDownstreamConfig.Collector.GRPC_SERVERS = grpcServers;
- Config.Collector.GRPC_CHANNEL_CHECK_INTERVAL = 1;
-
- mockStatic(NettyChannelBuilder.class);
- when(NettyChannelBuilder.forAddress(anyString(),
anyInt())).thenReturn(mock);
-
when(mock.nameResolverFactory(any(NameResolver.Factory.class))).thenReturn(mock);
- when(mock.maxInboundMessageSize(anyInt())).thenReturn(mock);
- when(mock.usePlaintext(true)).thenReturn(mock);
- when(mock.build()).thenReturn(grpcServerRule.getChannel());
-
- grpcChannelManager.addChannelListener(listener);
- }
-
- @Test
- public void changeStatusToConnectedWithReportError() throws Throwable {
- grpcChannelManager.reportError(new
StatusRuntimeException(Status.ABORTED));
- grpcChannelManager.run();
-
- verify(listener, times(1)).statusChanged(GRPCChannelStatus.CONNECTED);
- assertThat(listener.status, is(GRPCChannelStatus.CONNECTED));
- }
-
- @Test
- public void changeStatusToDisConnectedWithReportError() throws Throwable {
- doThrow(new
RuntimeException()).when(mock).nameResolverFactory(any(NameResolver.Factory.class));
- grpcChannelManager.run();
-
- verify(listener, times(1)).statusChanged(GRPCChannelStatus.DISCONNECT);
- assertThat(listener.status, is(GRPCChannelStatus.DISCONNECT));
- }
-
- @Test
- public void reportErrorWithoutChangeStatus() throws Throwable {
- grpcChannelManager.run();
- grpcChannelManager.reportError(new RuntimeException());
- grpcChannelManager.run();
-
- verify(listener, times(1)).statusChanged(GRPCChannelStatus.CONNECTED);
- assertThat(listener.status, is(GRPCChannelStatus.CONNECTED));
- }
-
- private class MockGRPCChannelListener implements GRPCChannelListener {
- private GRPCChannelStatus status;
-
- @Override
- public void statusChanged(GRPCChannelStatus status) {
- this.status = status;
- }
- }
-
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/resources/config/agent.config
b/apm-sniffer/apm-agent-core/src/test/resources/config/agent.config
index c29a4d2..ebd5e5c 100644
--- a/apm-sniffer/apm-agent-core/src/test/resources/config/agent.config
+++ b/apm-sniffer/apm-agent-core/src/test/resources/config/agent.config
@@ -15,5 +15,5 @@
# limitations under the License.
agent.application_code = crmApp
-collector.servers = 127.0.0.1:8080
+collector.backend_service = 127.0.0.1:8080
logging.level=info
diff --git a/apm-sniffer/config/agent.config b/apm-sniffer/config/agent.config
index dcf6afa..fbf0c6b 100644
--- a/apm-sniffer/config/agent.config
+++ b/apm-sniffer/config/agent.config
@@ -38,22 +38,8 @@ agent.application_code=Your_ApplicationName
# Skywalking team may ask for these files in order to resolve compatible
problem.
# agent.is_open_debugging_class = true
-# Server addresses.
-# Primary address setting.
-#
-# Mapping to `naming/jetty/ip:port` in `config/application.yml` of Collector.
-# Examples:
-# Single collector:SERVERS="127.0.0.1:8080"
-# Collector cluster:SERVERS="10.2.45.126:8080,10.2.45.127:7600"
-collector.servers=127.0.0.1:10800
-
-# Collector agent_gRPC/grpc service addresses.
-# Secondary address setting, only effect when "collector.servers" is empty.
-# By using this, no discovery mechanism provided. The agent only uses these
addresses to uplink data.
-# Recommend to use this only when collector cluster IPs are unreachable from
agent side. Such as:
-# 1. Agent and collector cluster are in different VPC in Cloud.
-# 2. Agent uplinks data to collector cluster through Internet.
-# collector.direct_servers=www.skywalking.service.io
+# Backend service addresses.
+collector.backend_service=127.0.0.1:10800
# Logging level
logging.level=DEBUG