diff --git a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java index 53d19b96c28..c516740070f 100644 --- a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java +++ b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMeter.java @@ -52,6 +52,7 @@ public enum ServerMeter implements AbstractMetrics.Meter { UPSERT_OUT_OF_ORDER("rows", false), DELETED_KEYS_TTL_PRIMARY_KEYS_REMOVED("rows", false), METADATA_TTL_PRIMARY_KEYS_REMOVED("rows", false), + UPSERT_MISSED_VALID_DOC_ID_SNAPSHOT_COUNT("segments", false), ROWS_WITH_ERRORS("rows", false), LLC_CONTROLLER_RESPONSE_NOT_SENT("messages", true), LLC_CONTROLLER_RESPONSE_COMMIT("messages", true), diff --git a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java index dcee1cefa42..a97bb659221 100644 --- a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java +++ b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java @@ -887,6 +887,12 @@ protected void doTakeSnapshot() { ServerGauge.UPSERT_VALID_DOC_ID_SNAPSHOT_COUNT, numImmutableSegments); _serverMetrics.setValueOfPartitionGauge(_tableNameWithType, _partitionId, ServerGauge.UPSERT_PRIMARY_KEYS_IN_SNAPSHOT_COUNT, numPrimaryKeysInSnapshot); + int numMissedSegments = numTrackedSegments - numImmutableSegments - numConsumingSegments; + if (numMissedSegments > 0) { + _serverMetrics.addMeteredTableValue(_tableNameWithType, String.valueOf(_partitionId), + ServerMeter.UPSERT_MISSED_VALID_DOC_ID_SNAPSHOT_COUNT, numMissedSegments); + _logger.warn("Missed taking snapshot for {} immutable segments", numMissedSegments); + } _logger.info("Finished taking snapshot for {} immutable segments with {} primary keys (out of {} total segments, " + "{} are consuming segments) in {} ms", numImmutableSegments, numPrimaryKeysInSnapshot, numTrackedSegments, numConsumingSegments, System.currentTimeMillis() - startTimeMs);