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, //