This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new f1c7e93983 Fix miss set `LastUpdateTimestamp` that caused the metrics
session to expire (#10111)
f1c7e93983 is described below
commit f1c7e939831d6a2286c0f3108cddb9241898ec1a
Author: Wan Kai <[email protected]>
AuthorDate: Tue Dec 6 18:08:30 2022 +0800
Fix miss set `LastUpdateTimestamp` that caused the metrics session to
expire (#10111)
---
docs/en/changes/changes.md | 1 +
.../oap/server/core/analysis/worker/MetricsPersistentWorker.java | 8 +++++---
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 3e4c16ad61..6de767411f 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -25,6 +25,7 @@
* Correct `MetricsExtension` annotations declarations in manual entities.
* Support component IDs' priority in process relation metrics.
* Remove abandon logic in MergableBufferedData, which caused unexpected
no-update.
+* Fix miss set `LastUpdateTimestamp` that caused the metrics session to expire.
#### UI
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
index dee1994040..8cff453a1d 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java
@@ -247,6 +247,7 @@ public class MetricsPersistentWorker extends
PersistenceWorker<Metrics> {
for (Metrics metrics : metricsList) {
Metrics cachedMetrics = sessionCache.get(metrics);
if (cachedMetrics != null) {
+ cachedMetrics.setLastUpdateTimestamp(timestamp);
/*
* If the metrics is not supportUpdate, defined through
MetricsExtension#supportUpdate,
* then no merge and further process happens.
@@ -269,7 +270,6 @@ public class MetricsPersistentWorker extends
PersistenceWorker<Metrics> {
new SessionCacheCallback(sessionCache,
cachedMetrics)
));
nextWorker(cachedMetrics);
- cachedMetrics.setLastUpdateTimestamp(timestamp);
} else {
metrics.calculate();
prepareRequests.add(
@@ -339,8 +339,10 @@ public class MetricsPersistentWorker extends
PersistenceWorker<Metrics> {
if (notInCacheMetrics.isEmpty()) {
return;
}
-
- metricsDAO.multiGet(model, notInCacheMetrics).forEach(m ->
sessionCache.put(m));
+ metricsDAO.multiGet(model, notInCacheMetrics).forEach(m -> {
+ m.setLastUpdateTimestamp(currentTimeMillis);
+ sessionCache.put(m);
+ });
} catch (final Exception e) {
log.error("Failed to load metrics for merging", e);
}