private boolean isOnGenerationAfterWarmup(NodeMetricSnapshot snapshot,
                                              Optional<Node> node,
                                              long generation,
                                              Optional<Instant> generationChange) {
        if ( ! node.isPresent()) return false; // Node has been removed
        if ( ! onAtLeastGeneration(generation, snapshot)) return false;
        if (recentlyChangedGeneration(snapshot, generationChange)) return false;
        if (recentlyCameUp(snapshot, node.get())) return false;
        return true;
    }
Returns the instant this changed to the given generation, or empty if no *change* to this generation is present
node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/NodeTimeseries.java