Loading apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/IInstanceDAO.java +3 −0 Original line number Diff line number Diff line package org.skywalking.apm.collector.ui.dao; import java.util.List; import org.skywalking.apm.collector.storage.table.instance.Instance; /** * @author pengys5 Loading @@ -12,6 +13,8 @@ public interface IInstanceDAO { List<Application> getApplications(long time); Instance getInstance(int instanceId); class Application { private final int applicationId; private final long count; Loading apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/InstanceEsDAO.java +20 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ package org.skywalking.apm.collector.ui.dao; import java.util.LinkedList; import java.util.List; import org.elasticsearch.action.get.GetRequestBuilder; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; Loading @@ -16,6 +18,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortMode; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.skywalking.apm.collector.storage.table.instance.Instance; import org.skywalking.apm.collector.storage.table.register.InstanceTable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading Loading @@ -93,4 +96,21 @@ public class InstanceEsDAO extends EsDAO implements IInstanceDAO { } return applications; } @Override public Instance getInstance(int instanceId) { logger.debug("get instance info, instance id: {}", instanceId); GetRequestBuilder requestBuilder = getClient().prepareGet(InstanceTable.TABLE, String.valueOf(instanceId)); GetResponse getResponse = requestBuilder.get(); if (getResponse.isExists()) { Instance instance = new Instance(); instance.setId(String.valueOf(instanceId)); instance.setApplicationId(((Number)getResponse.getSource().get(InstanceTable.COLUMN_APPLICATION_ID)).intValue()); instance.setAgentUUID((String)getResponse.getSource().get(InstanceTable.COLUMN_AGENT_UUID)); instance.setRegisterTime(((Number)getResponse.getSource().get(InstanceTable.COLUMN_REGISTER_TIME)).longValue()); instance.setHeartBeatTime(((Number)getResponse.getSource().get(InstanceTable.COLUMN_HEARTBEAT_TIME)).longValue()); instance.setOsInfo((String)getResponse.getSource().get(InstanceTable.COLUMN_OS_INFO)); return instance; } return null; } } apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/InstanceH2DAO.java +5 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package org.skywalking.apm.collector.ui.dao; import java.util.List; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; import org.skywalking.apm.collector.storage.table.instance.Instance; /** * @author pengys5 Loading @@ -18,4 +19,8 @@ public class InstanceH2DAO extends H2DAO implements IInstanceDAO { @Override public List<Application> getApplications(long time) { return null; } @Override public Instance getInstance(int instanceId) { return null; } } apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/instancemetric/InstanceMetricGetHandler.java 0 → 100644 +49 −0 Original line number Diff line number Diff line package org.skywalking.apm.collector.ui.jetty.handler.instancemetric; import com.google.gson.JsonElement; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; import org.skywalking.apm.collector.ui.service.InstanceHealthService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class InstanceMetricGetHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(InstanceMetricGetHandler.class); @Override public String pathSpec() { return "/instance/jvm/instanceId"; } private InstanceHealthService service = new InstanceHealthService(); @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { String timestampStr = req.getParameter("timestamp"); String applicationIdStr = req.getParameter("applicationId"); logger.debug("instance health get timestamp: {}", timestampStr); long timestamp; try { timestamp = Long.parseLong(timestampStr); } catch (NumberFormatException e) { throw new ArgumentsParseException("timestamp must be long"); } int applicationId; try { applicationId = Integer.parseInt(applicationIdStr); } catch (NumberFormatException e) { throw new ArgumentsParseException("application id must be integer"); } return service.getInstances(timestamp, applicationId); } @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { throw new UnsupportedOperationException(); } } apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/instancemetric/InstanceOsInfoGetHandler.java 0 → 100644 +41 −0 Original line number Diff line number Diff line package org.skywalking.apm.collector.ui.jetty.handler.instancemetric; import com.google.gson.JsonElement; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; import org.skywalking.apm.collector.ui.service.InstanceJVMService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class InstanceOsInfoGetHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(InstanceOsInfoGetHandler.class); @Override public String pathSpec() { return "/instance/os/instanceId"; } private InstanceJVMService service = new InstanceJVMService(); @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { String instanceIdStr = req.getParameter("instanceId"); logger.debug("instance os info get, instance id: {}", instanceIdStr); int instanceId; try { instanceId = Integer.parseInt(instanceIdStr); } catch (NumberFormatException e) { throw new ArgumentsParseException("instance id must be integer"); } return service.getInstanceOsInfo(instanceId); } @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { throw new UnsupportedOperationException(); } } Loading
apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/IInstanceDAO.java +3 −0 Original line number Diff line number Diff line package org.skywalking.apm.collector.ui.dao; import java.util.List; import org.skywalking.apm.collector.storage.table.instance.Instance; /** * @author pengys5 Loading @@ -12,6 +13,8 @@ public interface IInstanceDAO { List<Application> getApplications(long time); Instance getInstance(int instanceId); class Application { private final int applicationId; private final long count; Loading
apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/InstanceEsDAO.java +20 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ package org.skywalking.apm.collector.ui.dao; import java.util.LinkedList; import java.util.List; import org.elasticsearch.action.get.GetRequestBuilder; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; Loading @@ -16,6 +18,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortMode; import org.skywalking.apm.collector.storage.elasticsearch.dao.EsDAO; import org.skywalking.apm.collector.storage.table.instance.Instance; import org.skywalking.apm.collector.storage.table.register.InstanceTable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Loading Loading @@ -93,4 +96,21 @@ public class InstanceEsDAO extends EsDAO implements IInstanceDAO { } return applications; } @Override public Instance getInstance(int instanceId) { logger.debug("get instance info, instance id: {}", instanceId); GetRequestBuilder requestBuilder = getClient().prepareGet(InstanceTable.TABLE, String.valueOf(instanceId)); GetResponse getResponse = requestBuilder.get(); if (getResponse.isExists()) { Instance instance = new Instance(); instance.setId(String.valueOf(instanceId)); instance.setApplicationId(((Number)getResponse.getSource().get(InstanceTable.COLUMN_APPLICATION_ID)).intValue()); instance.setAgentUUID((String)getResponse.getSource().get(InstanceTable.COLUMN_AGENT_UUID)); instance.setRegisterTime(((Number)getResponse.getSource().get(InstanceTable.COLUMN_REGISTER_TIME)).longValue()); instance.setHeartBeatTime(((Number)getResponse.getSource().get(InstanceTable.COLUMN_HEARTBEAT_TIME)).longValue()); instance.setOsInfo((String)getResponse.getSource().get(InstanceTable.COLUMN_OS_INFO)); return instance; } return null; } }
apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/dao/InstanceH2DAO.java +5 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package org.skywalking.apm.collector.ui.dao; import java.util.List; import org.skywalking.apm.collector.storage.h2.dao.H2DAO; import org.skywalking.apm.collector.storage.table.instance.Instance; /** * @author pengys5 Loading @@ -18,4 +19,8 @@ public class InstanceH2DAO extends H2DAO implements IInstanceDAO { @Override public List<Application> getApplications(long time) { return null; } @Override public Instance getInstance(int instanceId) { return null; } }
apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/instancemetric/InstanceMetricGetHandler.java 0 → 100644 +49 −0 Original line number Diff line number Diff line package org.skywalking.apm.collector.ui.jetty.handler.instancemetric; import com.google.gson.JsonElement; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; import org.skywalking.apm.collector.ui.service.InstanceHealthService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class InstanceMetricGetHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(InstanceMetricGetHandler.class); @Override public String pathSpec() { return "/instance/jvm/instanceId"; } private InstanceHealthService service = new InstanceHealthService(); @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { String timestampStr = req.getParameter("timestamp"); String applicationIdStr = req.getParameter("applicationId"); logger.debug("instance health get timestamp: {}", timestampStr); long timestamp; try { timestamp = Long.parseLong(timestampStr); } catch (NumberFormatException e) { throw new ArgumentsParseException("timestamp must be long"); } int applicationId; try { applicationId = Integer.parseInt(applicationIdStr); } catch (NumberFormatException e) { throw new ArgumentsParseException("application id must be integer"); } return service.getInstances(timestamp, applicationId); } @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { throw new UnsupportedOperationException(); } }
apm-collector/apm-collector-ui/src/main/java/org/skywalking/apm/collector/ui/jetty/handler/instancemetric/InstanceOsInfoGetHandler.java 0 → 100644 +41 −0 Original line number Diff line number Diff line package org.skywalking.apm.collector.ui.jetty.handler.instancemetric; import com.google.gson.JsonElement; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; import org.skywalking.apm.collector.ui.service.InstanceJVMService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author pengys5 */ public class InstanceOsInfoGetHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(InstanceOsInfoGetHandler.class); @Override public String pathSpec() { return "/instance/os/instanceId"; } private InstanceJVMService service = new InstanceJVMService(); @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { String instanceIdStr = req.getParameter("instanceId"); logger.debug("instance os info get, instance id: {}", instanceIdStr); int instanceId; try { instanceId = Integer.parseInt(instanceIdStr); } catch (NumberFormatException e) { throw new ArgumentsParseException("instance id must be integer"); } return service.getInstanceOsInfo(instanceId); } @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException { throw new UnsupportedOperationException(); } }