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 2021/06/29 14:49:04 UTC
[skywalking] branch master updated: Perf: cache metrics id and
entity id (#7201)
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 f5b7c3e Perf: cache metrics id and entity id (#7201)
f5b7c3e is described below
commit f5b7c3e32d022973050340e64dc63835787f5ad8
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Tue Jun 29 22:48:51 2021 +0800
Perf: cache metrics id and entity id (#7201)
There are a lot of calls to `Metrics.id()` and `ISource.getEntityId`, which calculates the id by manipulating strings in every single call, producing many garbage objects.
In this patch, I cache the id and only calculate the id if it's requested for the first time.
---
CHANGES.md | 1 +
.../oap/server/exporter/provider/grpc/MockMetrics.java | 2 +-
.../oal-rt/src/main/resources/code-templates/metrics/id.ftl | 2 +-
.../oap/server/core/alarm/provider/RunningRuleTest.java | 6 +++---
.../core/analysis/manual/endpoint/EndpointTraffic.java | 2 +-
.../core/analysis/manual/instance/InstanceTraffic.java | 2 +-
.../analysis/manual/networkalias/NetworkAddressAlias.java | 2 +-
.../relation/endpoint/EndpointRelationServerSideMetrics.java | 2 +-
.../instance/ServiceInstanceRelationClientSideMetrics.java | 2 +-
.../instance/ServiceInstanceRelationServerSideMetrics.java | 2 +-
.../relation/service/ServiceRelationClientSideMetrics.java | 2 +-
.../relation/service/ServiceRelationServerSideMetrics.java | 2 +-
.../server/core/analysis/manual/service/ServiceTraffic.java | 2 +-
.../core/analysis/meter/function/HistogramFunction.java | 2 +-
.../core/analysis/meter/function/PercentileFunction.java | 2 +-
.../server/core/analysis/meter/function/avg/AvgFunction.java | 2 +-
.../analysis/meter/function/avg/AvgHistogramFunction.java | 2 +-
.../meter/function/avg/AvgHistogramPercentileFunction.java | 2 +-
.../core/analysis/meter/function/avg/AvgLabeledFunction.java | 2 +-
.../core/analysis/meter/function/latest/LatestFunction.java | 2 +-
.../server/core/analysis/meter/function/sum/SumFunction.java | 2 +-
.../skywalking/oap/server/core/analysis/metrics/Metrics.java | 12 ++++++++++++
.../org/apache/skywalking/oap/server/core/source/Event.java | 2 +-
.../apache/skywalking/oap/server/core/source/Service.java | 7 ++++++-
.../skywalking/oap/server/core/source/ServiceInstance.java | 7 ++++++-
.../oap/server/core/analysis/metrics/ApdexMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/CountMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/HeatMapMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/LongAvgMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/MaxLongMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/MetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/MinLongMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/PercentMetricsTest.java | 2 +-
.../server/core/analysis/metrics/PercentileMetricsTest.java | 2 +-
.../oap/server/core/analysis/metrics/PxxMetricsTest.java | 2 +-
35 files changed, 58 insertions(+), 35 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index 198cea8..9d49bf9 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -48,6 +48,7 @@ Release Notes.
* Performance: trim useless metadata fields in Envoy ALS metadata to improve performance.
* Fix: slowDBAccessThreshold dynamic config error when not configured.
* Performance: cache regex pattern and result, optimize string concatenation in Envy ALS analyzer.
+* Performance: cache metrics id and entity id in `Metrics` and `ISource`.
#### UI
* Fix the date component for log conditions.
diff --git a/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java b/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java
index 98b8af2..6a55802 100644
--- a/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java
+++ b/oap-server/exporter/src/test/java/org/apache/skywalking/oap/server/exporter/provider/grpc/MockMetrics.java
@@ -24,7 +24,7 @@ import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
public class MockMetrics extends Metrics {
@Override
- public String id() {
+ protected String id0() {
return "mock-metrics";
}
diff --git a/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl b/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl
index 141b0c8..b9933d3 100644
--- a/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl
+++ b/oap-server/oal-rt/src/main/resources/code-templates/metrics/id.ftl
@@ -1,4 +1,4 @@
-public String id() {
+protected String id0() {
StringBuilder splitJointId = new StringBuilder(String.valueOf(getTimeBucket()));
<#list fieldsFromSource as sourceField>
<#if sourceField.isID()>
diff --git a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java
index a025aeb..2802722 100644
--- a/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java
+++ b/oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java
@@ -429,7 +429,7 @@ public class RunningRuleTest {
private int value;
@Override
- public String id() {
+ protected String id0() {
return null;
}
@@ -486,7 +486,7 @@ public class RunningRuleTest {
}
@Override
- public String id() {
+ protected String id0() {
return null;
}
@@ -538,7 +538,7 @@ public class RunningRuleTest {
private DataTable value;
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
index 5f38f73..e302904 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/endpoint/EndpointTraffic.java
@@ -56,7 +56,7 @@ public class EndpointTraffic extends Metrics {
private String name = Const.EMPTY_STRING;
@Override
- public String id() {
+ protected String id0() {
// Downgrade the time bucket to day level only.
// supportDownSampling == false for this entity.
return IDManager.EndpointID.buildId(
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java
index 7863bb7..e66595b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/instance/InstanceTraffic.java
@@ -121,7 +121,7 @@ public class InstanceTraffic extends Metrics {
}
@Override
- public String id() {
+ protected String id0() {
return IDManager.ServiceInstanceID.buildId(serviceId, name);
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java
index b524a74..75b3ff7 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/networkalias/NetworkAddressAlias.java
@@ -82,7 +82,7 @@ public class NetworkAddressAlias extends Metrics {
}
@Override
- public String id() {
+ protected String id0() {
return IDManager.NetworkAddressAliasDefine.buildId(address);
}
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 b7649a3..abde690 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
@@ -62,7 +62,7 @@ public class EndpointRelationServerSideMetrics extends Metrics {
private String entityId;
@Override
- public String id() {
+ protected String id0() {
String splitJointId = String.valueOf(getTimeBucket());
splitJointId += Const.ID_CONNECTOR + entityId;
return splitJointId;
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java
index 07e5bbb..e8c396c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationClientSideMetrics.java
@@ -72,7 +72,7 @@ public class ServiceInstanceRelationClientSideMetrics extends Metrics {
private String entityId;
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java
index 41dcc5f..480c1cc 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/instance/ServiceInstanceRelationServerSideMetrics.java
@@ -72,7 +72,7 @@ public class ServiceInstanceRelationServerSideMetrics extends Metrics {
private String entityId;
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
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 b52842c..d9205fc 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
@@ -62,7 +62,7 @@ public class ServiceRelationClientSideMetrics extends Metrics {
private String entityId;
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
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 8a983c7..ac5ed43 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
@@ -62,7 +62,7 @@ public class ServiceRelationServerSideMetrics extends Metrics {
private String entityId;
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java
index ad26c81..d5ab808 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/service/ServiceTraffic.java
@@ -67,7 +67,7 @@ public class ServiceTraffic extends Metrics {
private String group;
@Override
- public String id() {
+ protected String id0() {
return IDManager.ServiceID.buildId(name, nodeType);
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
index 1c933ea..e6ee54e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/HistogramFunction.java
@@ -138,7 +138,7 @@ public abstract class HistogramFunction extends Metrics implements AcceptableVal
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
index 061be7e..2b67047 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/PercentileFunction.java
@@ -246,7 +246,7 @@ public abstract class PercentileFunction extends Metrics implements AcceptableVa
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
index f3bb41d..dc2dec3 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgFunction.java
@@ -148,7 +148,7 @@ public abstract class AvgFunction extends Metrics implements AcceptableValue<Lon
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
index 2fefde8..f2bfc39 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramFunction.java
@@ -167,7 +167,7 @@ public abstract class AvgHistogramFunction extends Metrics implements Acceptable
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
index fe879e6..1dd353f 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java
@@ -318,7 +318,7 @@ public abstract class AvgHistogramPercentileFunction extends Metrics implements
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
index cb4f55e..5e11958 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgLabeledFunction.java
@@ -150,7 +150,7 @@ public abstract class AvgLabeledFunction extends Metrics implements AcceptableVa
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
index ab68e6a..9e49426 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/latest/LatestFunction.java
@@ -129,7 +129,7 @@ public abstract class LatestFunction extends Metrics implements AcceptableValue<
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + entityId;
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
index a0ccbab..d229f6b 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/sum/SumFunction.java
@@ -123,7 +123,7 @@ public abstract class SumFunction extends Metrics implements AcceptableValue<Lon
}
@Override
- public String id() {
+ protected String id0() {
return getTimeBucket() + Const.ID_CONNECTOR + getEntityId();
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java
index f61389a..904929e 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/metrics/Metrics.java
@@ -131,4 +131,16 @@ public abstract class Metrics extends StreamData implements StorageData {
private boolean isDayBucket() {
return TimeBucket.isDayBucket(timeBucket);
}
+
+ private volatile String id;
+
+ @Override
+ public String id() {
+ if (id == null) {
+ id = id0();
+ }
+ return id;
+ }
+
+ protected abstract String id0();
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java
index 17be3ae..f985d08 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Event.java
@@ -73,7 +73,7 @@ public class Event extends Metrics implements ISource, WithMetadata, LongValueHo
public static final String END_TIME = "end_time";
@Override
- public String id() {
+ protected String id0() {
return getUuid();
}
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java
index f140e70..07a2c65 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/Service.java
@@ -31,6 +31,8 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.SE
@ScopeDeclaration(id = SERVICE, name = "Service", catalog = SERVICE_CATALOG_NAME)
@ScopeDefaultColumn.VirtualColumnDefinition(fieldName = "entityId", columnName = "entity_id", isID = true, type = String.class)
public class Service extends Source {
+ private volatile String entityId;
+
@Override
public int scope() {
return DefaultScopeDefine.SERVICE;
@@ -38,7 +40,10 @@ public class Service extends Source {
@Override
public String getEntityId() {
- return IDManager.ServiceID.buildId(name, nodeType);
+ if (entityId == null) {
+ entityId = IDManager.ServiceID.buildId(name, nodeType);
+ }
+ return entityId;
}
@Getter
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java
index a4070bd..b93742c 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/ServiceInstance.java
@@ -31,6 +31,8 @@ import static org.apache.skywalking.oap.server.core.source.DefaultScopeDefine.SE
@ScopeDeclaration(id = SERVICE_INSTANCE, name = "ServiceInstance", catalog = SERVICE_INSTANCE_CATALOG_NAME)
@ScopeDefaultColumn.VirtualColumnDefinition(fieldName = "entityId", columnName = "entity_id", isID = true, type = String.class)
public class ServiceInstance extends Source {
+ private volatile String entityId;
+
@Override
public int scope() {
return DefaultScopeDefine.SERVICE_INSTANCE;
@@ -38,7 +40,10 @@ public class ServiceInstance extends Source {
@Override
public String getEntityId() {
- return IDManager.ServiceInstanceID.buildId(serviceId, name);
+ if (entityId == null) {
+ entityId = IDManager.ServiceInstanceID.buildId(serviceId, name);
+ }
+ return entityId;
}
@Getter
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java
index cd347c5..446ee67 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/ApdexMetricsTest.java
@@ -104,7 +104,7 @@ public class ApdexMetricsTest {
public class ApdexMetricsImpl extends ApdexMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java
index 5c7d1a4..0809ebc 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/CountMetricsTest.java
@@ -56,7 +56,7 @@ public class CountMetricsTest {
public class CountMetricsImpl extends CountMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java
index 6be4f77..713b4fa 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/HeatMapMetricsTest.java
@@ -88,7 +88,7 @@ public class HeatMapMetricsTest {
public class HistogramMetricsMocker extends HistogramMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java
index aa51911..4867dc5 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/LongAvgMetricsTest.java
@@ -52,7 +52,7 @@ public class LongAvgMetricsTest {
public class LongAvgMetricsImpl extends LongAvgMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java
index e21c59c..f3dcd24 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MaxLongMetricsTest.java
@@ -54,7 +54,7 @@ public class MaxLongMetricsTest {
public class MaxLongMetricsImpl extends MaxLongMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java
index a4834e8..351441e 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MetricsTest.java
@@ -73,7 +73,7 @@ public class MetricsTest {
public class MetricsMocker extends Metrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java
index 9548a3b..b02dca0 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/MinLongMetricsTest.java
@@ -59,7 +59,7 @@ public class MinLongMetricsTest {
public class MinLongMetricsImpl extends MinLongMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java
index 7b04bc1..eec91eb 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentMetricsTest.java
@@ -67,7 +67,7 @@ public class PercentMetricsTest {
public class PercentMetricsImpl extends PercentMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java
index 10c140a..512cc99 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PercentileMetricsTest.java
@@ -118,7 +118,7 @@ public class PercentileMetricsTest {
public class PercentileMetricsMocker extends PercentileMetrics {
@Override
- public String id() {
+ protected String id0() {
return null;
}
diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PxxMetricsTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PxxMetricsTest.java
index acbadc1..fc1b8e9 100644
--- a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PxxMetricsTest.java
+++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/analysis/metrics/PxxMetricsTest.java
@@ -97,7 +97,7 @@ public class PxxMetricsTest {
}
@Override
- public String id() {
+ protected String id0() {
return null;
}