Skip to content

Commit b91845a

Browse files
committed
add new metrics skippedPages / processedPages
1 parent 6853c22 commit b91845a

12 files changed

Lines changed: 165 additions & 1 deletion

File tree

backends-velox/src/main/java/org/apache/gluten/metrics/Metrics.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public class Metrics implements IMetrics {
4949
public long[] processedSplits;
5050
public long[] skippedStrides;
5151
public long[] processedStrides;
52+
public long[] skippedPages;
53+
public long[] processedPages;
5254
public long[] remainingFilterTime;
5355
public long[] ioWaitTime;
5456
public long[] storageReadBytes;
@@ -103,6 +105,8 @@ public Metrics(
103105
long[] processedSplits,
104106
long[] skippedStrides,
105107
long[] processedStrides,
108+
long[] skippedPages,
109+
long[] processedPages,
106110
long[] remainingFilterTime,
107111
long[] ioWaitTime,
108112
long[] storageReadBytes,
@@ -149,6 +153,8 @@ public Metrics(
149153
this.processedSplits = processedSplits;
150154
this.skippedStrides = skippedStrides;
151155
this.processedStrides = processedStrides;
156+
this.skippedPages = skippedPages;
157+
this.processedPages = processedPages;
152158
this.remainingFilterTime = remainingFilterTime;
153159
this.ioWaitTime = ioWaitTime;
154160
this.storageReadBytes = storageReadBytes;
@@ -203,6 +209,8 @@ public OperatorMetrics getOperatorMetrics(int index) {
203209
processedSplits[index],
204210
skippedStrides[index],
205211
processedStrides[index],
212+
skippedPages[index],
213+
processedPages[index],
206214
remainingFilterTime[index],
207215
ioWaitTime[index],
208216
storageReadBytes[index],

backends-velox/src/main/java/org/apache/gluten/metrics/OperatorMetrics.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public class OperatorMetrics implements IOperatorMetrics {
4747
public long processedSplits;
4848
public long skippedStrides;
4949
public long processedStrides;
50+
public long skippedPages;
51+
public long processedPages;
5052
public long remainingFilterTime;
5153
public long ioWaitTime;
5254
public long storageReadBytes;
@@ -96,6 +98,8 @@ public OperatorMetrics(
9698
long processedSplits,
9799
long skippedStrides,
98100
long processedStrides,
101+
long skippedPages,
102+
long processedPages,
99103
long remainingFilterTime,
100104
long ioWaitTime,
101105
long storageReadBytes,
@@ -140,6 +144,8 @@ public OperatorMetrics(
140144
this.processedSplits = processedSplits;
141145
this.skippedStrides = skippedStrides;
142146
this.processedStrides = processedStrides;
147+
this.skippedPages = skippedPages;
148+
this.processedPages = processedPages;
143149
this.remainingFilterTime = remainingFilterTime;
144150
this.ioWaitTime = ioWaitTime;
145151
this.storageReadBytes = storageReadBytes;

backends-velox/src/main/scala/org/apache/gluten/backendsapi/velox/VeloxMetricsApi.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ class VeloxMetricsApi extends MetricsApi with Logging {
136136
"data source read time"),
137137
"skippedStrides" -> SQLMetrics.createMetric(sparkContext, "number of skipped row groups"),
138138
"processedStrides" -> SQLMetrics.createMetric(sparkContext, "number of processed row groups"),
139+
"skippedPages" -> SQLMetrics.createMetric(sparkContext, "number of skipped pages"),
140+
"processedPages" -> SQLMetrics.createMetric(sparkContext, "number of processed pages"),
139141
"remainingFilterTime" -> SQLMetrics.createNanoTimingMetric(
140142
sparkContext,
141143
"remaining filter time"),
@@ -194,6 +196,8 @@ class VeloxMetricsApi extends MetricsApi with Logging {
194196
"data source read time"),
195197
"skippedStrides" -> SQLMetrics.createMetric(sparkContext, "number of skipped row groups"),
196198
"processedStrides" -> SQLMetrics.createMetric(sparkContext, "number of processed row groups"),
199+
"skippedPages" -> SQLMetrics.createMetric(sparkContext, "number of skipped pages"),
200+
"processedPages" -> SQLMetrics.createMetric(sparkContext, "number of processed pages"),
197201
"remainingFilterTime" -> SQLMetrics.createNanoTimingMetric(
198202
sparkContext,
199203
"remaining filter time"),
@@ -252,6 +256,8 @@ class VeloxMetricsApi extends MetricsApi with Logging {
252256
"data source read time"),
253257
"skippedStrides" -> SQLMetrics.createMetric(sparkContext, "number of skipped row groups"),
254258
"processedStrides" -> SQLMetrics.createMetric(sparkContext, "number of processed row groups"),
259+
"skippedPages" -> SQLMetrics.createMetric(sparkContext, "number of skipped pages"),
260+
"processedPages" -> SQLMetrics.createMetric(sparkContext, "number of processed pages"),
255261
"remainingFilterTime" -> SQLMetrics.createNanoTimingMetric(
256262
sparkContext,
257263
"remaining filter time"),

backends-velox/src/main/scala/org/apache/gluten/metrics/BatchScanMetricsUpdater.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class BatchScanMetricsUpdater(@transient val metrics: Map[String, SQLMetric])
4646
private val processedSplits: Option[SQLMetric] = metric("processedSplits")
4747
private val skippedStrides: Option[SQLMetric] = metric("skippedStrides")
4848
private val processedStrides: Option[SQLMetric] = metric("processedStrides")
49+
private val skippedPages: Option[SQLMetric] = metric("skippedPages")
50+
private val processedPages: Option[SQLMetric] = metric("processedPages")
4951
private val remainingFilterTime: Option[SQLMetric] = metric("remainingFilterTime")
5052
private val ioWaitTime: Option[SQLMetric] = metric("ioWaitTime")
5153
private val storageReadBytes: Option[SQLMetric] = metric("storageReadBytes")
@@ -84,6 +86,8 @@ class BatchScanMetricsUpdater(@transient val metrics: Map[String, SQLMetric])
8486
ScanMetricsUtil.inc(processedSplits, operatorMetrics.processedSplits)
8587
ScanMetricsUtil.inc(skippedStrides, operatorMetrics.skippedStrides)
8688
ScanMetricsUtil.inc(processedStrides, operatorMetrics.processedStrides)
89+
ScanMetricsUtil.inc(skippedPages, operatorMetrics.skippedPages)
90+
ScanMetricsUtil.inc(processedPages, operatorMetrics.processedPages)
8791
ScanMetricsUtil.inc(remainingFilterTime, operatorMetrics.remainingFilterTime)
8892
ScanMetricsUtil.inc(ioWaitTime, operatorMetrics.ioWaitTime)
8993
ScanMetricsUtil.inc(storageReadBytes, operatorMetrics.storageReadBytes)

backends-velox/src/main/scala/org/apache/gluten/metrics/FileSourceScanMetricsUpdater.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class FileSourceScanMetricsUpdater(@transient val metrics: Map[String, SQLMetric
4444
private val processedSplits: Option[SQLMetric] = metric("processedSplits")
4545
private val skippedStrides: Option[SQLMetric] = metric("skippedStrides")
4646
private val processedStrides: Option[SQLMetric] = metric("processedStrides")
47+
private val skippedPages: Option[SQLMetric] = metric("skippedPages")
48+
private val processedPages: Option[SQLMetric] = metric("processedPages")
4749
private val remainingFilterTime: Option[SQLMetric] = metric("remainingFilterTime")
4850
private val ioWaitTime: Option[SQLMetric] = metric("ioWaitTime")
4951
private val storageReadBytes: Option[SQLMetric] = metric("storageReadBytes")
@@ -79,6 +81,8 @@ class FileSourceScanMetricsUpdater(@transient val metrics: Map[String, SQLMetric
7981
ScanMetricsUtil.inc(processedSplits, operatorMetrics.processedSplits)
8082
ScanMetricsUtil.inc(skippedStrides, operatorMetrics.skippedStrides)
8183
ScanMetricsUtil.inc(processedStrides, operatorMetrics.processedStrides)
84+
ScanMetricsUtil.inc(skippedPages, operatorMetrics.skippedPages)
85+
ScanMetricsUtil.inc(processedPages, operatorMetrics.processedPages)
8286
ScanMetricsUtil.inc(remainingFilterTime, operatorMetrics.remainingFilterTime)
8387
ScanMetricsUtil.inc(ioWaitTime, operatorMetrics.ioWaitTime)
8488
ScanMetricsUtil.inc(storageReadBytes, operatorMetrics.storageReadBytes)

backends-velox/src/main/scala/org/apache/gluten/metrics/HiveTableScanMetricsUpdater.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ class HiveTableScanMetricsUpdater(@transient val metrics: Map[String, SQLMetric]
4040
private val processedSplits: Option[SQLMetric] = metric("processedSplits")
4141
private val skippedStrides: Option[SQLMetric] = metric("skippedStrides")
4242
private val processedStrides: Option[SQLMetric] = metric("processedStrides")
43+
private val skippedPages: Option[SQLMetric] = metric("skippedPages")
44+
private val processedPages: Option[SQLMetric] = metric("processedPages")
4345
private val remainingFilterTime: Option[SQLMetric] = metric("remainingFilterTime")
4446
private val ioWaitTime: Option[SQLMetric] = metric("ioWaitTime")
4547
private val storageReadBytes: Option[SQLMetric] = metric("storageReadBytes")
@@ -75,6 +77,8 @@ class HiveTableScanMetricsUpdater(@transient val metrics: Map[String, SQLMetric]
7577
ScanMetricsUtil.inc(processedSplits, operatorMetrics.processedSplits)
7678
ScanMetricsUtil.inc(skippedStrides, operatorMetrics.skippedStrides)
7779
ScanMetricsUtil.inc(processedStrides, operatorMetrics.processedStrides)
80+
ScanMetricsUtil.inc(skippedPages, operatorMetrics.skippedPages)
81+
ScanMetricsUtil.inc(processedPages, operatorMetrics.processedPages)
7882
ScanMetricsUtil.inc(remainingFilterTime, operatorMetrics.remainingFilterTime)
7983
ScanMetricsUtil.inc(ioWaitTime, operatorMetrics.ioWaitTime)
8084
ScanMetricsUtil.inc(storageReadBytes, operatorMetrics.storageReadBytes)

backends-velox/src/main/scala/org/apache/gluten/metrics/MetricsUtil.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ object MetricsUtil extends Logging {
129129
var skippedSplits: Long = 0
130130
var processedSplits: Long = 0
131131
var skippedStrides: Long = 0
132+
var skippedPages: Long = 0
133+
var processedPages: Long = 0
132134
var processedStrides: Long = 0
133135
var remainingFilterTime: Long = 0
134136
var ioWaitTime: Long = 0
@@ -168,6 +170,8 @@ object MetricsUtil extends Logging {
168170
processedSplits += metrics.processedSplits
169171
skippedStrides += metrics.skippedStrides
170172
processedStrides += metrics.processedStrides
173+
skippedPages += metrics.skippedPages
174+
processedPages += metrics.processedPages
171175
remainingFilterTime += metrics.remainingFilterTime
172176
ioWaitTime += metrics.ioWaitTime
173177
storageReadBytes += metrics.storageReadBytes
@@ -213,6 +217,8 @@ object MetricsUtil extends Logging {
213217
processedSplits,
214218
skippedStrides,
215219
processedStrides,
220+
skippedPages,
221+
processedPages,
216222
remainingFilterTime,
217223
ioWaitTime,
218224
storageReadBytes,

cpp/core/jni/JniWrapper.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
313313
env,
314314
metricsBuilderClass,
315315
"<init>",
316-
"([J[J[J[J[J[J[J[J[J[JJ[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[JLjava/lang/String;)V");
316+
"([J[J[J[J[J[J[J[J[J[JJ[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[J[JLjava/lang/String;)V");
317317

318318
nativeColumnarToRowInfoClass =
319319
createGlobalClassReferenceOrError(env, "Lorg/apache/gluten/vectorized/NativeColumnarToRowInfo;");
@@ -668,6 +668,8 @@ JNIEXPORT jobject JNICALL Java_org_apache_gluten_metrics_IteratorMetricsJniWrapp
668668
longArray[Metrics::kProcessedSplits],
669669
longArray[Metrics::kSkippedStrides],
670670
longArray[Metrics::kProcessedStrides],
671+
longArray[Metrics::kSkippedPages],
672+
longArray[Metrics::kProcessedPages],
671673
longArray[Metrics::kRemainingFilterTime],
672674
longArray[Metrics::kIoWaitTime],
673675
longArray[Metrics::kStorageReadBytes],

cpp/core/utils/Metrics.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ struct Metrics {
7777
kProcessedSplits,
7878
kSkippedStrides,
7979
kProcessedStrides,
80+
kSkippedPages,
81+
kProcessedPages,
8082
kRemainingFilterTime,
8183
kIoWaitTime,
8284
kStorageReadBytes,

cpp/velox/compute/WholeStageResultIterator.cc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ const std::string kSkippedSplits = "skippedSplits";
6161
const std::string kProcessedSplits = "processedSplits";
6262
const std::string kSkippedStrides = "skippedStrides";
6363
const std::string kProcessedStrides = "processedStrides";
64+
const std::string kSkippedPages = "skippedPages";
65+
const std::string kProcessedPages = "processedPages";
6466
const std::string kRemainingFilterTime = "totalRemainingFilterWallNanos";
6567
const std::string kIoWaitTime = "ioWaitWallNanos";
6668
const std::string kStorageReadBytes = "storageReadBytes";
@@ -569,6 +571,10 @@ void WholeStageResultIterator::collectMetrics() {
569571
metrics_->get(Metrics::kSkippedStrides)[metricIndex] = runtimeMetric("sum", second->customStats, kSkippedStrides);
570572
metrics_->get(Metrics::kProcessedStrides)[metricIndex] =
571573
runtimeMetric("sum", second->customStats, kProcessedStrides);
574+
metrics_->get(Metrics::kSkippedPages)[metricIndex] =
575+
runtimeMetric("sum", second->customStats, kSkippedPages);
576+
metrics_->get(Metrics::kProcessedPages)[metricIndex] =
577+
runtimeMetric("sum", second->customStats, kProcessedPages);
572578
metrics_->get(Metrics::kRemainingFilterTime)[metricIndex] =
573579
runtimeMetric("sum", second->customStats, kRemainingFilterTime);
574580
metrics_->get(Metrics::kIoWaitTime)[metricIndex] = runtimeMetric("sum", second->customStats, kIoWaitTime);

0 commit comments

Comments
 (0)