summaryrefslogtreecommitdiffstats
path: root/service-monitor/src/main/java/com/yahoo/vespa/service/model/ServiceModelProvider.java
diff options
context:
space:
mode:
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.java121
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);
- }
-}