You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by "praveenc7 (via GitHub)" <gi...@apache.org> on 2025/07/18 04:28:26 UTC
[PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
praveenc7 opened a new pull request, #16379:
URL: https://github.com/apache/pinot/pull/16379
## Summary
To emit segment download metrics even when the segment is served from local storage (e.g., NFS or GPFS mount points).
Previously, download metrics were only emitted when the segment was fetched from remote deep storage. However, in environments where segments are accessed over mounted distributed filesystems, local access may still incur I/O latency and should be observable.
Using `builder.entity(segmentFile) `registers the file with the JAX-RS response builder, but the actual streaming is handled internally by Jersey. This means we have no control over the output stream lifecycle and cannot accurately emit metrics after the download completes. To address this, we replaced it with a StreamingOutput wrapper that explicitly controls the file transfer and ensures download duration and size metrics are recorded once the file is fully sent to the client.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "jackjlli (via GitHub)" <gi...@apache.org>.
jackjlli merged PR #16379:
URL: https://github.com/apache/pinot/pull/16379
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "praveenc7 (via GitHub)" <gi...@apache.org>.
praveenc7 commented on code in PR #16379:
URL: https://github.com/apache/pinot/pull/16379#discussion_r2220475653
##########
pinot-controller/src/test/java/org/apache/pinot/controller/api/resources/ResourceUtilsTest.java:
##########
@@ -0,0 +1,112 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pinot.controller.api.resources;
+
+import java.lang.reflect.Field;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.pinot.common.metrics.ControllerGauge;
+import org.apache.pinot.common.metrics.ControllerMeter;
+import org.apache.pinot.common.metrics.ControllerMetrics;
+import org.apache.pinot.common.metrics.ControllerTimer;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class ResourceUtilsTest {
+
+ private static final String RAW_TABLE = "myTable";
+ private static final long SEGMENT_BYTES = 123L;
+
+ private ControllerMetrics _metrics;
+
+ /** Reset static Atomics inside ResourceUtils between tests so they don’t bleed values. */
+ @BeforeMethod
+ public void setUp() throws Exception {
+ _metrics = mock(ControllerMetrics.class);
+ resetStaticCounter("_deepStoreWriteOpsInProgress");
+ resetStaticCounter("_deepStoreWriteBytesInProgress");
+ resetStaticCounter("_deepStoreReadOpsInProgress");
+ resetStaticCounter("_deepStoreReadBytesInProgress");
+ }
+
+ @Test
+ public void testUploadMetricsFlow() {
+ long startTime = System.currentTimeMillis();
+
+ // This test verifies the flow of metrics emitted during a segment upload to deep store.
+ ResourceUtils.emitPreSegmentUploadMetrics(_metrics, RAW_TABLE, SEGMENT_BYTES);
+
+ verify(_metrics).setOrUpdateTableGauge(RAW_TABLE,
+ ControllerGauge.DEEP_STORE_WRITE_OPS_IN_PROGRESS, 1L);
+ verify(_metrics).setOrUpdateTableGauge(RAW_TABLE,
+ ControllerGauge.DEEP_STORE_WRITE_BYTES_IN_PROGRESS, SEGMENT_BYTES);
+
Review Comment:
Added one
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "mcvsubbu (via GitHub)" <gi...@apache.org>.
mcvsubbu commented on code in PR #16379:
URL: https://github.com/apache/pinot/pull/16379#discussion_r2216892006
##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentUploadDownloadRestletResource.java:
##########
@@ -199,7 +199,20 @@ public Response downloadSegment(
"Segment " + segmentName + " or table " + tableName + " not found in " + segmentFile.getAbsolutePath(),
Response.Status.NOT_FOUND);
}
- builder.entity(segmentFile);
+ String rawTableName = TableNameBuilder.extractRawTableName(tableName);
+ long segmentSizeInBytes = segmentFile.length();
+ long accessStartTimeMs = System.currentTimeMillis();
+ ResourceUtils.emitPreSegmentDownloadMetrics(_controllerMetrics, rawTableName, segmentSizeInBytes);
+ // Streaming the segment file directly from local disk to the output stream to ensure we can capture the metrics
Review Comment:
```suggestion
// Streaming the segment file directly from local FS to the output stream to ensure we can capture the metrics
```
##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentUploadDownloadRestletResource.java:
##########
@@ -199,7 +199,20 @@ public Response downloadSegment(
"Segment " + segmentName + " or table " + tableName + " not found in " + segmentFile.getAbsolutePath(),
Response.Status.NOT_FOUND);
}
- builder.entity(segmentFile);
+ String rawTableName = TableNameBuilder.extractRawTableName(tableName);
+ long segmentSizeInBytes = segmentFile.length();
+ long accessStartTimeMs = System.currentTimeMillis();
+ ResourceUtils.emitPreSegmentDownloadMetrics(_controllerMetrics, rawTableName, segmentSizeInBytes);
+ // Streaming the segment file directly from local disk to the output stream to ensure we can capture the metrics
+ builder.entity((StreamingOutput) output -> {
+ try {
+ Files.copy(segmentFile.toPath(), output);
+ } finally {
+ long durationMs = System.currentTimeMillis() - accessStartTimeMs;
+ ResourceUtils.emitPostSegmentDownloadMetrics(_controllerMetrics, rawTableName, durationMs,
Review Comment:
the signature for post metrics seem to take the ```startTimeMs``` and not ```durationMs``` as argument.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "praveenc7 (via GitHub)" <gi...@apache.org>.
praveenc7 commented on code in PR #16379:
URL: https://github.com/apache/pinot/pull/16379#discussion_r2220476582
##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/ResourceUtils.java:
##########
@@ -113,9 +113,9 @@ public static void emitPostSegmentUploadMetrics(ControllerMetrics controllerMetr
controllerMetrics.setValueOfGlobalGauge(ControllerGauge.DEEP_STORE_WRITE_OPS_IN_PROGRESS, writeCount);
long segmentBytesUploading = _deepStoreWriteBytesInProgress.addAndGet(-segmentSizeInBytes);
- controllerMetrics.setOrUpdateTableGauge(rawTableName, ControllerGauge.DEEP_STORE_WRITE_OPS_IN_PROGRESS,
+ controllerMetrics.setOrUpdateTableGauge(rawTableName, ControllerGauge.DEEP_STORE_WRITE_BYTES_IN_PROGRESS,
Review Comment:
It looks we missed to update the `DEEP_STORE_WRITE_BYTES_IN_PROGRESS` as well and were duplicating `DEEP_STORE_WRITE_OPS_IN_PROGRESS`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "mcvsubbu (via GitHub)" <gi...@apache.org>.
mcvsubbu commented on code in PR #16379:
URL: https://github.com/apache/pinot/pull/16379#discussion_r2219769487
##########
pinot-controller/src/test/java/org/apache/pinot/controller/api/resources/ResourceUtilsTest.java:
##########
@@ -0,0 +1,112 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pinot.controller.api.resources;
+
+import java.lang.reflect.Field;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+
+import org.apache.pinot.common.metrics.ControllerGauge;
+import org.apache.pinot.common.metrics.ControllerMeter;
+import org.apache.pinot.common.metrics.ControllerMetrics;
+import org.apache.pinot.common.metrics.ControllerTimer;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class ResourceUtilsTest {
+
+ private static final String RAW_TABLE = "myTable";
+ private static final long SEGMENT_BYTES = 123L;
+
+ private ControllerMetrics _metrics;
+
+ /** Reset static Atomics inside ResourceUtils between tests so they don’t bleed values. */
+ @BeforeMethod
+ public void setUp() throws Exception {
+ _metrics = mock(ControllerMetrics.class);
+ resetStaticCounter("_deepStoreWriteOpsInProgress");
+ resetStaticCounter("_deepStoreWriteBytesInProgress");
+ resetStaticCounter("_deepStoreReadOpsInProgress");
+ resetStaticCounter("_deepStoreReadBytesInProgress");
+ }
+
+ @Test
+ public void testUploadMetricsFlow() {
+ long startTime = System.currentTimeMillis();
+
+ // This test verifies the flow of metrics emitted during a segment upload to deep store.
+ ResourceUtils.emitPreSegmentUploadMetrics(_metrics, RAW_TABLE, SEGMENT_BYTES);
+
+ verify(_metrics).setOrUpdateTableGauge(RAW_TABLE,
+ ControllerGauge.DEEP_STORE_WRITE_OPS_IN_PROGRESS, 1L);
+ verify(_metrics).setOrUpdateTableGauge(RAW_TABLE,
+ ControllerGauge.DEEP_STORE_WRITE_BYTES_IN_PROGRESS, SEGMENT_BYTES);
+
Review Comment:
would it make sense to add a sleep here, and then verify that the metric is at least equal to the sleep time
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "praveenc7 (via GitHub)" <gi...@apache.org>.
praveenc7 commented on code in PR #16379:
URL: https://github.com/apache/pinot/pull/16379#discussion_r2214865373
##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentUploadDownloadRestletResource.java:
##########
@@ -199,7 +199,20 @@ public Response downloadSegment(
"Segment " + segmentName + " or table " + tableName + " not found in " + segmentFile.getAbsolutePath(),
Response.Status.NOT_FOUND);
}
- builder.entity(segmentFile);
Review Comment:
Using builder.entity(segmentFile) registers the file with the JAX-RS response builder, but the actual streaming is handled internally by Jersey. This means we have no control over the output stream lifecycle and cannot accurately emit metrics after the download completes. To address this, we replaced it with a StreamingOutput wrapper that explicitly controls the file transfer and ensures download duration and size metrics are recorded once the file is fully sent to the client.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "praveenc7 (via GitHub)" <gi...@apache.org>.
praveenc7 commented on PR #16379:
URL: https://github.com/apache/pinot/pull/16379#issuecomment-3086700969
@mcvsubbu PTAL when you get a chance
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "praveenc7 (via GitHub)" <gi...@apache.org>.
praveenc7 commented on PR #16379:
URL: https://github.com/apache/pinot/pull/16379#issuecomment-3086700451
Improvements over https://github.com/apache/pinot/pull/15585
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "praveenc7 (via GitHub)" <gi...@apache.org>.
praveenc7 commented on code in PR #16379:
URL: https://github.com/apache/pinot/pull/16379#discussion_r2216917445
##########
pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotSegmentUploadDownloadRestletResource.java:
##########
@@ -199,7 +199,20 @@ public Response downloadSegment(
"Segment " + segmentName + " or table " + tableName + " not found in " + segmentFile.getAbsolutePath(),
Response.Status.NOT_FOUND);
}
- builder.entity(segmentFile);
+ String rawTableName = TableNameBuilder.extractRawTableName(tableName);
+ long segmentSizeInBytes = segmentFile.length();
+ long accessStartTimeMs = System.currentTimeMillis();
+ ResourceUtils.emitPreSegmentDownloadMetrics(_controllerMetrics, rawTableName, segmentSizeInBytes);
+ // Streaming the segment file directly from local disk to the output stream to ensure we can capture the metrics
+ builder.entity((StreamingOutput) output -> {
+ try {
+ Files.copy(segmentFile.toPath(), output);
+ } finally {
+ long durationMs = System.currentTimeMillis() - accessStartTimeMs;
+ ResourceUtils.emitPostSegmentDownloadMetrics(_controllerMetrics, rawTableName, durationMs,
Review Comment:
Ahh, Right. Fixed it
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org
Re: [PR] Emit segment download metrics for local (NFS/GPFS) file access [pinot]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #16379:
URL: https://github.com/apache/pinot/pull/16379#issuecomment-3090784804
## [Codecov](https://app.codecov.io/gh/apache/pinot/pull/16379?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 56.35%. Comparing base [(`1a476de`)](https://app.codecov.io/gh/apache/pinot/commit/1a476dea72ebf1c15e14ded28ae60c385f71b2c3?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to head [(`a88d85a`)](https://app.codecov.io/gh/apache/pinot/commit/a88d85a84379e497171b89e2a403fb91495a7641?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
> Report is 475 commits behind head on master.
> :exclamation: There is a different number of reports uploaded between BASE (1a476de) and HEAD (a88d85a). Click for more details.
>
> <details><summary>HEAD has 68 uploads less than BASE</summary>
>
>| Flag | BASE (1a476de) | HEAD (a88d85a) |
>|------|------|------|
>|java-21|10|1|
>|unittests|6|1|
>|unittests1|3|1|
>|skip-bytebuffers-true|4|0|
>|temurin|15|1|
>|unittests2|3|0|
>|skip-bytebuffers-false|8|0|
>|java-11|5|0|
>|integration|9|0|
>|integration2|3|0|
>|integration1|3|0|
>|custom-integration1|3|0|
></details>
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #16379 +/- ##
============================================
- Coverage 62.90% 56.35% -6.55%
+ Complexity 1386 699 -687
============================================
Files 2867 2321 -546
Lines 163354 128294 -35060
Branches 24952 20431 -4521
============================================
- Hits 102755 72304 -30451
+ Misses 52847 50013 -2834
+ Partials 7752 5977 -1775
```
| [Flag](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [custom-integration1](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [integration](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [integration1](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [integration2](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [java-11](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [java-21](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `56.35% <ø> (-6.47%)` | :arrow_down: |
| [skip-bytebuffers-false](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [skip-bytebuffers-true](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [temurin](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `56.35% <ø> (-6.55%)` | :arrow_down: |
| [unittests](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `56.35% <ø> (-6.55%)` | :arrow_down: |
| [unittests1](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `56.35% <ø> (+0.53%)` | :arrow_up: |
| [unittests2](https://app.codecov.io/gh/apache/pinot/pull/16379/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/pinot/pull/16379?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org