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

nic pushed a commit to branch 3.0.x
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 8e2bc1f7ec0e85bad0f62e07c1320ad3b536e06d
Author: Alexander Sidorchuk <39062077+sido...@users.noreply.github.com>
AuthorDate: Mon Dec 23 16:17:06 2019 +0300

    KYLIN-3609 KYLIN-3409 KYLIN-4161 CubeSegmentStatisticsMap exist only on 
OLAPQuery.EnumeratorTypeEnum.OLAP query type. (#942)
---
 .../kylin/rest/metrics/QueryMetricsFacade.java     | 47 +++++++++++++---------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git 
a/server-base/src/main/java/org/apache/kylin/rest/metrics/QueryMetricsFacade.java
 
b/server-base/src/main/java/org/apache/kylin/rest/metrics/QueryMetricsFacade.java
index 497f477..226166d 100644
--- 
a/server-base/src/main/java/org/apache/kylin/rest/metrics/QueryMetricsFacade.java
+++ 
b/server-base/src/main/java/org/apache/kylin/rest/metrics/QueryMetricsFacade.java
@@ -36,6 +36,7 @@ import org.apache.kylin.metrics.lib.impl.TimedRecordEvent;
 import org.apache.kylin.metrics.property.QueryCubePropertyEnum;
 import org.apache.kylin.metrics.property.QueryPropertyEnum;
 import org.apache.kylin.metrics.property.QueryRPCPropertyEnum;
+import org.apache.kylin.query.enumerator.OLAPQuery;
 import org.apache.kylin.rest.request.SQLRequest;
 import org.apache.kylin.rest.response.SQLResponse;
 import org.slf4j.Logger;
@@ -121,26 +122,32 @@ public class QueryMetricsFacade {
                     sqlResponse.getThrowable());
 
             long totalStorageReturnCount = 0L;
-            for (Map<String, QueryContext.CubeSegmentStatistics> cubeEntry : 
contextEntry.getCubeSegmentStatisticsMap()
-                    .values()) {
-                for (QueryContext.CubeSegmentStatistics segmentEntry : 
cubeEntry.values()) {
-                    RecordEvent cubeSegmentMetricsEvent = new TimedRecordEvent(
-                            
KylinConfig.getInstanceFromEnv().getKylinMetricsSubjectQueryCube());
-
-                    setCubeWrapper(cubeSegmentMetricsEvent, //
-                            norm(sqlRequest.getProject()), 
segmentEntry.getCubeName(), segmentEntry.getSegmentName(),
-                            segmentEntry.getSourceCuboidId(), 
segmentEntry.getTargetCuboidId(),
-                            segmentEntry.getFilterMask());
-
-                    setCubeStats(cubeSegmentMetricsEvent, //
-                            segmentEntry.getCallCount(), 
segmentEntry.getCallTimeSum(), segmentEntry.getCallTimeMax(),
-                            segmentEntry.getStorageSkippedRows(), 
segmentEntry.getStorageScannedRows(),
-                            segmentEntry.getStorageReturnedRows(), 
segmentEntry.getStorageAggregatedRows(),
-                            segmentEntry.isIfSuccess(), 1.0 / 
cubeEntry.size());
-
-                    totalStorageReturnCount += 
segmentEntry.getStorageReturnedRows();
-                    //For update cube segment level related query metrics
-                    
MetricsManager.getInstance().update(cubeSegmentMetricsEvent);
+            if 
(contextEntry.getQueryType().equalsIgnoreCase(OLAPQuery.EnumeratorTypeEnum.OLAP.name()))
 {
+                for (Map<String, QueryContext.CubeSegmentStatistics> cubeEntry 
: contextEntry.getCubeSegmentStatisticsMap()
+                        .values()) {
+                    for (QueryContext.CubeSegmentStatistics segmentEntry : 
cubeEntry.values()) {
+                        RecordEvent cubeSegmentMetricsEvent = new 
TimedRecordEvent(
+                                
KylinConfig.getInstanceFromEnv().getKylinMetricsSubjectQueryCube());
+
+                        setCubeWrapper(cubeSegmentMetricsEvent, //
+                                norm(sqlRequest.getProject()), 
segmentEntry.getCubeName(), segmentEntry.getSegmentName(),
+                                segmentEntry.getSourceCuboidId(), 
segmentEntry.getTargetCuboidId(),
+                                segmentEntry.getFilterMask());
+
+                        setCubeStats(cubeSegmentMetricsEvent, //
+                                segmentEntry.getCallCount(), 
segmentEntry.getCallTimeSum(), segmentEntry.getCallTimeMax(),
+                                segmentEntry.getStorageSkippedRows(), 
segmentEntry.getStorageScannedRows(),
+                                segmentEntry.getStorageReturnedRows(), 
segmentEntry.getStorageAggregatedRows(),
+                                segmentEntry.isIfSuccess(), 1.0 / 
cubeEntry.size());
+
+                        totalStorageReturnCount += 
segmentEntry.getStorageReturnedRows();
+                        //For update cube segment level related query metrics
+                        
MetricsManager.getInstance().update(cubeSegmentMetricsEvent);
+                    }
+                }
+            } else {
+                if (!sqlResponse.getIsException()) {
+                    totalStorageReturnCount = sqlResponse.getResults().size();
                 }
             }
             setQueryStats(queryMetricsEvent, //

Reply via email to