diff options
author | Harald Musum <musum@yahooinc.com> | 2023-10-11 18:53:38 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-11 18:53:38 +0200 |
commit | 34d35c3467aebeda68c3d58ccfb683c0f4f0c506 (patch) | |
tree | 44408d842513616e455520eda3f4f0e93d41d56d /controller-server/src/main/java/com/yahoo | |
parent | aed7902ee0371efb89747d467c4a2f8124ddc08d (diff) |
Revert "Jonmv/job runner thread metrics"
Diffstat (limited to 'controller-server/src/main/java/com/yahoo')
2 files changed, 5 insertions, 55 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java index 1080b379c4d..662b4018a34 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java @@ -727,8 +727,6 @@ public class InternalStepRunner implements StepRunner { DeploymentSpec spec = controller.applications().requireApplication(TenantAndApplicationId.from(id.application())).deploymentSpec(); boolean requireTests = spec.steps().stream().anyMatch(step -> step.concerns(id.type().environment())); - logger.log(WARNING, "No tests were actually run, but this test suite is explicitly declared in 'deployment.xml'. " + - "Either add tests, ensure they're correctly configured, or remove the test declaration."); return Optional.of(requireTests ? testFailure : noTests); } case SUCCESS: diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java index 0f482b1a015..6f00ff39637 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/JobRunner.java @@ -1,9 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.maintenance; -import ai.vespa.metrics.ControllerMetrics; import com.yahoo.concurrent.DaemonThreadFactory; -import com.yahoo.jdisc.Metric; import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.api.integration.deployment.RunId; import com.yahoo.vespa.hosted.controller.deployment.InternalStepRunner; @@ -13,14 +11,11 @@ import com.yahoo.vespa.hosted.controller.deployment.Step; import com.yahoo.vespa.hosted.controller.deployment.StepRunner; import java.time.Duration; -import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -37,29 +32,22 @@ public class JobRunner extends ControllerMaintainer { private final JobController jobs; private final ExecutorService executors; private final StepRunner runner; - private final Metrics metrics; public JobRunner(Controller controller, Duration duration) { - this(controller, duration, Executors.newFixedThreadPool(32, new DaemonThreadFactory("job-runner-")), - new InternalStepRunner(controller)); + this(controller, duration, Executors.newFixedThreadPool(32, new DaemonThreadFactory("job-runner-")), new InternalStepRunner(controller)); } public JobRunner(Controller controller, Duration duration, ExecutorService executors, StepRunner runner) { - this(controller, duration, executors, runner, new Metrics(controller.metric(), Duration.ofMillis(100))); - } - - JobRunner(Controller controller, Duration duration, ExecutorService executors, StepRunner runner, Metrics metrics) { super(controller, duration); this.jobs = controller.jobController(); this.jobs.setRunner(this::advance); this.executors = executors; this.runner = runner; - this.metrics = metrics; } @Override protected double maintain() { - execute(() -> jobs.active().forEach(this::advance)); + executors.execute(() -> jobs.active().forEach(this::advance)); jobs.collectGarbage(); return 1.0; } @@ -67,7 +55,6 @@ public class JobRunner extends ControllerMaintainer { @Override public void shutdown() { super.shutdown(); - metrics.shutdown(); executors.shutdown(); } @@ -96,14 +83,14 @@ public class JobRunner extends ControllerMaintainer { jobs.locked(id, run -> { if ( ! run.hasFailed() && controller().clock().instant().isAfter(run.sleepUntil().orElse(run.start()).plus(jobTimeout))) - execute(() -> { + executors.execute(() -> { jobs.abort(run.id(), "job timeout of " + jobTimeout + " reached", false); advance(run.id()); }); else if (run.readySteps().isEmpty()) - execute(() -> finish(run.id())); + executors.execute(() -> finish(run.id())); else if (run.hasFailed() || run.sleepUntil().map(sleepUntil -> ! sleepUntil.isAfter(controller().clock().instant())).orElse(true)) - run.readySteps().forEach(step -> execute(() -> advance(run.id(), step))); + run.readySteps().forEach(step -> executors.execute(() -> advance(run.id(), step))); return null; }); @@ -158,39 +145,4 @@ public class JobRunner extends ControllerMaintainer { } } - private void execute(Runnable task) { - metrics.queued.incrementAndGet(); - executors.execute(() -> { - metrics.queued.decrementAndGet(); - metrics.active.incrementAndGet(); - try { task.run(); } - finally { metrics.active.decrementAndGet(); } - }); - } - - static class Metrics { - - private final AtomicInteger queued = new AtomicInteger(); - private final AtomicInteger active = new AtomicInteger(); - private final ScheduledExecutorService reporter = Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory("job-runner-metrics-")); - private final Metric metric; - private final Metric.Context context; - - Metrics(Metric metric, Duration interval) { - this.metric = metric; - this.context = metric.createContext(Map.of()); - reporter.scheduleAtFixedRate(this::report, interval.toMillis(), interval.toMillis(), TimeUnit.MILLISECONDS); - } - - void report() { - metric.set(ControllerMetrics.DEPLOYMENT_JOBS_QUEUED.baseName(), queued.get(), context); - metric.set(ControllerMetrics.DEPLOYMENT_JOBS_ACTIVE.baseName(), active.get(), context); - } - - void shutdown() { - reporter.shutdown(); - } - - } - } |