From 0a5c711629082b86756848650c17a6b1159580d1 Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Mon, 2 Aug 2021 09:36:02 +0200 Subject: [PATCH] metric for lastUpdate --- .../common/metrics/LastUpdateMetric.java | 19 +++++++++++++++++++ .../common/metrics/MetricsCacheUtils.java | 6 ++++++ 2 files changed, 25 insertions(+) create mode 100644 libs/dnet-broker-apps-common/src/main/java/eu/dnetlib/broker/common/metrics/LastUpdateMetric.java 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()");