diff options
author | gjoranv <gv@yahooinc.com> | 2023-05-05 01:31:47 +0200 |
---|---|---|
committer | gjoranv <gv@yahooinc.com> | 2023-05-05 01:31:47 +0200 |
commit | f7fd1f95d2de8880dd122efa3f88c2ab1bfd3329 (patch) | |
tree | 76fa4814d84b6b993dc7b2e34b8fb1728a71e9d3 | |
parent | 6604ef3e0e5499085b08de0f1b683965d03b1c03 (diff) |
Add metrics for graph creation time and reconfig count.
-rw-r--r-- | container-disc/src/main/java/com/yahoo/container/jdisc/ConfiguredApplication.java | 6 |
1 files changed, 6 insertions, 0 deletions
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 c56fb080c55..06aa102b34c 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 @@ -51,6 +51,8 @@ import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.security.Provider; import java.security.Security; +import java.time.Duration; +import java.time.Instant; import java.util.Collection; import java.util.Collections; import java.util.IdentityHashMap; @@ -332,11 +334,15 @@ public final class ConfiguredApplication implements Application { private void doReconfigurationLoop() { while (!shutdownReconfiguration) { try { + var start = Instant.now(); ContainerBuilder builder = createBuilderWithGuiceBindings(); // Block until new config arrives, and it should be applied Runnable cleanupTask = configurer.waitForNextGraphGeneration(builder.guiceModules().activate(), false); initializeAndActivateContainer(builder, cleanupTask); + var metric = configurer.getComponent(Metric.class); + metric.set("jdisc.application.component_graph.creation_time_millis", Duration.between(start, Instant.now()).toMillis(), null); + metric.add("jdisc.application.component_graph.reconfigurations", 1L, null); } catch (UncheckedInterruptedException | SubscriberClosedException | ConfigInterruptedException e) { break; } catch (Exception | LinkageError e) { // LinkageError: OSGi problems |