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>