diff options
author | Bjørn Christian Seime <bjorn.christian@seime.no> | 2017-10-27 17:46:59 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-27 17:46:59 +0200 |
commit | ebdeac00bfe7c6682d258728708887437c0067f3 (patch) | |
tree | 2544f5486f0be3dd2c2c65246cc222a482159ea1 | |
parent | 517466ab20440bd16336cc24e7bbdd5c0360ef95 (diff) | |
parent | 1eb73a76b162e0ef7488d14fec5567210afba86a (diff) |
Merge pull request #3932 from vespa-engine/hakonhall/do-not-export-service-monitor-internals
Do not export service monitor internals
18 files changed, 92 insertions, 28 deletions
diff --git a/configserver/src/main/resources/configserver-app/services.xml b/configserver/src/main/resources/configserver-app/services.xml index cd2aa6033db..983d4c29a9f 100644 --- a/configserver/src/main/resources/configserver-app/services.xml +++ b/configserver/src/main/resources/configserver-app/services.xml @@ -43,8 +43,8 @@ <preprocess:include file='config-models.xml' required='false' /> <preprocess:include file='node-repository.xml' required='false' /> <preprocess:include file='hosted-vespa/routing-status.xml' required='false' /> - <component id="com.yahoo.vespa.service.monitor.SlobrokMonitorManagerImpl" bundle="orchestrator" /> - <component id="com.yahoo.vespa.service.monitor.ServiceMonitorImpl" bundle="orchestrator" /> + <component id="com.yahoo.vespa.service.monitor.SlobrokMonitorManagerProvider" bundle="orchestrator" /> + <component id="com.yahoo.vespa.service.monitor.ServiceMonitorProvider" bundle="orchestrator" /> <component id="com.yahoo.vespa.orchestrator.ServiceMonitorInstanceLookupService" bundle="orchestrator" /> <component id="com.yahoo.vespa.orchestrator.status.ZookeeperStatusService" bundle="orchestrator" /> <component id="com.yahoo.vespa.orchestrator.controller.RetryingClusterControllerClientFactory" bundle="orchestrator" /> diff --git a/service-monitor/pom.xml b/service-monitor/pom.xml index c63bdf35574..4240a4980ff 100644 --- a/service-monitor/pom.xml +++ b/service-monitor/pom.xml @@ -23,6 +23,12 @@ </dependency> <dependency> <groupId>com.yahoo.vespa</groupId> + <artifactId>container-di</artifactId> + <version>${project.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.yahoo.vespa</groupId> <artifactId>jdisc_core</artifactId> <version>${project.version}</version> <scope>provided</scope> diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java index 46102a366d2..2432abcc2d4 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceModel.java @@ -21,15 +21,15 @@ import java.util.stream.Collectors; public class ServiceModel { private final Map<ApplicationInstanceReference, ApplicationInstance> applications; - ServiceModel(Map<ApplicationInstanceReference, ApplicationInstance> applications) { + public ServiceModel(Map<ApplicationInstanceReference, ApplicationInstance> applications) { this.applications = Collections.unmodifiableMap(applications); } - Map<ApplicationInstanceReference, ApplicationInstance> getAllApplicationInstances() { + public Map<ApplicationInstanceReference, ApplicationInstance> getAllApplicationInstances() { return applications; } - Optional<ApplicationInstance> getApplicationInstance(ApplicationInstanceReference reference) { + public Optional<ApplicationInstance> getApplicationInstance(ApplicationInstanceReference reference) { return Optional.ofNullable(applications.get(reference)); } diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java new file mode 100644 index 00000000000..b1af48f885d --- /dev/null +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorProvider.java @@ -0,0 +1,36 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.service.monitor; + +import com.google.inject.Inject; +import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.config.model.api.SuperModelProvider; +import com.yahoo.container.di.componentgraph.Provider; +import com.yahoo.jdisc.Metric; +import com.yahoo.jdisc.Timer; +import com.yahoo.vespa.service.monitor.internal.ServiceMonitorImpl; +import com.yahoo.vespa.service.monitor.internal.SlobrokMonitorManagerImpl; + +public class ServiceMonitorProvider implements Provider<ServiceMonitor> { + private final ServiceMonitorImpl serviceMonitor; + + @Inject + public ServiceMonitorProvider(SuperModelProvider superModelProvider, + ConfigserverConfig configserverConfig, + SlobrokMonitorManagerImpl slobrokMonitorManager, + Metric metric, + Timer timer) { + serviceMonitor = new ServiceMonitorImpl( + superModelProvider, + configserverConfig, + slobrokMonitorManager, + metric, + timer); + } + @Override + public ServiceMonitor get() { + return serviceMonitor; + } + + @Override + public void deconstruct() {} +} diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java new file mode 100644 index 00000000000..ca523ca5fdf --- /dev/null +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerProvider.java @@ -0,0 +1,23 @@ +// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.service.monitor; + +import com.google.inject.Inject; +import com.yahoo.container.di.componentgraph.Provider; +import com.yahoo.vespa.service.monitor.internal.SlobrokMonitorManagerImpl; + +public class SlobrokMonitorManagerProvider implements Provider<SlobrokMonitorManager> { + private final SlobrokMonitorManager slobrokMonitorManager; + + @Inject + public SlobrokMonitorManagerProvider() { + slobrokMonitorManager = new SlobrokMonitorManagerImpl(); + } + + @Override + public SlobrokMonitorManager get() { + return slobrokMonitorManager; + } + + @Override + public void deconstruct() {} +} diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ConfigServerApplication.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ConfigServerApplication.java index 7a76c072076..ea86de2b442 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ConfigServerApplication.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ConfigServerApplication.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceId; diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ModelGenerator.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ModelGenerator.java index 9716846dea4..961d5701901 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ModelGenerator.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ModelGenerator.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.HostInfo; @@ -19,6 +19,8 @@ import com.yahoo.vespa.applicationmodel.ServiceInstance; import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; import com.yahoo.vespa.applicationmodel.TenantId; +import com.yahoo.vespa.service.monitor.ServiceModel; +import com.yahoo.vespa.service.monitor.SlobrokMonitorManager; import java.util.HashMap; import java.util.HashSet; diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java index 5d2a9f296b4..0470d37af85 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/ServiceMonitorImpl.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/ServiceMonitorImpl.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; -import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.SuperModelProvider; import com.yahoo.config.provision.Zone; @@ -9,8 +8,8 @@ import com.yahoo.jdisc.Metric; import com.yahoo.jdisc.Timer; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; -import com.yahoo.vespa.service.monitor.internal.ServiceModelCache; -import com.yahoo.vespa.service.monitor.internal.ServiceMonitorMetrics; +import com.yahoo.vespa.service.monitor.ServiceModel; +import com.yahoo.vespa.service.monitor.ServiceMonitor; import java.util.Collections; import java.util.List; @@ -25,7 +24,6 @@ public class ServiceMonitorImpl implements ServiceMonitor { private final List<String> configServerHosts; private final ServiceModelCache serviceModelCache; - @Inject public ServiceMonitorImpl(SuperModelProvider superModelProvider, ConfigserverConfig configserverConfig, SlobrokMonitorManagerImpl slobrokMonitorManager, diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitor.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitor.java index 4da7b7c0e68..e0195e11759 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitor.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitor.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.HostInfo; diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java index becd7cf7ef6..f816111f2ee 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerImpl.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImpl.java @@ -1,7 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; -import com.google.inject.Inject; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; import com.yahoo.config.model.api.SuperModelListener; @@ -11,6 +10,7 @@ import com.yahoo.log.LogLevel; import com.yahoo.vespa.applicationmodel.ConfigId; import com.yahoo.vespa.applicationmodel.ServiceStatus; import com.yahoo.vespa.applicationmodel.ServiceType; +import com.yahoo.vespa.service.monitor.SlobrokMonitorManager; import java.util.HashMap; import java.util.List; @@ -27,9 +27,8 @@ public class SlobrokMonitorManagerImpl implements SuperModelListener, SlobrokMon private final Object monitor = new Object(); private final HashMap<ApplicationId, SlobrokMonitor> slobrokMonitors = new HashMap<>(); - @Inject public SlobrokMonitorManagerImpl() { - this(() -> new SlobrokMonitor()); + this(SlobrokMonitor::new); } SlobrokMonitorManagerImpl(Supplier<SlobrokMonitor> slobrokMonitorFactory) { diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SuperModelListenerImpl.java b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImpl.java index 506a2f7d649..b44d73125bd 100644 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/SuperModelListenerImpl.java +++ b/service-monitor/src/main/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImpl.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; @@ -7,8 +7,7 @@ import com.yahoo.config.model.api.SuperModelListener; import com.yahoo.config.model.api.SuperModelProvider; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Zone; -import com.yahoo.vespa.service.monitor.internal.LatencyMeasurement; -import com.yahoo.vespa.service.monitor.internal.ServiceMonitorMetrics; +import com.yahoo.vespa.service.monitor.ServiceModel; import java.util.List; import java.util.function.Supplier; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigServerApplicationTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ConfigServerApplicationTest.java index 8eebdbb611b..d00dca99116 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ConfigServerApplicationTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ConfigServerApplicationTest.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.vespa.applicationmodel.ApplicationInstance; import com.yahoo.vespa.applicationmodel.ServiceStatus; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ExampleModel.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ExampleModel.java index df9391a5ec9..fca1512e3ea 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ExampleModel.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ExampleModel.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.HostInfo; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ExampleModelTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ExampleModelTest.java index bcd4eae1b4e..64ba2ba5097 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ExampleModelTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ExampleModelTest.java @@ -1,6 +1,6 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.HostInfo; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ModelGeneratorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java index 1d8e2ad4ceb..cf07c39950c 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/ModelGeneratorTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/ModelGeneratorTest.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.SuperModel; import com.yahoo.config.provision.Environment; @@ -10,6 +10,7 @@ import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.ServiceCluster; import com.yahoo.vespa.applicationmodel.ServiceInstance; import com.yahoo.vespa.applicationmodel.ServiceStatus; +import com.yahoo.vespa.service.monitor.ServiceModel; import org.junit.Test; import java.util.Collections; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerImplImplTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImplImplTest.java index d21088ccbf4..79f927f6161 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorManagerImplImplTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorManagerImplImplTest.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorTest.java index 2cbe48c7be5..075647e9c16 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SlobrokMonitorTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SlobrokMonitorTest.java @@ -1,5 +1,5 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.jrt.slobrok.api.Mirror; diff --git a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SuperModelListenerImplTest.java b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java index e2aaf1c9838..6233f39b9cf 100644 --- a/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/SuperModelListenerImplTest.java +++ b/service-monitor/src/test/java/com/yahoo/vespa/service/monitor/internal/SuperModelListenerImplTest.java @@ -1,11 +1,11 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.service.monitor; +package com.yahoo.vespa.service.monitor.internal; import com.yahoo.config.model.api.ApplicationInfo; import com.yahoo.config.model.api.SuperModel; import com.yahoo.config.model.api.SuperModelProvider; import com.yahoo.config.provision.Zone; -import com.yahoo.vespa.service.monitor.internal.ServiceMonitorMetrics; +import com.yahoo.vespa.service.monitor.ServiceModel; import org.junit.Test; import java.util.ArrayList; |