From d021c6786a135d77861791007b2f1c94eee2e9fa Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Tue, 2 Apr 2013 06:29:44 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[NOBTS]=20monit?= =?UTF-8?q?or=20service=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-web/trunk@1392 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../hippo/web/controller/MainController.java | 38 ++++++++++++++----- .../com/nhn/hippo/web/dao/AgentInfoDao.java | 2 +- .../web/dao/hbase/HbaseAgentInfoDao.java | 5 ++- .../nhn/hippo/web/service/MonitorService.java | 10 +++++ .../hippo/web/service/MonitorServiceImpl.java | 28 ++++++++++++++ src/main/webapp/WEB-INF/views/agentstatus.jsp | 7 ++++ 6 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/nhn/hippo/web/service/MonitorService.java create mode 100644 src/main/java/com/nhn/hippo/web/service/MonitorServiceImpl.java create mode 100644 src/main/webapp/WEB-INF/views/agentstatus.jsp diff --git a/src/main/java/com/nhn/hippo/web/controller/MainController.java b/src/main/java/com/nhn/hippo/web/controller/MainController.java index 325f76f9e..ea97204c4 100644 --- a/src/main/java/com/nhn/hippo/web/controller/MainController.java +++ b/src/main/java/com/nhn/hippo/web/controller/MainController.java @@ -9,9 +9,12 @@ import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import com.nhn.hippo.web.service.FlowChartService; +import com.nhn.hippo.web.service.MonitorService; import com.nhn.hippo.web.vo.Application; +import com.profiler.common.bo.AgentInfoBo; /** * @@ -20,18 +23,33 @@ import com.nhn.hippo.web.vo.Application; @Controller public class MainController { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); + private final Logger logger = LoggerFactory.getLogger(this.getClass()); - @Autowired - private FlowChartService flow; + @Autowired + private FlowChartService flow; - @RequestMapping(value = "/applications", method = RequestMethod.GET) - public String flow(Model model) { - List applications = flow.selectAllApplicationNames(); - model.addAttribute("applications", applications); + @Autowired + private MonitorService monitor; - logger.debug("Applications, {}", applications); + @RequestMapping(value = "/applications", method = RequestMethod.GET) + public String flow(Model model) { + List applications = flow.selectAllApplicationNames(); + model.addAttribute("applications", applications); - return "applications"; - } + logger.debug("Applications, {}", applications); + + return "applications"; + } + + @RequestMapping(value = "/agentStatus", method = RequestMethod.GET) + public String agentStatus(Model model, @RequestParam("agentId") String agentId) { + AgentInfoBo agentInfo = monitor.getAgentInfo(agentId); + + long gap = System.currentTimeMillis() - agentInfo.getTimestamp(); + + model.addAttribute("gap", gap); + model.addAttribute("agentinfo", agentInfo); + + return "agentstatus"; + } } \ No newline at end of file diff --git a/src/main/java/com/nhn/hippo/web/dao/AgentInfoDao.java b/src/main/java/com/nhn/hippo/web/dao/AgentInfoDao.java index d32158e8d..40aead13f 100644 --- a/src/main/java/com/nhn/hippo/web/dao/AgentInfoDao.java +++ b/src/main/java/com/nhn/hippo/web/dao/AgentInfoDao.java @@ -7,5 +7,5 @@ import com.profiler.common.bo.AgentInfoBo; */ public interface AgentInfoDao { - AgentInfoBo findAgentInfoBeforeStartTime(String agentInfo, long currentTime); + AgentInfoBo findAgentInfoBeforeStartTime(String agentId, long currentTime); } diff --git a/src/main/java/com/nhn/hippo/web/dao/hbase/HbaseAgentInfoDao.java b/src/main/java/com/nhn/hippo/web/dao/hbase/HbaseAgentInfoDao.java index 995daa9ae..bd61a9051 100644 --- a/src/main/java/com/nhn/hippo/web/dao/hbase/HbaseAgentInfoDao.java +++ b/src/main/java/com/nhn/hippo/web/dao/hbase/HbaseAgentInfoDao.java @@ -53,12 +53,15 @@ public class HbaseAgentInfoDao implements AgentInfoDao { agentInfoBo.setAgentId(agentId); agentInfoBo.setTimestamp(startTime); agentInfoBo.readValue(value); - + logger.debug("agent:{} startTime find {}", agentId, startTime); return agentInfoBo; } } + + logger.warn("agentInfo not found. agentId={}, time={}", agentId, currentTime); + return null; } }); diff --git a/src/main/java/com/nhn/hippo/web/service/MonitorService.java b/src/main/java/com/nhn/hippo/web/service/MonitorService.java new file mode 100644 index 000000000..c147e3fc8 --- /dev/null +++ b/src/main/java/com/nhn/hippo/web/service/MonitorService.java @@ -0,0 +1,10 @@ +package com.nhn.hippo.web.service; + +import com.profiler.common.bo.AgentInfoBo; + +/** + * @author netspider + */ +public interface MonitorService { + public AgentInfoBo getAgentInfo(String agentId); +} diff --git a/src/main/java/com/nhn/hippo/web/service/MonitorServiceImpl.java b/src/main/java/com/nhn/hippo/web/service/MonitorServiceImpl.java new file mode 100644 index 000000000..55ae36f3e --- /dev/null +++ b/src/main/java/com/nhn/hippo/web/service/MonitorServiceImpl.java @@ -0,0 +1,28 @@ +package com.nhn.hippo.web.service; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nhn.hippo.web.dao.AgentInfoDao; +import com.profiler.common.bo.AgentInfoBo; + +/** + * + * @author netspider + */ +@Service +public class MonitorServiceImpl implements MonitorService { + + private Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private AgentInfoDao agentInfoDao; + + public AgentInfoBo getAgentInfo(String agentId) { + AgentInfoBo agentInfo = agentInfoDao.findAgentInfoBeforeStartTime(agentId, System.currentTimeMillis()); + logger.debug("Found agentInfo agentId={}, agentInfo={}", agentId, agentInfo); + return agentInfo; + } +} diff --git a/src/main/webapp/WEB-INF/views/agentstatus.jsp b/src/main/webapp/WEB-INF/views/agentstatus.jsp new file mode 100644 index 000000000..de8909ad5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/agentstatus.jsp @@ -0,0 +1,7 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +{ + "gap" : ${gap}, + "lastping" : ${agentinfo.timestamp} +} \ No newline at end of file