diff options
Diffstat (limited to 'service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java')
-rw-r--r-- | service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java b/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java deleted file mode 100644 index d4a46bd59a9..00000000000 --- a/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java +++ /dev/null @@ -1,121 +0,0 @@ -// 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.model; - -import com.yahoo.config.model.api.ApplicationInfo; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Zone; -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.applicationmodel.HostName; -import com.yahoo.vespa.applicationmodel.ServiceInstance; -import com.yahoo.vespa.service.duper.DuperModelManager; -import com.yahoo.vespa.service.manager.MonitorManager; -import com.yahoo.vespa.service.manager.UnionMonitorManager; -import com.yahoo.vespa.service.monitor.ServiceHostListener; -import com.yahoo.vespa.service.monitor.ServiceModel; -import com.yahoo.vespa.service.monitor.ServiceMonitor; -import com.yahoo.vespa.service.monitor.ServiceStatusProvider; - -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - -/** - * An uncached supplier of ServiceModel based on the DuperModel and MonitorManager. - * - * @author hakonhall - */ -public class ServiceModelProvider implements ServiceMonitor { - private final ServiceMonitorMetrics metrics; - private final DuperModelManager duperModelManager; - private final ModelGenerator modelGenerator; - private final ServiceStatusProvider serviceStatusProvider; - - public ServiceModelProvider(DuperModelManager duperModelManager, - UnionMonitorManager monitorManager, - Metric metric, - Timer timer, - Zone zone) { - this(monitorManager, - new ServiceMonitorMetrics(metric, timer), - duperModelManager, - new ModelGenerator(zone) - ); - } - - ServiceModelProvider(MonitorManager monitorManager, - ServiceMonitorMetrics metrics, - DuperModelManager duperModelManager, - ModelGenerator modelGenerator) { - this.serviceStatusProvider = monitorManager; - this.metrics = metrics; - this.duperModelManager = duperModelManager; - this.modelGenerator = modelGenerator; - - duperModelManager.registerListener(monitorManager); - } - - @Override - public ServiceModel getServiceModelSnapshot() { - try (LatencyMeasurement measurement = metrics.startServiceModelSnapshotLatencyMeasurement()) { - return modelGenerator.toServiceModel(duperModelManager.getApplicationInfos(), serviceStatusProvider); - } - } - - @Override - public Set<ApplicationInstanceReference> getAllApplicationInstanceReferences() { - return modelGenerator.toApplicationInstanceReferenceSet(duperModelManager.getApplicationInfos()); - } - - @Override - public Optional<ApplicationInstance> getApplication(HostName hostname) { - Optional<ApplicationInfo> applicationInfo = getApplicationInfo(hostname); - if (applicationInfo.isEmpty()) { - return Optional.empty(); - } - - return Optional.of(modelGenerator.toApplicationInstance(applicationInfo.get(), serviceStatusProvider)); - } - - @Override - public Optional<ApplicationInstance> getApplication(ApplicationInstanceReference reference) { - return getApplicationInfo(reference) - .map(applicationInfo -> modelGenerator.toApplicationInstance(applicationInfo, serviceStatusProvider)); - } - - @Override - public Optional<ApplicationInstance> getApplicationNarrowedTo(HostName hostname) { - Optional<ApplicationInfo> applicationInfo = getApplicationInfo(hostname); - if (applicationInfo.isEmpty()) { - return Optional.empty(); - } - - return Optional.of(modelGenerator.toApplicationNarrowedToHost( - applicationInfo.get(), hostname, serviceStatusProvider)); - } - - @Override - public Map<HostName, List<ServiceInstance>> getServicesByHostname() { - return getServiceModelSnapshot().getServiceInstancesByHostName(); - } - - @Override - public void registerListener(ServiceHostListener listener) { - var duperModelListener = ServiceHostListenerAdapter.asDuperModelListener(listener, modelGenerator); - duperModelManager.registerListener(duperModelListener); - } - - private Optional<ApplicationInfo> getApplicationInfo(ApplicationInstanceReference reference) { - ApplicationId applicationId = ApplicationInstanceGenerator.toApplicationId(reference); - return duperModelManager.getApplicationInfo(applicationId); - } - - private Optional<ApplicationInfo> getApplicationInfo(HostName hostname) { - // The duper model uses HostName from config.provision, which is more natural than applicationmodel. - var configProvisionHostname = com.yahoo.config.provision.HostName.from(hostname.s()); - return duperModelManager.getApplicationInfo(configProvisionHostname); - } -} |