diff options
-rw-r--r-- | metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/NodeMetricsClient.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/NodeMetricsClient.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/NodeMetricsClient.java index f67d418f542..0a8597dc6e3 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/NodeMetricsClient.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/NodeMetricsClient.java @@ -61,7 +61,7 @@ public class NodeMetricsClient { boolean updateSnapshots(ConsumerId consumer, Duration ttl) { var snapshot = snapshots.get(consumer); - if ((snapshot) != null && clock.instant().isBefore(snapshot.timestamp.plus(ttl))) return true; + if ((snapshot != null) && snapshot.isValid(clock.instant(), ttl)) return true; snapshot = retrieveMetrics(consumer); snapshots.put(consumer, snapshot); @@ -113,6 +113,9 @@ public class NodeMetricsClient { this.timestamp = timestamp; this.metrics = metrics; } + boolean isValid(Instant now, Duration ttl) { + return (metrics != null) && !metrics.isEmpty() && now.isBefore(timestamp.plus(ttl)); + } } } |