This is an automated email from the ASF dual-hosted git repository.

nju_yaho pushed a commit to tag ebay-3.1.0-release-20200701
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 40c61c29395707de5b5dcbffdff2892abfc359b8
Author: Zhong, Yanghong <nju_y...@apache.org>
AuthorDate: Fri Jun 19 14:45:02 2020 +0800

    KYLIN-4583 Collect cpu time for coprocessor thread
---
 .../hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java     | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
index 93d8de4..e39e352 100644
--- 
a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
+++ 
b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
@@ -21,6 +21,7 @@ package 
org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.lang.management.ManagementFactory;
+import java.lang.management.ThreadMXBean;
 import java.net.InetAddress;
 import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
@@ -242,6 +243,8 @@ public class CubeVisitService extends 
CubeVisitProtos.CubeVisitService implement
 
         CubeVisitProtos.CubeVisitResponse.ErrorInfo errorInfo = null;
 
+        ThreadMXBean tdMXBean = ManagementFactory.getThreadMXBean();
+
         // if user change kylin.properties on kylin server, need to manually 
redeploy coprocessor jar to update KylinConfig of Env.
         KylinConfig kylinConfig = 
KylinConfig.createKylinConfig(request.getKylinProperties());
 
@@ -274,6 +277,7 @@ public class CubeVisitService extends 
CubeVisitProtos.CubeVisitService implement
 
             appendProfileInfo(sb, "start latency: " + (serviceStartTime - 
scanReq.getStartTime()), serviceStartTime);
 
+            final long serviceStartCpuTime = 
tdMXBean.getCurrentThreadCpuTime();
             final List<InnerScannerAsIterator> cellListsForeachRawScan = 
Lists.newArrayList();
 
             for (RawScan hbaseRawScan : hbaseRawScans) {
@@ -386,6 +390,11 @@ public class CubeVisitService extends 
CubeVisitProtos.CubeVisitService implement
             logger.info("Total scanned {} rows and {} bytes", 
cellListIterator.getTotalScannedRowCount(),
                     cellListIterator.getTotalScannedRowBytes());
 
+            long cpuTime = (tdMXBean.getCurrentThreadCpuTime() - 
serviceStartCpuTime) / 1000000L;
+            sb.append("cpuTime@");
+            sb.append(cpuTime);
+            sb.append(",");
+
             //outputStream.close() is not necessary
             byte[] compressedAllRows;
             if (errorInfo == null) {

Reply via email to