diff --git a/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/LastUpdateMetric.java b/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/LastUpdateMetric.java new file mode 100644 index 00000000..a5fea312 --- /dev/null +++ b/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/LastUpdateMetric.java @@ -0,0 +1,19 @@ +package eu.dnetlib.broker.common.metrics; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import eu.dnetlib.common.metrics.MetricInfo; + +@Component("provide_broker_last_metrics_updater_run_timestamp_seconds") +public class LastUpdateMetric extends MetricInfo { + + @Autowired + private MetricsCacheUtils metricsCacheUtils; + + @Override + public double obtainValue() { + return metricsCacheUtils.lastUpdateInSeconds(); + } + +} diff --git a/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/MetricsCacheUtils.java b/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/MetricsCacheUtils.java index ed4f43c0..b64d0858 100644 --- a/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/MetricsCacheUtils.java +++ b/libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/MetricsCacheUtils.java @@ -73,6 +73,12 @@ public class MetricsCacheUtils { return subscriptionRepository.countSubscribers(); } + @Cacheable(value = MetricsCacheUtils.metrics_cache, key = "#root.methodName") + public double lastUpdateInSeconds() { + log.debug("Call to cached method: lastUpdateInSeconds()"); + return System.currentTimeMillis() / 1000; + } + @Cacheable(value = MetricsCacheUtils.metrics_cache, key = "#root.methodName") public double countDatasourcesWithSubscriptions() { log.debug("Call to cached method: countDatasourcesWithSubscriptions()");