From 4bede5e1b74f2101e1b3c1e8936aac07db2871bf Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Fri, 21 Sep 2012 05:20:55 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[NOBTS]=20fix?= =?UTF-8?q?=20flow=20iterator.?= 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@683 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../WEB-INF/lib/hippo-commons-0.0.1.jar | Bin 143936 -> 158462 bytes WebContent/WEB-INF/views/flow.jsp | 36 +++++++++ .../web/controller/FlowChartController.java | 14 +++- .../hippo/web/service/FlowChartService.java | 5 +- .../web/service/FlowChartServiceImpl.java | 72 ++++++++++++++++-- src/main/resources/hbase.properties | 4 + src/main/resources/servlet-context.xml | 24 +++--- 7 files changed, 138 insertions(+), 17 deletions(-) create mode 100644 WebContent/WEB-INF/views/flow.jsp create mode 100644 src/main/resources/hbase.properties diff --git a/WebContent/WEB-INF/lib/hippo-commons-0.0.1.jar b/WebContent/WEB-INF/lib/hippo-commons-0.0.1.jar index dd23c05619d5628fda390201d78e898143d81299..1c1ee9440fe510f6ff249a6f4164ac1a246af2b1 100644 GIT binary patch delta 19320 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 delta 5342 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 diff --git a/WebContent/WEB-INF/views/flow.jsp b/WebContent/WEB-INF/views/flow.jsp new file mode 100644 index 000000000..27b02b624 --- /dev/null +++ b/WebContent/WEB-INF/views/flow.jsp @@ -0,0 +1,36 @@ +<%@ page language="java" contentType="text/html; charset=EUC-KR" + pageEncoding="EUC-KR"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +{ + "nodes": + [ + {"name":"Apache"}, + {"name":"BLOC_1"}, + {"name":"BLOC_2"}, + {"name":"BLOC_3"}, + {"name":"Arcus11211"}, + {"name":"Arcus11212"}, + {"name":"Arcus11213"} + ], + + "links": + [ + + {"source":0,"target":1,"value":11}, + {"source":0,"target":2,"value":31}, + {"source":0,"target":3,"value":11}, + + {"source":1,"target":4,"value":11}, + {"source":1,"target":5,"value":41}, + {"source":1,"target":6,"value":11}, + + {"source":2,"target":4,"value":111}, + {"source":2,"target":5,"value":114}, + {"source":2,"target":6,"value":11}, + + {"source":3,"target":4,"value":114}, + {"source":3,"target":5,"value":11}, + {"source":3,"target":6,"value":81} + + ] +} \ No newline at end of file diff --git a/src/main/java/com/nhn/hippo/web/controller/FlowChartController.java b/src/main/java/com/nhn/hippo/web/controller/FlowChartController.java index 33e8e453a..37bb88827 100644 --- a/src/main/java/com/nhn/hippo/web/controller/FlowChartController.java +++ b/src/main/java/com/nhn/hippo/web/controller/FlowChartController.java @@ -1,5 +1,8 @@ package com.nhn.hippo.web.controller; +import java.util.Iterator; +import java.util.Map; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -15,8 +18,15 @@ public class FlowChartController { @Autowired private FlowChartService flow; - @RequestMapping(value = "/flow", method = RequestMethod.POST) - public String arcus(Model model, @RequestParam("id") int id) { + @RequestMapping(value = "/flow", method = RequestMethod.GET) + public String arcus(Model model, @RequestParam("host") String[] hosts, @RequestParam("from") long from, @RequestParam("to") long to) { + + Iterator> iterator = flow.selectTraces(hosts, from, to); + + while (iterator.hasNext()) { + System.out.println(iterator.next()); + } + return "flow"; } } \ No newline at end of file diff --git a/src/main/java/com/nhn/hippo/web/service/FlowChartService.java b/src/main/java/com/nhn/hippo/web/service/FlowChartService.java index 1313de2f5..63dc4bd0c 100755 --- a/src/main/java/com/nhn/hippo/web/service/FlowChartService.java +++ b/src/main/java/com/nhn/hippo/web/service/FlowChartService.java @@ -1,5 +1,8 @@ package com.nhn.hippo.web.service; -public interface FlowChartService { +import java.util.Iterator; +import java.util.Map; +public interface FlowChartService { + public Iterator> selectTraces(String[] agentIds, long from, long to); } diff --git a/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java b/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java index 6b7deb669..02887b846 100755 --- a/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java +++ b/src/main/java/com/nhn/hippo/web/service/FlowChartServiceImpl.java @@ -1,14 +1,76 @@ package com.nhn.hippo.web.service; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.ArrayUtils; +import org.apache.hadoop.hbase.util.Bytes; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; + +import com.profiler.common.hbase.HBaseClient; +import com.profiler.common.hbase.HBaseQuery; +import com.profiler.common.hbase.HBaseQuery.HbaseColumn; +import com.profiler.common.hbase.HBaseTables; @Service -@Transactional public class FlowChartServiceImpl implements FlowChartService { - // @Autowired - // @Qualifier("memberDaoJdbc") - // MemberDao dao; + @Autowired + @Qualifier("hbaseClient") + HBaseClient client; + public Iterator> selectTraces(String[] agentIds, long from, long to) { + List column = new ArrayList(); + column.add(new HbaseColumn("Trace", "ID")); + + final List>> list = new ArrayList>>(); + + for (String agentId : agentIds) { + byte[] s = ArrayUtils.addAll(Bytes.toBytes(agentId), Bytes.toBytes(from)); + byte[] e = ArrayUtils.addAll(Bytes.toBytes(agentId), Bytes.toBytes(to)); + + HBaseQuery query = new HBaseQuery(HBaseTables.TRACE_INDEX, s, e, column); + Iterator> result = client.getHBaseData(query); + list.add(result); + } + + return new Iterator>() { + int pos = 0; + + @Override + public boolean hasNext() { + if (list.isEmpty()) + return false; + + while (pos < list.size()) { + if (list.get(pos).hasNext()) { + break; + } else { + pos++; + + if (pos >= list.size()) { + return false; + } else { + continue; + } + } + } + return true; + } + + @Override + public Map next() { + return list.get(pos).next(); + } + + @Override + public void remove() { + throw new RuntimeException("NOT SUPPORTED METHOD"); + } + }; + } } diff --git a/src/main/resources/hbase.properties b/src/main/resources/hbase.properties new file mode 100644 index 000000000..d3ca50aba --- /dev/null +++ b/src/main/resources/hbase.properties @@ -0,0 +1,4 @@ +hbase.client.host=localhost +hbase.client.port=2181 +#hbase.client.host=10.25.131.38 +#hbase.client.port=2181 \ No newline at end of file diff --git a/src/main/resources/servlet-context.xml b/src/main/resources/servlet-context.xml index bf28e82d0..f09a48c57 100644 --- a/src/main/resources/servlet-context.xml +++ b/src/main/resources/servlet-context.xml @@ -1,9 +1,11 @@ - - - - + - - + + + + \ No newline at end of file