private void updateEmptyExclusiveHosts(NodeList nodes) {
        Instant now = nodeRepository().clock().instant();
        Instant tenMinutesAgo = now.minus(Duration.ofMinutes(10));
        int emptyHosts = nodes.parents().state(State.active)
                              .matching(node -> (node.type() != NodeType.host && node.type().isHost()) ||
                                                node.exclusiveToApplicationId().isPresent())
                              .matching(host -> host.history().hasEventBefore(History.Event.Type.activated,
                                                                              tenMinutesAgo))
                              .matching(host -> nodes.childrenOf(host).isEmpty())
                              .matching(host -> host.hostEmptyAt()
                                      .map(time -> time.isBefore(tenMinutesAgo))
                                      .orElse(true))
                              .size();
        metric.set(ConfigServerMetrics.NODES_EMPTY_EXCLUSIVE.baseName(), emptyHosts, null);
    }
A version 6.163.20 will be returned as a number 163.020. The major
version can normally be inferred. As long as the micro version stays
below 1000 these numbers sort like Version.
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java