in src/main/java/com/vispana/vespa/state/assemblers/ContainerAssembler.java [41:70]
private static ContainerCluster containerCluster(
String configHost, Map<String, MetricsNode> vespaMetrics, ContainerSchema containerSchema) {
var nodesInCluster =
containerSchema.getServices().stream()
.map(
service -> {
var hostname = service.getHostname();
var queryPort =
service.getPorts().stream()
.filter(port -> port.getTags().contains("query"))
.map(port -> port.getNumber())
.findFirst()
.orElse(-1L);
var processStatus = processStatus(hostname, vespaMetrics);
var systemMetrics = systemMetrics(vespaMetrics.get(hostname));
return new ContainerNode(
service.getIndex().toString(),
new Host(hostname, queryPort.intValue()),
processStatus,
systemMetrics);
})
.toList();
var clusterId = containerSchema.getClusterId();
var containerType = fetchContainerType(configHost, clusterId);
var canIndex = containerType.canIndex();
var canSearch = containerType.canSearch();
return new ContainerCluster(clusterId, nodesInCluster, canIndex, canSearch);
}