This is an automated email from the ASF dual-hosted git repository.

Fly-Style pushed a commit to branch visualize_auto_scaler
in repository https://gitbox.apache.org/repos/asf/druid.git

commit 8cf345a7f75e8e7573584b08895b18f852d13935
Author: Sasha Syrotenko <[email protected]>
AuthorDate: Mon Aug 3 12:37:32 2026 +0300

    Add critical lag
---
 .../supervisor/autoscaler/CostBasedAutoScaler.java | 30 ++++++++--------------
 .../auto-scaler-panel/auto-scaler-panel.tsx        |  1 +
 2 files changed, 11 insertions(+), 20 deletions(-)

diff --git 
a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/autoscaler/CostBasedAutoScaler.java
 
b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/autoscaler/CostBasedAutoScaler.java
index 24e9311252f..060a7ec9c84 100644
--- 
a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/autoscaler/CostBasedAutoScaler.java
+++ 
b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/autoscaler/CostBasedAutoScaler.java
@@ -413,28 +413,18 @@ public class CostBasedAutoScaler implements 
SupervisorTaskAutoScaler
         emitMetric(getMetricBuilder().setMetric(OPTIMAL_LAG_COST_METRIC, 
optimalCost.lagCost()));
         emitMetric(getMetricBuilder().setMetric(OPTIMAL_IDLE_COST_METRIC, 
optimalCost.idleCost()));
       }
-
-      if (!criticalLag) {
-        final double costDropPercent
-            = 100.0 * (currentCost.totalCost() - optimalCost.totalCost()) / 
currentCost.totalCost();
-        if (costDropPercent < config.getMinCostDropPercentForScaling()) {
-          log.info(
-              "Skipping scaling since cost drop percent[%.2f] is less than 
required minCostDropPercentForScaling[%d]",
-              costDropPercent, config.getMinCostDropPercentForScaling()
-          );
-          return currentTaskCount;
-        }
-      }
     }
 
-    final double costDropPercent
-        = 100.0 * (currentCost.totalCost() - optimalCost.totalCost()) / 
currentCost.totalCost();
-    if (costDropPercent < config.getMinCostDropPercentForScaling()) {
-      log.info(
-          "Skipping scaling since cost drop percent[%.2f] is less than 
required minCostDropPercentForScaling[%d]",
-          costDropPercent, config.getMinCostDropPercentForScaling()
-      );
-      return currentTaskCount;
+    if (!criticalLag) {
+      final double costDropPercent
+          = 100.0 * (currentCost.totalCost() - optimalCost.totalCost()) / 
currentCost.totalCost();
+      if (costDropPercent < config.getMinCostDropPercentForScaling()) {
+        log.info(
+            "Skipping scaling since cost drop percent[%.2f] is less than 
required minCostDropPercentForScaling[%d]",
+            costDropPercent, config.getMinCostDropPercentForScaling()
+        );
+        return currentTaskCount;
+      }
     }
 
     // Scale-up is applied eagerly; scale-down may be deferred by 
computeTaskCountForScaleAction().
diff --git 
a/web-console/src/dialogs/supervisor-table-action-dialog/auto-scaler-panel/auto-scaler-panel.tsx
 
b/web-console/src/dialogs/supervisor-table-action-dialog/auto-scaler-panel/auto-scaler-panel.tsx
index 1e214d30d87..b171e3151d0 100644
--- 
a/web-console/src/dialogs/supervisor-table-action-dialog/auto-scaler-panel/auto-scaler-panel.tsx
+++ 
b/web-console/src/dialogs/supervisor-table-action-dialog/auto-scaler-panel/auto-scaler-panel.tsx
@@ -136,6 +136,7 @@ export const AutoScalerPanel = React.memo(function 
AutoScalerPanel(props: AutoSc
           optimalTaskIdleRatio: params.optimalTaskIdleRatio,
           lagWeight: params.lagWeight,
           idleWeight: params.idleWeight,
+          criticalLagThreshold: params.criticalLag,
         },
         {
           params: {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to