-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Provider agent register and trace stream by http json request.
- Loading branch information
1 parent
1936716
commit 8c3fbe4
Showing
11 changed files
with
263 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75 changes: 75 additions & 0 deletions
75
...a/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
/* | ||
* 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.Gson; | ||
import com.google.gson.JsonArray; | ||
import com.google.gson.JsonElement; | ||
import com.google.gson.JsonObject; | ||
import java.io.IOException; | ||
import javax.servlet.http.HttpServletRequest; | ||
import org.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; | ||
import org.skywalking.apm.collector.core.module.ModuleManager; | ||
import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; | ||
import org.skywalking.apm.collector.server.jetty.JettyHandler; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
/** | ||
* @author peng-yongsheng | ||
*/ | ||
public class ApplicationRegisterServletHandler extends JettyHandler { | ||
|
||
private final Logger logger = LoggerFactory.getLogger(ApplicationRegisterServletHandler.class); | ||
|
||
private final ApplicationIDService applicationIDService; | ||
private Gson gson = new Gson(); | ||
private static final String APPLICATION_CODE = "c"; | ||
private static final String APPLICATION_ID = "i"; | ||
|
||
public ApplicationRegisterServletHandler(ModuleManager moduleManager) { | ||
this.applicationIDService = new ApplicationIDService(moduleManager); | ||
} | ||
|
||
@Override public String pathSpec() { | ||
return "/application/register"; | ||
} | ||
|
||
@Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
@Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { | ||
JsonArray responseArray = new JsonArray(); | ||
try { | ||
JsonArray applicationCodes = gson.fromJson(req.getReader(), JsonArray.class); | ||
for (int i = 0; i < applicationCodes.size(); i++) { | ||
String applicationCode = applicationCodes.get(i).getAsString(); | ||
int applicationId = applicationIDService.getOrCreate(applicationCode); | ||
JsonObject mapping = new JsonObject(); | ||
mapping.addProperty(APPLICATION_CODE, applicationCode); | ||
mapping.addProperty(APPLICATION_ID, applicationId); | ||
responseArray.add(mapping); | ||
} | ||
} catch (IOException e) { | ||
logger.error(e.getMessage(), e); | ||
} | ||
return responseArray; | ||
} | ||
} |
78 changes: 78 additions & 0 deletions
78
...ava/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* | ||
* 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.Gson; | ||
import com.google.gson.JsonElement; | ||
import com.google.gson.JsonObject; | ||
import java.io.IOException; | ||
import javax.servlet.http.HttpServletRequest; | ||
import org.skywalking.apm.collector.agent.stream.worker.register.InstanceIDService; | ||
import org.skywalking.apm.collector.core.module.ModuleManager; | ||
import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; | ||
import org.skywalking.apm.collector.server.jetty.JettyHandler; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
/** | ||
* @author peng-yongsheng | ||
*/ | ||
public class InstanceDiscoveryServletHandler extends JettyHandler { | ||
|
||
private final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServletHandler.class); | ||
|
||
private final InstanceIDService instanceIDService; | ||
private Gson gson = new Gson(); | ||
|
||
private static final String APPLICATION_ID = "ai"; | ||
private static final String AGENT_UUID = "au"; | ||
private static final String REGISTER_TIME = "rt"; | ||
private static final String INSTANCE_ID = "ii"; | ||
private static final String OS_INFO = "oi"; | ||
|
||
public InstanceDiscoveryServletHandler(ModuleManager moduleManager) { | ||
this.instanceIDService = new InstanceIDService(moduleManager); | ||
} | ||
|
||
@Override public String pathSpec() { | ||
return "/instance/register"; | ||
} | ||
|
||
@Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
@Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { | ||
JsonObject responseJson = new JsonObject(); | ||
try { | ||
JsonObject instance = gson.fromJson(req.getReader(), JsonObject.class); | ||
int applicationId = instance.get(APPLICATION_ID).getAsInt(); | ||
String agentUUID = instance.get(AGENT_UUID).getAsString(); | ||
long registerTime = instance.get(REGISTER_TIME).getAsLong(); | ||
JsonObject osInfo = instance.get(OS_INFO).getAsJsonObject(); | ||
|
||
int instanceId = instanceIDService.getOrCreate(applicationId, agentUUID, registerTime, osInfo.toString()); | ||
responseJson.addProperty(APPLICATION_ID, applicationId); | ||
responseJson.addProperty(INSTANCE_ID, instanceId); | ||
} catch (IOException e) { | ||
logger.error(e.getMessage(), e); | ||
} | ||
return responseJson; | ||
} | ||
} |
82 changes: 82 additions & 0 deletions
82
.../org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
/* | ||
* 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.Gson; | ||
import com.google.gson.JsonArray; | ||
import com.google.gson.JsonElement; | ||
import com.google.gson.JsonObject; | ||
import java.io.IOException; | ||
import javax.servlet.http.HttpServletRequest; | ||
import org.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; | ||
import org.skywalking.apm.collector.core.module.ModuleManager; | ||
import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; | ||
import org.skywalking.apm.collector.server.jetty.JettyHandler; | ||
import org.slf4j.Logger; | ||
import org.slf4j.LoggerFactory; | ||
|
||
/** | ||
* @author peng-yongsheng | ||
*/ | ||
public class ServiceNameDiscoveryServiceHandler extends JettyHandler { | ||
|
||
private final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryServiceHandler.class); | ||
|
||
private final ServiceNameService serviceNameService; | ||
private Gson gson = new Gson(); | ||
|
||
private static final String APPLICATION_ID = "ai"; | ||
private static final String SERVICE_NAME = "sn"; | ||
private static final String SERVICE_ID = "si"; | ||
private static final String ELEMENT = "el"; | ||
|
||
public ServiceNameDiscoveryServiceHandler(ModuleManager moduleManager) { | ||
this.serviceNameService = new ServiceNameService(moduleManager); | ||
} | ||
|
||
@Override public String pathSpec() { | ||
return "/servicename/discovery"; | ||
} | ||
|
||
@Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { | ||
throw new UnsupportedOperationException(); | ||
} | ||
|
||
@Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { | ||
JsonArray responseArray = new JsonArray(); | ||
try { | ||
JsonArray services = gson.fromJson(req.getReader(), JsonArray.class); | ||
for (JsonElement service : services) { | ||
int applicationId = service.getAsJsonObject().get(APPLICATION_ID).getAsInt(); | ||
String serviceName = service.getAsJsonObject().get(SERVICE_NAME).getAsString(); | ||
|
||
int serviceId = serviceNameService.getOrCreate(applicationId, serviceName); | ||
if (serviceId != 0) { | ||
JsonObject responseJson = new JsonObject(); | ||
responseJson.addProperty(SERVICE_ID, serviceId); | ||
responseJson.add(ELEMENT, service); | ||
responseArray.add(responseJson); | ||
} | ||
} | ||
} catch (IOException e) { | ||
logger.error(e.getMessage(), e); | ||
} | ||
return responseArray; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.