You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2020/02/07 14:26:09 UTC
[kylin] 14/44: KYLIN-3609 KYLIN-3409 KYLIN-4161
CubeSegmentStatisticsMap exist only on OLAPQuery.EnumeratorTypeEnum.OLAP
query type. (#942)
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 <39...@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, //