You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2022/12/05 13:28:25 UTC

[skywalking] 01/01: Remove timeout offset and correct `MetricsExtension` declarations

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch polish-update
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit 45539ea10b77178674709c2ebf4ab0a4f4509834
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Dec 5 21:28:07 2022 +0800

    Remove timeout offset and correct `MetricsExtension` declarations
---
 docs/en/changes/changes.md                                     |  2 ++
 .../relation/endpoint/EndpointRelationServerSideMetrics.java   |  2 ++
 .../relation/process/ProcessRelationClientSideMetrics.java     |  7 ++-----
 .../relation/process/ProcessRelationServerSideMetrics.java     |  7 ++-----
 .../relation/service/ServiceRelationClientSideMetrics.java     |  6 ++----
 .../relation/service/ServiceRelationServerSideMetrics.java     |  4 +++-
 .../server/core/analysis/worker/MetricsPersistentWorker.java   | 10 +---------
 7 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index bf96fcabe7..9e1ca49623 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -21,6 +21,8 @@
     // for the specific minute of booted successfully, the metrics are expected to load from database when
     // it doesn't exist in the cache.
 ```
+* Remove the offset of metric session timeout according to worker creation sequence.
+* Correct `MetricsExtension` annotations declarations in manual entities.
 
 #### UI
 
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java
index 32dba2fb16..6437a71d97 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/endpoint/EndpointRelationServerSideMetrics.java
@@ -22,6 +22,7 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.skywalking.oap.server.core.Const;
+import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
 import org.apache.skywalking.oap.server.core.analysis.Stream;
 import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
 import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
@@ -40,6 +41,7 @@ import static org.apache.skywalking.oap.server.core.analysis.metrics.Metrics.TIM
 
 @Stream(name = EndpointRelationServerSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.ENDPOINT_RELATION,
     builder = EndpointRelationServerSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
+@MetricsExtension(supportDownSampling = true, supportUpdate = false, timeRelativeID = true)
 @EqualsAndHashCode(of = {
     "entityId"
 }, callSuper = true)
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java
index bb167c41bb..99db7396a8 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationClientSideMetrics.java
@@ -37,7 +37,7 @@ import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
 
 @Stream(name = ProcessRelationClientSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.PROCESS_RELATION,
         builder = ProcessRelationClientSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
-@MetricsExtension(supportDownSampling = false, supportUpdate = true, timeRelativeID = true)
+@MetricsExtension(supportDownSampling = false, supportUpdate = false, timeRelativeID = true)
 @EqualsAndHashCode(of = {
         "entityId"
 }, callSuper = true)
@@ -78,10 +78,7 @@ public class ProcessRelationClientSideMetrics extends Metrics {
 
     @Override
     public boolean combine(Metrics metrics) {
-        if (this.getTimeBucket() > metrics.getTimeBucket()) {
-            this.setTimeBucket(metrics.getTimeBucket());
-        }
-        return true;
+        return false;
     }
 
     @Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java
index 5f7225ff73..7293605564 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/process/ProcessRelationServerSideMetrics.java
@@ -37,7 +37,7 @@ import org.apache.skywalking.oap.server.core.storage.type.StorageBuilder;
 
 @Stream(name = ProcessRelationServerSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.PROCESS_RELATION,
         builder = ProcessRelationServerSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
-@MetricsExtension(supportDownSampling = false, supportUpdate = true, timeRelativeID = true)
+@MetricsExtension(supportDownSampling = false, supportUpdate = false, timeRelativeID = true)
 @EqualsAndHashCode(of = {
         "entityId"
 }, callSuper = true)
@@ -78,10 +78,7 @@ public class ProcessRelationServerSideMetrics extends Metrics {
 
     @Override
     public boolean combine(Metrics metrics) {
-        if (this.getTimeBucket() > metrics.getTimeBucket()) {
-            this.setTimeBucket(metrics.getTimeBucket());
-        }
-        return true;
+        return false;
     }
 
     @Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java
index 95c75ce53d..d559aece29 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationClientSideMetrics.java
@@ -77,11 +77,9 @@ public class ServiceRelationClientSideMetrics extends Metrics {
         ServiceRelationClientSideMetrics serviceRelationClientSideMetrics = (ServiceRelationClientSideMetrics) metrics;
         if (this.getComponentId() == 0 && serviceRelationClientSideMetrics.getComponentId() != 0) {
             this.componentId = serviceRelationClientSideMetrics.getComponentId();
+            return true;
         }
-        if (this.getTimeBucket() > metrics.getTimeBucket()) {
-            this.setTimeBucket(metrics.getTimeBucket());
-        }
-        return true;
+        return false;
     }
 
     @Override
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java
index 77b7032690..216a7b0ecc 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java
@@ -22,6 +22,7 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.skywalking.oap.server.core.Const;
+import org.apache.skywalking.oap.server.core.analysis.MetricsExtension;
 import org.apache.skywalking.oap.server.core.analysis.Stream;
 import org.apache.skywalking.oap.server.core.analysis.metrics.Metrics;
 import org.apache.skywalking.oap.server.core.analysis.worker.MetricsStreamProcessor;
@@ -40,6 +41,7 @@ import static org.apache.skywalking.oap.server.core.analysis.metrics.Metrics.TIM
 
 @Stream(name = ServiceRelationServerSideMetrics.INDEX_NAME, scopeId = DefaultScopeDefine.SERVICE_RELATION,
     builder = ServiceRelationServerSideMetrics.Builder.class, processor = MetricsStreamProcessor.class)
+@MetricsExtension(supportDownSampling = true, supportUpdate = false, timeRelativeID = true)
 @EqualsAndHashCode(of = {
     "entityId"
 }, callSuper = true)
@@ -76,7 +78,7 @@ public class ServiceRelationServerSideMetrics extends Metrics {
 
     @Override
     public boolean combine(Metrics metrics) {
-        return true;
+        return false;
     }
 
     @Override
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 403e2b8c67..dee1994040 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
@@ -53,11 +53,6 @@ import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
  */
 @Slf4j
 public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
-    /**
-     * The counter of MetricsPersistentWorker instance, to calculate session timeout offset.
-     */
-    private static long SESSION_TIMEOUT_OFFSITE_COUNTER = 0;
-
     private final Model model;
     private final MetricsSessionCache sessionCache;
     private final IMetricsDAO metricsDAO;
@@ -157,7 +152,6 @@ public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
             "metrics_persistent_cache", "The counter of metrics status, new or cached.",
             new MetricsTag.Keys("status"), new MetricsTag.Values("cached")
         );
-        SESSION_TIMEOUT_OFFSITE_COUNTER++;
         serverStatusService = moduleDefineHolder.find(CoreModule.NAME).provider().getService(ServerStatusService.class);
     }
 
@@ -176,9 +170,7 @@ public class MetricsPersistentWorker extends PersistenceWorker<Metrics> {
              supportUpdate, storageSessionTimeout, metricsDataTTL, kind
         );
         // For a down-sampling metrics, we prolong the session timeout for 4 times, nearly 5 minutes.
-        // And add offset according to worker creation sequence, to avoid context clear overlap,
-        // eventually optimize load of IDs reading.
-        sessionCache.setTimeoutThreshold(storageSessionTimeout * 4 + SESSION_TIMEOUT_OFFSITE_COUNTER * 200);
+        sessionCache.setTimeoutThreshold(storageSessionTimeout * 4);
         // The down sampling level worker executes every 4 periods.
         this.persistentMod = 4;
     }