diff --git a/apm-dist/release-docs/LICENSE b/apm-dist/release-docs/LICENSE index c7c4cf568b7be17451a30664f313b38fe7b7747d..9dc3f5344ae6bd1a79794a8aa213d46d6f8e53b9 100644 --- a/apm-dist/release-docs/LICENSE +++ b/apm-dist/release-docs/LICENSE @@ -225,15 +225,15 @@ Apache 2.0 licenses The following components are provided under the Apache License. See project link for details. The text of each license is the standard Apache 2.0 license. - raphw (byte-buddy) 1.7.9: http://bytebuddy.net/ , Apache 2.0 - Google: grpc 1.8.0: https://grpc.io/ , Apache 2.0 - Google: gprc-java 1.8.0: https://github.com/grpc/grpc-java, Apache 2.0 + raphw (byte-buddy) 1.9.2: http://bytebuddy.net/ , Apache 2.0 + Google: grpc 1.10.0: https://grpc.io/ , Apache 2.0 + Google: gprc-java 1.10.0: https://github.com/grpc/grpc-java, Apache 2.0 Google: guava 19.0: https://github.com/google/guava , Apache 2.0 Google: gson 2.8.1: https://github.com/google/gson , Apache 2.0 Google: opencensus-java 0.8.0: https://github.com/census-instrumentation/opencensus-java , Apache 2.0 Google: proto-google-common-protos 0.1.9: https://github.com/googleapis/googleapis , Apache 2.0 Google: jsr305 3.0.0: http://central.maven.org/maven2/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.pom , Apache 2.0 - Elasticsearch BV (Elasticsearch) 5.5.0: https://www.elastic.co/products/elasticsearch , Apache 2.0 + Elasticsearch BV (Elasticsearch) 6.3.2: https://www.elastic.co/products/elasticsearch , Apache 2.0 lang-mustache-client 5.5.0: https://github.com/elastic/elasticsearch/tree/master/modules/lang-mustache , Apache 2.0 parent-join-client 5.5.0: https://github.com/elastic/elasticsearch/tree/master/modules/parent-join , Apache 2.0 reindex-client 5.5.0: https://github.com/elastic/elasticsearch/tree/master/modules/reindex , Apache 2.0 diff --git a/apm-sniffer/apm-agent/pom.xml b/apm-sniffer/apm-agent/pom.xml index e92d933ddf05131a39a5bf563faf5c606f7dd115..9094e3e80e5d3d676c7dbc1667bc85d7a8304a1f 100644 --- a/apm-sniffer/apm-agent/pom.xml +++ b/apm-sniffer/apm-agent/pom.xml @@ -103,6 +103,7 @@ + diff --git a/docs/en/setup/backend/backend-cluster.md b/docs/en/setup/backend/backend-cluster.md index cf4cd607d241e5e69a9eb212fbb218c8ae7a63d0..8d7d00642d6e8462b51a97786186875904bf5e95 100644 --- a/docs/en/setup/backend/backend-cluster.md +++ b/docs/en/setup/backend/backend-cluster.md @@ -38,7 +38,3 @@ cluster: labelSelector: app=collector,release=skywalking uidEnvName: SKYWALKING_COLLECTOR_UID ``` - -TODO @hanahmily - -settings descriptions. \ No newline at end of file diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java index b49814cd8e89b1a0a6b58c4da624226e487df70f..537d6a4579c74a74ec114df7d1e24b8144f9aae1 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/IndicatorTransWorker.java @@ -48,9 +48,6 @@ public class IndicatorTransWorker extends AbstractWorker { } @Override public void in(Indicator indicator) { - if (Objects.nonNull(minutePersistenceWorker)) { - minutePersistenceWorker.in(indicator); - } if (Objects.nonNull(hourPersistenceWorker)) { hourPersistenceWorker.in(indicator.toHour()); } @@ -60,5 +57,12 @@ public class IndicatorTransWorker extends AbstractWorker { if (Objects.nonNull(monthPersistenceWorker)) { monthPersistenceWorker.in(indicator.toMonth()); } + /** + * Minute persistent must be at the end of all time dimensionalities + * Because #toHour, #toDay, #toMonth include clone inside, which could avoid concurrency situation. + */ + if (Objects.nonNull(minutePersistenceWorker)) { + minutePersistenceWorker.in(indicator); + } } } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java index c2c219975c2821113a44bfa9b68b0af88c4f8e5b..8e75fbdb239375eca25b937204b84a8dde5c4c9a 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/ServiceInventory.java @@ -76,6 +76,20 @@ public class ServiceInventory extends RegisterSource { return result; } + public ServiceInventory getClone() { + ServiceInventory inventory = new ServiceInventory(); + inventory.setSequence(getSequence()); + inventory.setRegisterTime(getRegisterTime()); + inventory.setHeartbeatTime(getHeartbeatTime()); + inventory.setName(name); + inventory.setIsAddress(isAddress); + inventory.setAddressId(addressId); + inventory.setMappingLastUpdateTime(mappingLastUpdateTime); + inventory.setMappingServiceId(mappingServiceId); + + return inventory; + } + @Override public boolean equals(Object obj) { if (this == obj) return true; diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java index 531d3f15cf9008f265bce71bb306cfaab3830864..24d0c92e0106a67aa252c56b0c4f21acb66893a3 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/service/ServiceInventoryRegister.java @@ -103,6 +103,7 @@ public class ServiceInventoryRegister implements IServiceInventoryRegister { @Override public void updateMapping(int serviceId, int mappingServiceId) { ServiceInventory serviceInventory = getServiceInventoryCache().get(serviceId); if (Objects.nonNull(serviceInventory)) { + serviceInventory = serviceInventory.getClone(); serviceInventory.setMappingServiceId(mappingServiceId); serviceInventory.setMappingLastUpdateTime(System.currentTimeMillis()); diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java index dc6a6a77a05915ff7e2361c2b516ac2b4da9d825..57c663d8bf953e54310527db1a9104574785498a 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/register/worker/RegisterPersistentWorker.java @@ -22,7 +22,7 @@ import java.util.*; import org.apache.skywalking.apm.commons.datacarrier.DataCarrier; import org.apache.skywalking.apm.commons.datacarrier.consumer.IConsumer; import org.apache.skywalking.oap.server.core.analysis.data.EndOfBatchContext; -import org.apache.skywalking.oap.server.core.register.*; +import org.apache.skywalking.oap.server.core.register.RegisterSource; import org.apache.skywalking.oap.server.core.source.Scope; import org.apache.skywalking.oap.server.core.storage.*; import org.apache.skywalking.oap.server.core.worker.AbstractWorker; @@ -63,6 +63,8 @@ public class RegisterPersistentWorker extends AbstractWorker { private void onWork(RegisterSource registerSource) { if (!sources.containsKey(registerSource)) { sources.put(registerSource, registerSource); + } else { + sources.get(registerSource).combine(registerSource); } if (registerSource.getEndOfBatchContext().isEndOfBatch()) {