This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch QueryIO in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit adbf6cabf320d6398a2df8885ed412cece411c1c Author: JackieTien97 <[email protected]> AuthorDate: Tue Nov 12 21:09:17 2024 +0800 Add Metrics --- .../fragment/FragmentInstanceContext.java | 19 ++ .../execution/fragment/QueryStatistics.java | 12 +- .../metric/SeriesScanCostMetricSet.java | 233 ++++++++++++++++++++- .../FragmentInstanceStatisticsDrawer.java | 64 ++++++ .../iotdb/commons/service/metric/enums/Metric.java | 3 + .../src/main/thrift/datanode.thrift | 13 ++ 6 files changed, 339 insertions(+), 5 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java index 7771358e9de..6d035e1dc3c 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/FragmentInstanceContext.java @@ -677,6 +677,13 @@ public class FragmentInstanceContext extends QueryContext { long durationTime = System.currentTimeMillis() - executionStartTime.get(); QueryRelatedResourceMetricSet.getInstance().updateFragmentInstanceTime(durationTime); + SeriesScanCostMetricSet.getInstance() + .recordBloomFilterMetrics( + getQueryStatistics().getLoadBloomFilterFromCacheCount().get(), + getQueryStatistics().getLoadBloomFilterFromDiskCount().get(), + getQueryStatistics().getLoadBloomFilterActualIOSize().get(), + getQueryStatistics().getLoadBloomFilterTime().get()); + SeriesScanCostMetricSet.getInstance() .recordNonAlignedTimeSeriesMetadataCount( getQueryStatistics().getLoadTimeSeriesMetadataDiskSeqCount().get(), @@ -702,6 +709,12 @@ public class FragmentInstanceContext extends QueryContext { getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemSeqTime().get(), getQueryStatistics().getLoadTimeSeriesMetadataAlignedMemUnSeqTime().get()); + SeriesScanCostMetricSet.getInstance() + .recordTimeSeriesMetadataMetrics( + getQueryStatistics().getLoadTimeSeriesMetadataFromCacheCount().get(), + getQueryStatistics().getLoadTimeSeriesMetadataFromDiskCount().get(), + getQueryStatistics().getLoadTimeSeriesMetadataActualIOSize().get()); + SeriesScanCostMetricSet.getInstance() .recordConstructChunkReadersCount( getQueryStatistics().getConstructAlignedChunkReadersMemCount().get(), @@ -715,6 +728,12 @@ public class FragmentInstanceContext extends QueryContext { getQueryStatistics().getConstructNonAlignedChunkReadersMemTime().get(), getQueryStatistics().getConstructNonAlignedChunkReadersDiskTime().get()); + SeriesScanCostMetricSet.getInstance() + .recordChunkMetrics( + getQueryStatistics().getLoadChunkFromCacheCount().get(), + getQueryStatistics().getLoadChunkFromDiskCount().get(), + getQueryStatistics().getLoadChunkActualIOSize().get()); + SeriesScanCostMetricSet.getInstance() .recordPageReadersDecompressCount( getQueryStatistics().getPageReadersDecodeAlignedMemCount().get(), diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java index 179cc446e00..b1ddfdbf4d7 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/fragment/QueryStatistics.java @@ -316,6 +316,16 @@ public class QueryStatistics { alignedTimeSeriesMetadataModificationCount.get(), alignedTimeSeriesMetadataModificationTime.get(), nonAlignedTimeSeriesMetadataModificationCount.get(), - nonAlignedTimeSeriesMetadataModificationTime.get()); + nonAlignedTimeSeriesMetadataModificationTime.get(), + loadBloomFilterFromCacheCount.get(), + loadBloomFilterFromDiskCount.get(), + loadBloomFilterActualIOSize.get(), + loadBloomFilterTime.get(), + loadTimeSeriesMetadataFromCacheCount.get(), + loadTimeSeriesMetadataFromDiskCount.get(), + loadTimeSeriesMetadataActualIOSize.get(), + loadChunkFromCacheCount.get(), + loadChunkFromDiskCount.get(), + loadChunkActualIOSize.get()); } } diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/SeriesScanCostMetricSet.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/SeriesScanCostMetricSet.java index a50381a75b3..ab6fb12f596 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/SeriesScanCostMetricSet.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/metric/SeriesScanCostMetricSet.java @@ -24,6 +24,7 @@ import org.apache.iotdb.commons.service.metric.enums.Tag; import org.apache.iotdb.metrics.AbstractMetricService; import org.apache.iotdb.metrics.impl.DoNothingMetricManager; import org.apache.iotdb.metrics.metricsets.IMetricSet; +import org.apache.iotdb.metrics.type.Counter; import org.apache.iotdb.metrics.type.Histogram; import org.apache.iotdb.metrics.type.Timer; import org.apache.iotdb.metrics.utils.MetricLevel; @@ -46,9 +47,103 @@ public class SeriesScanCostMetricSet implements IMetricSet { public static final String NON_ALIGNED = "non_aligned"; public static final String MEM = "mem"; public static final String DISK = "disk"; + public static final String MEM_AND_DISK = "mem_and_disk"; + public static final String SEQUENCE = "sequence"; public static final String UNSEQUENCE = "unsequence"; + public static final String SEQ_AND_UNSEQ = "seq_and_unseq"; + + public static final String BLOOM_FILTER = "bloom_filter"; + public static final String TIMESERIES_METADATA = "timeseries_metadata"; + public static final String CHUNK = "chunk"; + + private Histogram loadBloomFilterFromCacheCountHistogram = + DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + private Histogram loadBloomFilterFromDiskCountHistogram = + DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + private Counter loadBloomFilterActualIOSizeCounter = DoNothingMetricManager.DO_NOTHING_COUNTER; + private Timer loadBloomFilterTime = DoNothingMetricManager.DO_NOTHING_TIMER; + + public void recordBloomFilterMetrics( + long loadBloomFilterFromCacheCount, + long loadBloomFilterFromDiskCount, + long loadBloomFilterActualIOSize, + long loadBloomFilterNanoTime) { + loadBloomFilterFromCacheCountHistogram.update(loadBloomFilterFromCacheCount); + loadBloomFilterFromDiskCountHistogram.update(loadBloomFilterFromDiskCount); + loadBloomFilterActualIOSizeCounter.inc(loadBloomFilterActualIOSize); + loadBloomFilterTime.updateNanos(loadBloomFilterNanoTime); + } + + private void bindBloomFilter(AbstractMetricService metricService) { + loadBloomFilterFromCacheCountHistogram = + metricService.getOrCreateHistogram( + Metric.METRIC_QUERY_CACHE.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + BLOOM_FILTER, + Tag.FROM.toString(), + CACHE); + loadBloomFilterFromDiskCountHistogram = + metricService.getOrCreateHistogram( + Metric.METRIC_QUERY_CACHE.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + BLOOM_FILTER, + Tag.FROM.toString(), + DISK); + loadBloomFilterActualIOSizeCounter = + metricService.getOrCreateCounter( + Metric.QUERY_DISK_READ.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + BLOOM_FILTER); + loadBloomFilterTime = + metricService.getOrCreateTimer( + Metric.SERIES_SCAN_COST.toString(), + MetricLevel.IMPORTANT, + Tag.STAGE.toString(), + BLOOM_FILTER, + Tag.TYPE.toString(), + SEQ_AND_UNSEQ, + Tag.FROM.toString(), + MEM_AND_DISK); + } + + private void unbindBloomFilter(AbstractMetricService metricService) { + loadBloomFilterFromCacheCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + loadBloomFilterFromDiskCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + loadBloomFilterActualIOSizeCounter = DoNothingMetricManager.DO_NOTHING_COUNTER; + loadBloomFilterTime = DoNothingMetricManager.DO_NOTHING_TIMER; + + metricService.remove( + MetricType.HISTOGRAM, + Metric.METRIC_QUERY_CACHE.toString(), + Tag.TYPE.toString(), + BLOOM_FILTER, + Tag.FROM.toString(), + CACHE); + metricService.remove( + MetricType.HISTOGRAM, + Metric.METRIC_QUERY_CACHE.toString(), + Tag.TYPE.toString(), + BLOOM_FILTER, + Tag.FROM.toString(), + DISK); + metricService.remove( + MetricType.COUNTER, Metric.QUERY_DISK_READ.toString(), Tag.TYPE.toString(), BLOOM_FILTER); + metricService.remove( + MetricType.TIMER, + Metric.SERIES_SCAN_COST.toString(), + Tag.STAGE.toString(), + BLOOM_FILTER, + Tag.TYPE.toString(), + SEQ_AND_UNSEQ, + Tag.FROM.toString(), + MEM_AND_DISK); + } + private Histogram loadTimeSeriesMetadataDiskSeqHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; private Histogram loadTimeSeriesMetadataDiskUnSeqHistogram = @@ -72,10 +167,18 @@ public class SeriesScanCostMetricSet implements IMetricSet { private Timer loadTimeSeriesMetadataMemSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; private Timer loadTimeSeriesMetadataMemUnSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; - public Timer loadTimeSeriesMetadataAlignedDiskSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; - public Timer loadTimeSeriesMetadataAlignedDiskUnSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; - public Timer loadTimeSeriesMetadataAlignedMemSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; - public Timer loadTimeSeriesMetadataAlignedMemUnSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; + private Timer loadTimeSeriesMetadataAlignedDiskSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; + private Timer loadTimeSeriesMetadataAlignedDiskUnSeqTime = + DoNothingMetricManager.DO_NOTHING_TIMER; + private Timer loadTimeSeriesMetadataAlignedMemSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; + private Timer loadTimeSeriesMetadataAlignedMemUnSeqTime = DoNothingMetricManager.DO_NOTHING_TIMER; + + private Histogram loadTimeSeriesMetadataFromCacheCountHistogram = + DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + private Histogram loadTimeSeriesMetadataFromDiskCountHistogram = + DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + private Counter loadTimeSeriesMetadataActualIOSizeCounter = + DoNothingMetricManager.DO_NOTHING_COUNTER; public void recordNonAlignedTimeSeriesMetadataCount(long c1, long c2, long c3, long c4) { loadTimeSeriesMetadataDiskSeqHistogram.update(c1); @@ -105,6 +208,15 @@ public class SeriesScanCostMetricSet implements IMetricSet { loadTimeSeriesMetadataAlignedMemUnSeqTime.updateNanos(t4); } + public void recordTimeSeriesMetadataMetrics( + long loadTimeSeriesMetadataFromCacheCount, + long loadTimeSeriesMetadataFromDiskCount, + long loadTimeSeriesMetadataActualIOSize) { + loadTimeSeriesMetadataFromCacheCountHistogram.update(loadTimeSeriesMetadataFromCacheCount); + loadTimeSeriesMetadataFromDiskCountHistogram.update(loadTimeSeriesMetadataFromDiskCount); + loadTimeSeriesMetadataActualIOSizeCounter.inc(loadTimeSeriesMetadataActualIOSize); + } + private void bindTimeseriesMetadata(AbstractMetricService metricService) { loadTimeSeriesMetadataDiskSeqHistogram = metricService.getOrCreateHistogram( @@ -273,6 +385,57 @@ public class SeriesScanCostMetricSet implements IMetricSet { MEM); } + private void bindTimeSeriesMetadataCache(AbstractMetricService metricService) { + loadTimeSeriesMetadataFromCacheCountHistogram = + metricService.getOrCreateHistogram( + Metric.METRIC_QUERY_CACHE.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + TIMESERIES_METADATA, + Tag.FROM.toString(), + CACHE); + loadTimeSeriesMetadataFromDiskCountHistogram = + metricService.getOrCreateHistogram( + Metric.METRIC_QUERY_CACHE.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + TIMESERIES_METADATA, + Tag.FROM.toString(), + DISK); + loadTimeSeriesMetadataActualIOSizeCounter = + metricService.getOrCreateCounter( + Metric.QUERY_DISK_READ.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + TIMESERIES_METADATA); + } + + private void unbindTimeSeriesMetadataCache(AbstractMetricService metricService) { + loadTimeSeriesMetadataFromCacheCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + loadTimeSeriesMetadataFromDiskCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + loadTimeSeriesMetadataActualIOSizeCounter = DoNothingMetricManager.DO_NOTHING_COUNTER; + + metricService.remove( + MetricType.HISTOGRAM, + Metric.METRIC_QUERY_CACHE.toString(), + Tag.TYPE.toString(), + TIMESERIES_METADATA, + Tag.FROM.toString(), + CACHE); + metricService.remove( + MetricType.HISTOGRAM, + Metric.METRIC_QUERY_CACHE.toString(), + Tag.TYPE.toString(), + TIMESERIES_METADATA, + Tag.FROM.toString(), + DISK); + metricService.remove( + MetricType.COUNTER, + Metric.QUERY_DISK_READ.toString(), + Tag.TYPE.toString(), + TIMESERIES_METADATA); + } + private void unbindTimeseriesMetadata(AbstractMetricService metricService) { loadTimeSeriesMetadataDiskSeqHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; loadTimeSeriesMetadataDiskUnSeqHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; @@ -744,6 +907,10 @@ public class SeriesScanCostMetricSet implements IMetricSet { private Timer constructChunkReadersNonAlignedMemTimer = DoNothingMetricManager.DO_NOTHING_TIMER; private Timer constructChunkReadersNonAlignedDiskTimer = DoNothingMetricManager.DO_NOTHING_TIMER; + private Histogram loadChunkFromCacheCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + private Histogram loadChunkFromDiskCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + private Counter loadChunkActualIOSizeCounter = DoNothingMetricManager.DO_NOTHING_COUNTER; + public void recordConstructChunkReadersCount( long alignedMemCount, long alignedDiskCount, @@ -763,6 +930,58 @@ public class SeriesScanCostMetricSet implements IMetricSet { constructChunkReadersNonAlignedDiskTimer.updateNanos(nonAlignedDiskTime); } + public void recordChunkMetrics( + long loadChunkFromCacheCount, long loadChunkFromDiskCount, long loadChunkActualIOSize) { + loadChunkFromCacheCountHistogram.update(loadChunkFromCacheCount); + loadChunkFromDiskCountHistogram.update(loadChunkFromDiskCount); + loadChunkActualIOSizeCounter.inc(loadChunkActualIOSize); + } + + private void bindChunk(AbstractMetricService metricService) { + loadChunkFromCacheCountHistogram = + metricService.getOrCreateHistogram( + Metric.METRIC_QUERY_CACHE.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + CHUNK, + Tag.FROM.toString(), + CACHE); + loadChunkFromDiskCountHistogram = + metricService.getOrCreateHistogram( + Metric.METRIC_QUERY_CACHE.toString(), + MetricLevel.IMPORTANT, + Tag.TYPE.toString(), + CHUNK, + Tag.FROM.toString(), + DISK); + loadChunkActualIOSizeCounter = + metricService.getOrCreateCounter( + Metric.QUERY_DISK_READ.toString(), MetricLevel.IMPORTANT, Tag.TYPE.toString(), CHUNK); + } + + private void unbindChunk(AbstractMetricService metricService) { + loadChunkFromCacheCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + loadChunkFromDiskCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM; + loadChunkActualIOSizeCounter = DoNothingMetricManager.DO_NOTHING_COUNTER; + + metricService.remove( + MetricType.HISTOGRAM, + Metric.METRIC_QUERY_CACHE.toString(), + Tag.TYPE.toString(), + CHUNK, + Tag.FROM.toString(), + CACHE); + metricService.remove( + MetricType.HISTOGRAM, + Metric.METRIC_QUERY_CACHE.toString(), + Tag.TYPE.toString(), + CHUNK, + Tag.FROM.toString(), + DISK); + metricService.remove( + MetricType.COUNTER, Metric.QUERY_DISK_READ.toString(), Tag.TYPE.toString(), CHUNK); + } + private void bindConstructChunkReader(AbstractMetricService metricService) { constructChunkReadersAlignedMemHistogram = metricService.getOrCreateHistogram( @@ -1249,8 +1468,10 @@ public class SeriesScanCostMetricSet implements IMetricSet { @Override public void bindTo(AbstractMetricService metricService) { + bindBloomFilter(metricService); bindTimeseriesMetadata(metricService); bindAlignedTimeseriesMetadata(metricService); + bindTimeSeriesMetadataCache(metricService); bindReadTimeseriesMetadata(metricService); bindTimeseriesMetadataModification(metricService); bindLoadChunkMetadataList(metricService); @@ -1258,6 +1479,7 @@ public class SeriesScanCostMetricSet implements IMetricSet { bindChunkMetadataFilter(metricService); bindConstructChunkReader(metricService); bindReadChunk(metricService); + bindChunk(metricService); bindInitChunkReader(metricService); bindTsBlockFromPageReader(metricService); bindBuildTsBlockFromMergeReader(metricService); @@ -1265,7 +1487,9 @@ public class SeriesScanCostMetricSet implements IMetricSet { @Override public void unbindFrom(AbstractMetricService metricService) { + unbindBloomFilter(metricService); unbindTimeseriesMetadata(metricService); + unbindTimeSeriesMetadataCache(metricService); unbindReadTimeseriesMetadata(metricService); unbindTimeseriesMetadataModification(metricService); unbindLoadChunkMetadataList(metricService); @@ -1273,6 +1497,7 @@ public class SeriesScanCostMetricSet implements IMetricSet { unbindChunkMetadataFilter(metricService); unbindConstructChunkReader(metricService); unbindReadChunk(metricService); + unbindChunk(metricService); unbindInitChunkReader(metricService); unbindTsBlockFromPageReader(metricService); unbindBuildTsBlockFromMergeReader(metricService); diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java index bb40301506a..0141a86e627 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java @@ -152,6 +152,11 @@ public class FragmentInstanceStatisticsDrawer { } } + private void addLineWithoutValueCheck( + List<StatisticLine> singleFragmentInstanceArea, int level, String valueName, long value) { + addLine(singleFragmentInstanceArea, level, valueName + String.format(": %s", value)); + } + private void addLineWithValueCheck( List<StatisticLine> singleFragmentInstanceArea, int level, String valueName, double value) { if (Math.abs(value) > EPSILON) { @@ -159,6 +164,11 @@ public class FragmentInstanceStatisticsDrawer { } } + private void addLineWithoutValueCheck( + List<StatisticLine> singleFragmentInstanceArea, int level, String valueName, double value) { + addLine(singleFragmentInstanceArea, level, valueName + String.format(": %.3f", value)); + } + private void addBlankLine(List<StatisticLine> singleFragmentInstanceArea) { addLine(singleFragmentInstanceArea, 0, " "); } @@ -167,6 +177,27 @@ public class FragmentInstanceStatisticsDrawer { TQueryStatistics queryStatistics, List<StatisticLine> singleFragmentInstanceArea) { addLine(singleFragmentInstanceArea, 1, "Query Statistics:"); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadBloomFilterFromCacheCount", + queryStatistics.loadBloomFilterFromCacheCount); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadBloomFilterFromDiskCount", + queryStatistics.loadBloomFilterFromDiskCount); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadBloomFilterActualIOSize", + queryStatistics.loadBloomFilterActualIOSize); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadBloomFilterTime", + queryStatistics.loadBloomFilterTime * NS_TO_MS_FACTOR); + addLineWithValueCheck( singleFragmentInstanceArea, 2, @@ -248,6 +279,23 @@ public class FragmentInstanceStatisticsDrawer { 2, "loadTimeSeriesMetadataAlignedMemUnSeqTime", queryStatistics.loadTimeSeriesMetadataAlignedMemUnSeqTime * NS_TO_MS_FACTOR); + + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadTimeSeriesMetadataFromCacheCount", + queryStatistics.loadTimeSeriesMetadataFromCacheCount); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadTimeSeriesMetadataFromDiskCount", + queryStatistics.loadTimeSeriesMetadataFromDiskCount); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadTimeSeriesMetadataActualIOSize", + queryStatistics.loadTimeSeriesMetadataActualIOSize); + addLineWithValueCheck( singleFragmentInstanceArea, 2, @@ -311,6 +359,22 @@ public class FragmentInstanceStatisticsDrawer { "constructAlignedChunkReadersMemTime", queryStatistics.constructAlignedChunkReadersMemTime * NS_TO_MS_FACTOR); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadChunkFromCacheCount", + queryStatistics.loadChunkFromCacheCount); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadChunkFromDiskCount", + queryStatistics.loadChunkFromDiskCount); + addLineWithoutValueCheck( + singleFragmentInstanceArea, + 2, + "loadChunkActualIOSize", + queryStatistics.loadChunkActualIOSize); + addLineWithValueCheck( singleFragmentInstanceArea, 2, diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java index 39bf5f9289c..5812fac36f2 100644 --- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java +++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java @@ -107,6 +107,7 @@ public enum Metric { SERIES_SCAN_COST("series_scan_cost"), MEMORY_USAGE_MONITOR("memory_usage_monitor"), METRIC_LOAD_TIME_SERIES_METADATA("metric_load_time_series_metadata"), + METRIC_QUERY_CACHE("metric_query_cache"), QUERY_METADATA_COST("query_metadata_cost"), DISPATCHER("dispatcher"), QUERY_EXECUTION("query_execution"), @@ -120,6 +121,8 @@ public enum Metric { FRAGMENT_INSTANCE_MANAGER("fragment_instance_manager"), MEMORY_POOL("memory_pool"), LOCAL_EXECUTION_PLANNER("local_execution_planner"), + QUERY_DISK_READ("query_disk_read"), + // file related FILE_SIZE("file_size"), FILE_COUNT("file_count"), diff --git a/iotdb-protocol/thrift-datanode/src/main/thrift/datanode.thrift b/iotdb-protocol/thrift-datanode/src/main/thrift/datanode.thrift index 09f779a28dc..24261566d5f 100644 --- a/iotdb-protocol/thrift-datanode/src/main/thrift/datanode.thrift +++ b/iotdb-protocol/thrift-datanode/src/main/thrift/datanode.thrift @@ -678,6 +678,19 @@ struct TQueryStatistics { 35: i64 alignedTimeSeriesMetadataModificationTime 36: i64 nonAlignedTimeSeriesMetadataModificationCount 37: i64 nonAlignedTimeSeriesMetadataModificationTime + + 38: i64 loadBloomFilterFromCacheCount + 39: i64 loadBloomFilterFromDiskCount + 40: i64 loadBloomFilterActualIOSize + 41: i64 loadBloomFilterTime + + 42: i64 loadTimeSeriesMetadataFromCacheCount + 43: i64 loadTimeSeriesMetadataFromDiskCount + 44: i64 loadTimeSeriesMetadataActualIOSize + + 45: i64 loadChunkFromCacheCount + 46: i64 loadChunkFromDiskCount + 47: i64 loadChunkActualIOSize }
