You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ma...@apache.org on 2015/05/15 07:22:19 UTC

[50/52] [abbrv] incubator-kylin git commit: KYLIN-197

KYLIN-197


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/be3899c3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/be3899c3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/be3899c3

Branch: refs/heads/0.8.0
Commit: be3899c3ccbd913146b3e42cf301d31a26df7f61
Parents: 5fc9d9b
Author: jiazhong <ji...@ebay.com>
Authored: Tue Apr 14 16:55:58 2015 +0800
Committer: honma <ho...@ebay.com>
Committed: Fri May 15 11:39:30 2015 +0800

----------------------------------------------------------------------
 .../rest/controller/PerformanceController.java  |  20 ++++
 .../kylin/rest/filter/RequestLoggingFilter.java |  30 +++++
 .../apache/kylin/rest/model/Performance.java    | 120 +++++++++++++++++++
 .../kylin/rest/service/PerformanceService.java  |  10 ++
 .../kylin/rest/util/PerformanceMonitorTask.java |  20 ++++
 .../src/main/resources/applicationContext.xml   |   3 +
 server/src/main/resources/log4j.properties      |  10 ++
 server/src/main/webapp/WEB-INF/web.xml          |  29 ++++-
 8 files changed, 241 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java b/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
new file mode 100644
index 0000000..1735165
--- /dev/null
+++ b/server/src/main/java/org/apache/kylin/rest/controller/PerformanceController.java
@@ -0,0 +1,20 @@
+package org.apache.kylin.rest.controller;
+
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Created by jiazhong on 2015/4/13.
+ */
+
+@Controller
+@RequestMapping(value = "/performance")
+public class PerformanceController extends BasicController {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/java/org/apache/kylin/rest/filter/RequestLoggingFilter.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/filter/RequestLoggingFilter.java b/server/src/main/java/org/apache/kylin/rest/filter/RequestLoggingFilter.java
new file mode 100644
index 0000000..d58287d
--- /dev/null
+++ b/server/src/main/java/org/apache/kylin/rest/filter/RequestLoggingFilter.java
@@ -0,0 +1,30 @@
+package org.apache.kylin.rest.filter;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.web.filter.AbstractRequestLoggingFilter;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Created by jiazhong on 2015/4/14.
+ */
+public class RequestLoggingFilter extends AbstractRequestLoggingFilter {
+
+    private static final Logger logger = LoggerFactory.getLogger(RequestLoggingFilter.class);
+
+    @Override
+    protected void beforeRequest(HttpServletRequest request, String message) {
+//        String user = SecurityContextHolder.getContext().getAuthentication().getName();
+//        logger.info("USER:"+user+"requestURI:"+request.getRequestURI());
+    }
+
+    @Override
+    protected void afterRequest(HttpServletRequest request, String message)
+    {
+        logger.info(message);
+//        logger.info("["+"uri="+request.getRequestURI()+",user="+request.getRemoteUser()+request.get);
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/java/org/apache/kylin/rest/model/Performance.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/model/Performance.java b/server/src/main/java/org/apache/kylin/rest/model/Performance.java
index 33071b2..35d843a 100644
--- a/server/src/main/java/org/apache/kylin/rest/model/Performance.java
+++ b/server/src/main/java/org/apache/kylin/rest/model/Performance.java
@@ -4,4 +4,124 @@ package org.apache.kylin.rest.model;
  * Created by jiazhong on 2015/4/13.
  */
 public class Performance {
+
+    public int query_total;
+
+    public double query_qps;
+
+    public double query_latency;
+
+    public int job_total;
+
+    public double job_average;
+
+    public int job_mr_waiting;
+
+    public int cube_total;
+
+    public int cube_active;
+
+    public double cube_storage;
+
+    public int source_total;
+
+    public int source_records;
+
+    public double source_storage;
+
+    public int getQuery_total() {
+        return query_total;
+    }
+
+    public void setQuery_total(int query_total) {
+        this.query_total = query_total;
+    }
+
+    public double getQuery_qps() {
+        return query_qps;
+    }
+
+    public void setQuery_qps(double query_qps) {
+        this.query_qps = query_qps;
+    }
+
+    public double getQuery_latency() {
+        return query_latency;
+    }
+
+    public void setQuery_latency(double query_latency) {
+        this.query_latency = query_latency;
+    }
+
+    public int getJob_total() {
+        return job_total;
+    }
+
+    public void setJob_total(int job_total) {
+        this.job_total = job_total;
+    }
+
+    public double getJob_average() {
+        return job_average;
+    }
+
+    public void setJob_average(double job_average) {
+        this.job_average = job_average;
+    }
+
+    public int getJob_mr_waiting() {
+        return job_mr_waiting;
+    }
+
+    public void setJob_mr_waiting(int job_mr_waiting) {
+        this.job_mr_waiting = job_mr_waiting;
+    }
+
+    public int getCube_total() {
+        return cube_total;
+    }
+
+    public void setCube_total(int cube_total) {
+        this.cube_total = cube_total;
+    }
+
+    public int getCube_active() {
+        return cube_active;
+    }
+
+    public void setCube_active(int cube_active) {
+        this.cube_active = cube_active;
+    }
+
+    public double getCube_storage() {
+        return cube_storage;
+    }
+
+    public void setCube_storage(double cube_storage) {
+        this.cube_storage = cube_storage;
+    }
+
+    public int getSource_total() {
+        return source_total;
+    }
+
+    public void setSource_total(int source_total) {
+        this.source_total = source_total;
+    }
+
+    public int getSource_records() {
+        return source_records;
+    }
+
+    public void setSource_records(int source_records) {
+        this.source_records = source_records;
+    }
+
+    public double getSource_storage() {
+        return source_storage;
+    }
+
+    public void setSource_storage(double source_storage) {
+        this.source_storage = source_storage;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/java/org/apache/kylin/rest/service/PerformanceService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/PerformanceService.java b/server/src/main/java/org/apache/kylin/rest/service/PerformanceService.java
index cfae02a..2de7e5c 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/PerformanceService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/PerformanceService.java
@@ -1,7 +1,17 @@
 package org.apache.kylin.rest.service;
 
+import org.springframework.stereotype.Component;
+
 /**
  * Created by jiazhong on 2015/4/13.
  */
+
+@Component("performanceService")
 public class PerformanceService {
+
+
+    public void parseQueryInfo(){
+
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/java/org/apache/kylin/rest/util/PerformanceMonitorTask.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/util/PerformanceMonitorTask.java b/server/src/main/java/org/apache/kylin/rest/util/PerformanceMonitorTask.java
index 1f777b0..146bee7 100644
--- a/server/src/main/java/org/apache/kylin/rest/util/PerformanceMonitorTask.java
+++ b/server/src/main/java/org/apache/kylin/rest/util/PerformanceMonitorTask.java
@@ -1,7 +1,27 @@
 package org.apache.kylin.rest.util;
 
+import org.apache.kylin.rest.service.PerformanceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
 /**
  * Created by jiazhong on 2015/4/13.
  */
+
 public class PerformanceMonitorTask {
+
+    @Autowired
+    private PerformanceService performanceService;
+    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
+
+    @Scheduled(fixedRate = 3600000)
+    public void reportCurrentTime() {
+        System.out.println("The time is now " + dateFormat.format(new Date()));
+    }
+
+
+    public void setPerformanceService(PerformanceService performanceService) {this.performanceService = performanceService;}
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/resources/applicationContext.xml
----------------------------------------------------------------------
diff --git a/server/src/main/resources/applicationContext.xml b/server/src/main/resources/applicationContext.xml
index 75c69df..9d3594c 100644
--- a/server/src/main/resources/applicationContext.xml
+++ b/server/src/main/resources/applicationContext.xml
@@ -109,6 +109,9 @@
 	</bean>
 	<!-- Rest service binding -->
 
+	<task:annotation-driven />
+	<bean id="performanceMonitorTask" class="org.apache.kylin.rest.util.PerformanceMonitorTask"></bean>
+
 	<!-- Cache Config -->
 	<cache:annotation-driven />
 	<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/server/src/main/resources/log4j.properties b/server/src/main/resources/log4j.properties
index c52992d..fc06073 100644
--- a/server/src/main/resources/log4j.properties
+++ b/server/src/main/resources/log4j.properties
@@ -9,6 +9,13 @@ log4j.appender.file.File=${catalina.home}/logs/kylin.log
 log4j.appender.file.layout.ConversionPattern=[%t]:[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p][%l] - %m%n
 log4j.appender.file.Append=true
 
+
+log4j.appender.request=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.request.layout=org.apache.log4j.PatternLayout
+log4j.appender.request.File=${catalina.home}/logs/kylin_request.log
+log4j.appender.request.layout.ConversionPattern=[%t]:[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p][%l] - %m%n
+log4j.appender.request.Append=true
+
 log4j.appender.query=org.apache.log4j.DailyRollingFileAppender
 log4j.appender.query.layout=org.apache.log4j.PatternLayout
 log4j.appender.query.File=${catalina.home}/logs/kylin_query.log
@@ -36,3 +43,6 @@ log4j.logger.org.apache.kylin.storage=DEBUG, query
 log4j.logger.org.apache.kylin.rest.controller.JobController=DEBUG, job
 log4j.logger.org.apache.kylin.rest.service.JobService=DEBUG, job
 log4j.logger.org.apache.kylin.job=DEBUG, job
+
+#api config
+log4j.logger.org.apache.kylin.rest.filter.RequestLoggingFilter=DEBUG, request
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/be3899c3/server/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/server/src/main/webapp/WEB-INF/web.xml b/server/src/main/webapp/WEB-INF/web.xml
index 61874ed..e6b4c82 100644
--- a/server/src/main/webapp/WEB-INF/web.xml
+++ b/server/src/main/webapp/WEB-INF/web.xml
@@ -92,7 +92,34 @@
 	    <filter-name>instrumentedFilter</filter-name>
 	    <url-pattern>/*</url-pattern>
 	</filter-mapping>
-	
+
+    <!--request log filter-->
+    <filter>
+        <filter-name>requestLoggingFilter</filter-name>
+        <filter-class>org.apache.kylin.rest.filter.RequestLoggingFilter</filter-class>
+        <init-param>
+            <param-name>includeClientInfo</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        <init-param>
+            <param-name>includePayload</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        <init-param>
+            <param-name>maxPayloadLength</param-name>
+            <param-value>10240</param-value>
+        </init-param>
+        <init-param>
+            <param-name>includeQueryString</param-name>
+            <param-value>true</param-value>
+        </init-param>
+    </filter>
+
+    <filter-mapping>
+        <filter-name>requestLoggingFilter</filter-name>
+        <servlet-name>kylin</servlet-name>
+    </filter-mapping>
+
     <servlet>
         <servlet-name>kylin</servlet-name>
         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>