diff options
author | Jon Bratseth <bratseth@gmail.com> | 2023-03-02 21:49:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-02 21:49:39 +0100 |
commit | 0295dd9d2841c45fb02eb97c8c2e87e4fd9c9120 (patch) | |
tree | 5c137b0c6f6ef00508102d65d8476698243b571d | |
parent | 3d3d8fbbfe3577c34039e22e51438415442da7d0 (diff) | |
parent | 464a1ec34d9bb04872e799980378bc6e904c48c9 (diff) |
Merge pull request #26281 from vespa-engine/bratseth/application_generation
Define application_generation in containermetrics and add to the vesp…
5 files changed, 10 insertions, 9 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java index a3fdce98c73..9cb8b4e00ca 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java @@ -31,7 +31,7 @@ public class AutoscalingMetrics { metrics.add("disk.util"); // node level -default metrics.add(SearchNodeMetrics.CONTENT_PROTON_RESOURCE_USAGE_DISK.average()); // better for content as it is the basis for blocking - metrics.add("application_generation"); + metrics.add(ContainerMetrics.APPLICATION_GENERATION.baseName()); metrics.add("in_service"); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java index d6f0df8e051..000ac92a8a0 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java @@ -131,6 +131,8 @@ public class VespaMetricSet { private static Set<Metric> getContainerMetrics() { Set<Metric> metrics = new LinkedHashSet<>(); + addMetric(metrics, ContainerMetrics.APPLICATION_GENERATION.baseName()); + addMetric(metrics, ContainerMetrics.HANDLED_REQUESTS.count()); addMetric(metrics, ContainerMetrics.HANDLED_LATENCY, EnumSet.of(sum, count, max)); diff --git a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java index 06285ecfba8..0b61c937cb8 100644 --- a/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java +++ b/container-core/src/main/java/com/yahoo/metrics/ContainerMetrics.java @@ -11,6 +11,8 @@ public enum ContainerMetrics implements VespaMetrics { HTTP_STATUS_4XX("http.status.4xx", Unit.RESPONSE, "Number of responses with a 4xx status"), HTTP_STATUS_5XX("http.status.5xx", Unit.RESPONSE, "Number of responses with a 5xx status"), + APPLICATION_GENERATION("application_generation", Unit.VERSION, "The currently live application config generation (aka session id)"), + JDISC_GC_COUNT("jdisc.gc.count", Unit.OPERATION, "Number of JVM garbage collections done"), JDISC_GC_MS("jdisc.gc.ms", Unit.MILLISECOND, "Time spent in JVM garbage collection"), JDISC_JVM("jdisc.jvm", Unit.VERSION, "JVM runtime version"), diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java index b1eeffc24cc..fc49ae18b99 100644 --- a/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java +++ b/container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java @@ -341,10 +341,10 @@ public final class ConfiguredApplication implements Application { tryReportFailedComponentGraphConstructionMetric(configurer, e); log.log(Level.SEVERE, "Reconfiguration failed, your application package must be fixed, unless this is a " + - "JNI reload issue: " + Exceptions.toMessageString(e), e); + "JNI reload issue: " + Exceptions.toMessageString(e), e); } catch (Error e) { com.yahoo.protect.Process.logAndDie("java.lang.Error on reconfiguration: We are probably in " + - "a bad state and will terminate", e); + "a bad state and will terminate", e); } } log.fine("Reconfiguration loop exited"); diff --git a/vespajlib/src/main/java/com/yahoo/concurrent/ThreadLocalDirectory.java b/vespajlib/src/main/java/com/yahoo/concurrent/ThreadLocalDirectory.java index 15ba65310ff..c28884696aa 100644 --- a/vespajlib/src/main/java/com/yahoo/concurrent/ThreadLocalDirectory.java +++ b/vespajlib/src/main/java/com/yahoo/concurrent/ThreadLocalDirectory.java @@ -241,8 +241,7 @@ public final class ThreadLocalDirectory<AGGREGATOR, SAMPLE> { synchronized (directoryLock) { previousIntervalSize = directory.size(); previous = directory; - directory = new ArrayList<>( - previousIntervalSize); + directory = new ArrayList<>(previousIntervalSize); } contained = new ArrayList<>(previousIntervalSize); // Yes, this is an inconsistence about when the registered state is @@ -268,12 +267,10 @@ public final class ThreadLocalDirectory<AGGREGATOR, SAMPLE> { throw new IllegalStateException("Does not use observable updaters."); } List<LocalInstance<AGGREGATOR, SAMPLE>> current; - List<AGGREGATOR> view; synchronized (directoryLock) { - current = new ArrayList<>( - directory); + current = new ArrayList<>(directory); } - view = new ArrayList<>(current.size()); + List<AGGREGATOR> view = new ArrayList<>(current.size()); for (LocalInstance<AGGREGATOR, SAMPLE> x : current) { view.add(x.copyCurrent(observableUpdater)); } |