diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java b/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java index 449afddd3e09204a8398984ff181480c985719a3..456c1cd26bb5fb3f4a3eb5dcccdf8c9ad3f8e4d6 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java +++ b/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java @@ -23,8 +23,6 @@ import com.google.gson.JsonObject; import io.grpc.stub.StreamObserver; import org.skywalking.apm.collector.agent.stream.worker.register.InstanceIDService; import org.skywalking.apm.collector.core.module.ModuleManager; -import org.skywalking.apm.collector.core.module.ModuleNotFoundException; -import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; import org.skywalking.apm.collector.core.util.TimeBucketUtils; import org.skywalking.apm.collector.server.grpc.GRPCHandler; import org.skywalking.apm.network.proto.ApplicationInstance; @@ -52,12 +50,7 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp @Override public void register(ApplicationInstance request, StreamObserver responseObserver) { long timeBucket = TimeBucketUtils.INSTANCE.getSecondTimeBucket(request.getRegisterTime()); - int instanceId = 0; - try { - instanceId = instanceIDService.getOrCreate(request.getApplicationId(), request.getAgentUUID(), timeBucket, buildOsInfo(request.getOsinfo())); - } catch (ModuleNotFoundException | ServiceNotProvidedException e) { - logger.error(e.getMessage(), e); - } + int instanceId = instanceIDService.getOrCreate(request.getApplicationId(), request.getAgentUUID(), timeBucket, buildOsInfo(request.getOsinfo())); ApplicationInstanceMapping.Builder builder = ApplicationInstanceMapping.newBuilder(); builder.setApplicationId(request.getApplicationId()); builder.setApplicationInstanceId(instanceId); @@ -68,11 +61,7 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp @Override public void registerRecover(ApplicationInstanceRecover request, StreamObserver responseObserver) { long timeBucket = TimeBucketUtils.INSTANCE.getSecondTimeBucket(request.getRegisterTime()); - try { - instanceIDService.recover(request.getApplicationInstanceId(), request.getApplicationId(), timeBucket, buildOsInfo(request.getOsinfo())); - } catch (ModuleNotFoundException | ServiceNotProvidedException e) { - logger.error(e.getMessage(), e); - } + instanceIDService.recover(request.getApplicationInstanceId(), request.getApplicationId(), timeBucket, buildOsInfo(request.getOsinfo())); responseObserver.onNext(Downstream.newBuilder().build()); responseObserver.onCompleted(); } diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java new file mode 100644 index 0000000000000000000000000000000000000000..cd534328599c1c6ff539efe1af2d0984713b18c8 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java @@ -0,0 +1,33 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.jetty.handler; + +import com.google.gson.JsonElement; +import java.io.IOException; + +/** + * @author peng-yongsheng + */ +public class ApplicationRegisterPost { + + public void send(String jsonFile) throws IOException { + JsonElement application = JsonFileReader.INSTANCE.read(jsonFile); + HttpClientTools.INSTANCE.post("http://localhost:12800/application/register", application.toString()); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java new file mode 100644 index 0000000000000000000000000000000000000000..e97b3857abe18757c4efe1591bdf5981f8d9e15c --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java @@ -0,0 +1,95 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.jetty.handler; + +import java.io.IOException; +import java.net.URI; +import java.util.List; +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public enum HttpClientTools { + INSTANCE; + + private final Logger logger = LoggerFactory.getLogger(HttpClientTools.class); + + public String get(String url, List params) throws IOException { + CloseableHttpClient httpClient = HttpClients.createDefault(); + try { + HttpGet httpget = new HttpGet(url); + String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(params)); + httpget.setURI(new URI(httpget.getURI().toString() + "?" + paramStr)); + logger.debug("executing get request {}", httpget.getURI()); + + try (CloseableHttpResponse response = httpClient.execute(httpget)) { + HttpEntity entity = response.getEntity(); + if (entity != null) { + return EntityUtils.toString(entity); + } + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } finally { + try { + httpClient.close(); + } catch (IOException e) { + logger.error(e.getMessage(), e); + } + } + return null; + } + + public String post(String url, String data) throws IOException { + CloseableHttpClient httpClient = HttpClients.createDefault(); + try { + HttpPost httppost = new HttpPost(url); + httppost.setEntity(new StringEntity(data, Consts.UTF_8)); + logger.debug("executing post request {}", httppost.getURI()); + try (CloseableHttpResponse response = httpClient.execute(httppost)) { + HttpEntity entity = response.getEntity(); + if (entity != null) { + return EntityUtils.toString(entity); + } + } + } catch (Exception e) { + logger.error(e.getMessage(), e); + } finally { + try { + httpClient.close(); + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + return null; + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java new file mode 100644 index 0000000000000000000000000000000000000000..12ef75ddafe9633526271e555beba0ef73f731f5 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java @@ -0,0 +1,33 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.jetty.handler; + +import com.google.gson.JsonElement; +import java.io.IOException; + +/** + * @author peng-yongsheng + */ +public class InstanceRegisterPost { + + public void send(String jsonFile) throws IOException { + JsonElement instance = JsonFileReader.INSTANCE.read(jsonFile); + HttpClientTools.INSTANCE.post("http://localhost:12800/instance/register", instance.toString()); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java new file mode 100644 index 0000000000000000000000000000000000000000..0353c8214a4276a9c8a2a5fb794a243810532794 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java @@ -0,0 +1,42 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.jetty.handler; + +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import java.io.FileNotFoundException; +import java.io.FileReader; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public enum JsonFileReader { + INSTANCE; + + private final Logger logger = LoggerFactory.getLogger(JsonFileReader.class); + + public JsonElement read(String fileName) throws FileNotFoundException { + String path = this.getClass().getClassLoader().getResource(fileName).getFile(); + logger.debug("path: {}", path); + JsonParser jsonParser = new JsonParser(); + return jsonParser.parse(new FileReader(path)); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java new file mode 100644 index 0000000000000000000000000000000000000000..29b3efc315d6c5ec8b659b616734076862638467 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java @@ -0,0 +1,47 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.jetty.handler; + +import com.google.gson.JsonElement; +import java.io.IOException; + +/** + * @author peng-yongsheng + */ +public class SegmentPost { + + public static void main(String[] args) throws IOException { + ApplicationRegisterPost applicationRegisterPost = new ApplicationRegisterPost(); + applicationRegisterPost.send("json/application-register-consumer.json"); + applicationRegisterPost.send("json/application-register-provider.json"); + + InstanceRegisterPost instanceRegisterPost = new InstanceRegisterPost(); + instanceRegisterPost.send("json/instance-register-consumer.json"); + instanceRegisterPost.send("json/instance-register-provider.json"); + + ServiceNameRegisterPost serviceNameRegisterPost = new ServiceNameRegisterPost(); + serviceNameRegisterPost.send("json/servicename-register-consumer.json"); + serviceNameRegisterPost.send("json/servicename-register-provider.json"); + + JsonElement provider = JsonFileReader.INSTANCE.read("json/dubbox-provider.json"); + HttpClientTools.INSTANCE.post("http://localhost:12800/segments", provider.toString()); + JsonElement consumer = JsonFileReader.INSTANCE.read("json/dubbox-consumer.json"); + HttpClientTools.INSTANCE.post("http://localhost:12800/segments", consumer.toString()); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java new file mode 100644 index 0000000000000000000000000000000000000000..6e6cde68d23197e2e5f58ea0a6dc4fca3f19ab63 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java @@ -0,0 +1,33 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.jetty.handler; + +import com.google.gson.JsonElement; +import java.io.IOException; + +/** + * @author peng-yongsheng + */ +public class ServiceNameRegisterPost { + + public void send(String jsonFile) throws IOException { + JsonElement instance = JsonFileReader.INSTANCE.read(jsonFile); + HttpClientTools.INSTANCE.post("http://localhost:12800/servicename/discovery", instance.toString()); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json new file mode 100644 index 0000000000000000000000000000000000000000..b7f2436357dc70996fcf365ebb2c41e21ad5165b --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json @@ -0,0 +1,3 @@ +[ + "dubbox-consumer" +] \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json new file mode 100644 index 0000000000000000000000000000000000000000..08a2c156bcd2c6d35764ffe02b30b1a47a9929d6 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json @@ -0,0 +1,3 @@ +[ + "dubbox-provider" +] \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json new file mode 100644 index 0000000000000000000000000000000000000000..453dce3ebea0106f8fba0b1d099478f155f8c059 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json @@ -0,0 +1,71 @@ +[ + { + "gt": [ + [ + 230150, + 185809, + 24040000 + ] + ], + "sg": { + "ts": [ + 230150, + 185809, + 24040000 + ], + "ai": -1, + "ii": 1, + "rs": [], + "ss": [ + { + "si": 1, + "tv": 1, + "lv": 1, + "ps": 0, + "st": 1501858094526, + "et": 1501858097004, + "ci": 3, + "cn": "", + "oi": 0, + "on": "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()", + "pi": 0, + "pn": "172.25.0.4:20880", + "ie": false, + "to": [ + { + "k": "url", + "v": "rest://172.25.0.4:20880/org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()" + } + ], + "lo": [] + }, + { + "si": 0, + "tv": 0, + "lv": 2, + "ps": -1, + "st": 1501858092409, + "et": 1501858097033, + "ci": 1, + "cn": "", + "oi": 0, + "on": "/dubbox-case/case/dubbox-rest", + "pi": 0, + "pn": "", + "ie": false, + "to": [ + { + "k": "url", + "v": "http://localhost:18080/dubbox-case/case/dubbox-rest" + }, + { + "k": "http.method", + "v": "GET" + } + ], + "lo": [] + } + ] + } + } +] \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json new file mode 100644 index 0000000000000000000000000000000000000000..709f57760d3f4f7d7b4903fb37a7d936ec5518cd --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json @@ -0,0 +1,67 @@ +[ + { + "gt": [ + [ + 230150, + 185809, + 24040000 + ] + ], + "sg": { + "ts": [ + 137150, + 185809, + 48780000 + ], + "ai": 2, + "ii": 2, + "rs": [ + { + "ts": [ + 230150, + 185809, + 24040000 + ], + "ai": -1, + "si": 1, + "vi": 0, + "vn": "/dubbox-case/case/dubbox-rest", + "ni": 0, + "nn": "172.25.0.4:20880", + "ea": 2, + "ei": 0, + "en": "/dubbox-case/case/dubbox-rest", + "rn": 0 + } + ], + "ss": [ + { + "si": 0, + "tv": 0, + "lv": 2, + "ps": -1, + "st": 1501858094726, + "et": 1501858096804, + "ci": 3, + "cn": "", + "oi": 0, + "on": "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()", + "pi": 0, + "pn": "", + "ie": false, + "to": [ + { + "k": "url", + "v": "rest://172.25.0.4:20880/org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()" + }, + { + "k": "http.method", + "v": "GET" + } + ], + "lo": [] + } + ] + } + } +] \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json new file mode 100644 index 0000000000000000000000000000000000000000..139dc57438b9a9c9a9e2ffe60a072c664543099d --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json @@ -0,0 +1,9 @@ +{ + "ai": -1, + "au": "dubbox-consumer", + "rt": 1501858094526, + "oi": { + "any_name": "any_value", + "any_name1": "any_value1" + } +} \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json new file mode 100644 index 0000000000000000000000000000000000000000..976928f9ca3609158bd755e10f012ceaa717cfdb --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json @@ -0,0 +1,9 @@ +{ + "ai": 2, + "au": "dubbox-provider", + "rt": 1501858094526, + "oi": { + "any_name": "any_value", + "any_name1": "any_value1" + } +} \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json new file mode 100644 index 0000000000000000000000000000000000000000..9cc919204c1c1647e90512eb4c7803aeb7eb8826 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json @@ -0,0 +1,6 @@ +[ + { + "ai": -1, + "sn": "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()" + } +] \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json new file mode 100644 index 0000000000000000000000000000000000000000..0e9a961532e672304bf6ce352865cceb3fa16210 --- /dev/null +++ b/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json @@ -0,0 +1,6 @@ +[ + { + "ai": 2, + "sn": "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()" + } +] \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java b/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java index 9b6e5aa55ad2836b1b4e9722035ac212dbc4e021..e0ea1401a51f796763ae8bafb311b150ba1d4f55 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java +++ b/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java @@ -18,9 +18,9 @@ package org.skywalking.apm.collector.agent.stream.parser.standardization; +import org.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; import org.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; import org.skywalking.apm.collector.cache.CacheModule; -import org.skywalking.apm.collector.cache.service.ApplicationCacheService; import org.skywalking.apm.collector.cache.service.InstanceCacheService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.Const; @@ -36,9 +36,9 @@ public class ReferenceIdExchanger implements IdExchanger { private final Logger logger = LoggerFactory.getLogger(ReferenceIdExchanger.class); private static ReferenceIdExchanger EXCHANGER; - private ServiceNameService serviceNameService; + private final ServiceNameService serviceNameService; + private final ApplicationIDService applicationIDService; private final InstanceCacheService instanceCacheService; - private final ApplicationCacheService applicationCacheService; public static ReferenceIdExchanger getInstance(ModuleManager moduleManager) { if (EXCHANGER == null) { @@ -48,9 +48,9 @@ public class ReferenceIdExchanger implements IdExchanger { } private ReferenceIdExchanger(ModuleManager moduleManager) { + applicationIDService = new ApplicationIDService(moduleManager); serviceNameService = new ServiceNameService(moduleManager); instanceCacheService = moduleManager.find(CacheModule.NAME).getService(InstanceCacheService.class); - applicationCacheService = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class); } @Override public boolean exchange(ReferenceDecorator standardBuilder, int applicationId) { @@ -58,6 +58,10 @@ public class ReferenceIdExchanger implements IdExchanger { int entryServiceId = serviceNameService.getOrCreate(instanceCacheService.get(standardBuilder.getEntryApplicationInstanceId()), standardBuilder.getEntryServiceName()); if (entryServiceId == 0) { + if (logger.isDebugEnabled()) { + int entryApplicationId = instanceCacheService.get(standardBuilder.getEntryApplicationInstanceId()); + logger.debug("entry service name: {} from application id: {} exchange failed", standardBuilder.getEntryServiceName(), entryApplicationId); + } return false; } else { standardBuilder.toBuilder(); @@ -70,6 +74,10 @@ public class ReferenceIdExchanger implements IdExchanger { int parentServiceId = serviceNameService.getOrCreate(instanceCacheService.get(standardBuilder.getParentApplicationInstanceId()), standardBuilder.getParentServiceName()); if (parentServiceId == 0) { + if (logger.isDebugEnabled()) { + int parentApplicationId = instanceCacheService.get(standardBuilder.getParentApplicationInstanceId()); + logger.debug("parent service name: {} from application id: {} exchange failed", standardBuilder.getParentServiceName(), parentApplicationId); + } return false; } else { standardBuilder.toBuilder(); @@ -79,8 +87,11 @@ public class ReferenceIdExchanger implements IdExchanger { } if (standardBuilder.getNetworkAddressId() == 0 && StringUtils.isNotEmpty(standardBuilder.getNetworkAddress())) { - int networkAddressId = applicationCacheService.get(standardBuilder.getNetworkAddress()); + int networkAddressId = applicationIDService.getOrCreate(standardBuilder.getNetworkAddress()); if (networkAddressId == 0) { + if (logger.isDebugEnabled()) { + logger.debug("network address: {} from application id: {} exchange failed", standardBuilder.getNetworkAddress(), applicationId); + } return false; } else { standardBuilder.toBuilder(); diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java b/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java index 08afe3066180eae96f3a4006dc739fd5c550cbc6..68f7ca52f6faddb16e8801dc1c6b2e378b608b4c 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java +++ b/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java @@ -18,9 +18,8 @@ package org.skywalking.apm.collector.agent.stream.parser.standardization; +import org.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; import org.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; -import org.skywalking.apm.collector.cache.CacheModule; -import org.skywalking.apm.collector.cache.service.ApplicationCacheService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.Const; import org.skywalking.apm.collector.core.util.StringUtils; @@ -35,8 +34,8 @@ public class SpanIdExchanger implements IdExchanger { private final Logger logger = LoggerFactory.getLogger(SpanIdExchanger.class); private static SpanIdExchanger EXCHANGER; + private final ApplicationIDService applicationIDService; private final ServiceNameService serviceNameService; - private final ApplicationCacheService applicationCacheService; public static SpanIdExchanger getInstance(ModuleManager moduleManager) { if (EXCHANGER == null) { @@ -45,15 +44,16 @@ public class SpanIdExchanger implements IdExchanger { return EXCHANGER; } - public SpanIdExchanger(ModuleManager moduleManager) { - this.applicationCacheService = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class); + private SpanIdExchanger(ModuleManager moduleManager) { + this.applicationIDService = new ApplicationIDService(moduleManager); this.serviceNameService = new ServiceNameService(moduleManager); } @Override public boolean exchange(SpanDecorator standardBuilder, int applicationId) { if (standardBuilder.getPeerId() == 0 && StringUtils.isNotEmpty(standardBuilder.getPeer())) { - int peerId = applicationCacheService.get(standardBuilder.getPeer()); + int peerId = applicationIDService.getOrCreate(standardBuilder.getPeer()); if (peerId == 0) { + logger.debug("peer: {} in application: {} exchange failed", standardBuilder.getPeer(), applicationId); return false; } else { standardBuilder.toBuilder(); @@ -66,6 +66,7 @@ public class SpanIdExchanger implements IdExchanger { int operationNameId = serviceNameService.getOrCreate(applicationId, standardBuilder.getOperationName()); if (operationNameId == 0) { + logger.debug("service name: {} from application id: {} exchange failed", standardBuilder.getOperationName(), applicationId); return false; } else { standardBuilder.toBuilder(); diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml index 275e975bbabf6e510f1e19cca6b77c11497e282e..254f84d23c7f3fb8999e19cdc278866b24b10297 100644 --- a/apm-collector/apm-collector-boot/src/main/resources/application.yml +++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml @@ -23,10 +23,10 @@ ui: host: localhost port: 12800 context_path: / -#storage: -# elasticsearch: -# cluster_name: CollectorDBCluster -# cluster_transport_sniffer: true -# cluster_nodes: localhost:9300 -# index_shards_number: 2 -# index_replicas_number: 0 \ No newline at end of file +storage: + elasticsearch: + cluster_name: CollectorDBCluster + cluster_transport_sniffer: true + cluster_nodes: localhost:9300 + index_shards_number: 2 + index_replicas_number: 0 \ No newline at end of file diff --git a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java index 8788acc6a2d38006a1150d938dfe0f18a04be755..3778504f3bb27bf9196c7c1dd9db62d190a6bf7f 100644 --- a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java +++ b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/src/main/java/org/skywalking/apm/collector/cluster/standalone/ClusterModuleStandaloneProvider.java @@ -26,6 +26,8 @@ import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; import org.skywalking.apm.collector.cluster.standalone.service.StandaloneModuleListenerService; import org.skywalking.apm.collector.cluster.standalone.service.StandaloneModuleRegisterService; +import org.skywalking.apm.collector.core.CollectorException; +import org.skywalking.apm.collector.core.UnexpectedException; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; @@ -75,7 +77,11 @@ public class ClusterModuleStandaloneProvider extends ModuleProvider { } @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { - + try { + dataMonitor.start(); + } catch (CollectorException e) { + throw new UnexpectedException(e.getMessage()); + } } @Override public String[] requiredModules() {