This is an automated email from the ASF dual-hosted git repository.
youling1128 pushed a commit to branch 2.9.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/2.9.x by this push:
new 0ac2d5625 [#4811] Support logging fileName for configurations (#4838)
(#4841)
0ac2d5625 is described below
commit 0ac2d5625a19d178d1c9c1a25d925141d49359e0
Author: Alex <[email protected]>
AuthorDate: Thu Jun 12 15:45:59 2025 +0800
[#4811] Support logging fileName for configurations (#4838) (#4841)
---
.../config/center/client/ConfigCenterClient.java | 43 ++++++++++++++++++++++
.../servicecomb/config/kie/client/KieClient.java | 38 +++++++++++++++++++
2 files changed, 81 insertions(+)
diff --git
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
index 00889cbf6..455af63c0 100644
---
a/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
+++
b/clients/config-center-client/src/main/java/org/apache/servicecomb/config/center/client/ConfigCenterClient.java
@@ -18,7 +18,9 @@
package org.apache.servicecomb.config.center.client;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
@@ -33,6 +35,7 @@ import org.apache.servicecomb.http.client.common.HttpUtils;
import
org.apache.servicecomb.http.client.utils.ServiceCombServiceAvailableUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.util.CollectionUtils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.google.common.eventbus.EventBus;
@@ -56,6 +59,8 @@ public class ConfigCenterClient implements
ConfigCenterOperation {
private final ConfigCenterAddressManager addressManager;
+ private final Map<String, List<String>> dimensionConfigNames = new
HashMap<>();
+
public ConfigCenterClient(ConfigCenterAddressManager addressManager,
HttpTransport httpTransport) {
this.addressManager = addressManager;
this.httpTransport = httpTransport;
@@ -95,18 +100,24 @@ public class ConfigCenterClient implements
ConfigCenterOperation {
if (allConfigMap.get(APPLICATION_CONFIG) != null) {
configurations.putAll(allConfigMap.get(APPLICATION_CONFIG));
+ logConfigurationNames(APPLICATION_CONFIG,
allConfigMap.get(APPLICATION_CONFIG));
}
if (allConfigMap.get(buildDimensionsInfo(request, false)) != null) {
configurations.putAll(allConfigMap.get(buildDimensionsInfo(request,
false)));
+ logConfigurationNames(buildDimensionsInfo(request, false),
+ allConfigMap.get(buildDimensionsInfo(request, false)));
}
if (allConfigMap.get(buildDarkLaunchDimensionsInfo(request)) != null) {
configurations.putAll(allConfigMap.get(buildDarkLaunchDimensionsInfo(request)));
+ logConfigurationNames(buildDarkLaunchDimensionsInfo(request),
+ allConfigMap.get(buildDarkLaunchDimensionsInfo(request)));
}
if (allConfigMap.get(dimensionsInfo) != null) {
configurations.putAll(allConfigMap.get(dimensionsInfo));
+ logConfigurationNames(dimensionsInfo,
allConfigMap.get(dimensionsInfo));
}
queryConfigurationsResponse.setConfigurations(configurations);
queryConfigurationsResponse.setChanged(true);
@@ -135,6 +146,38 @@ public class ConfigCenterClient implements
ConfigCenterOperation {
}
}
+ /**
+ * Only the name of the new configuration item is printed.
+ * No log is printed when the configuration content is updated.
+ *
+ * @param dimension dimension
+ * @param configs configs
+ */
+ private void logConfigurationNames(String dimension, Map<String, Object>
configs) {
+ if (CollectionUtils.isEmpty(configs)) {
+ return;
+ }
+ List<String> configNames = dimensionConfigNames.get(dimension);
+ if (configNames == null) {
+ configNames = new ArrayList<>();
+ }
+ StringBuilder names = new StringBuilder();
+ for (String key : configs.keySet()) {
+ if (configNames.contains(key)) {
+ continue;
+ }
+ names.append(key).append(",");
+ configNames.add(key);
+ }
+ if (names.isEmpty()) {
+ return;
+ }
+ dimensionConfigNames.put(dimension, configNames);
+ String fileNames = names.substring(0, names.length() - 1);
+ LOGGER.info("pulling dimension [{}] configurations success, get config
names: [{}].",
+ dimension, fileNames);
+ }
+
@Override
public void checkAddressAvailable(String address) {
ServiceCombServiceAvailableUtils.checkAddressAvailable(addressManager,
address, httpTransport, ADDRESS_CHECK_PATH);
diff --git
a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
index 49f81989a..f34c7d86a 100644
---
a/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
+++
b/clients/config-kie-client/src/main/java/org/apache/servicecomb/config/kie/client/KieClient.java
@@ -21,10 +21,12 @@ import com.google.common.eventbus.EventBus;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.stream.Collectors;
@@ -49,6 +51,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.core.io.ByteArrayResource;
+import org.springframework.util.CollectionUtils;
public class KieClient implements KieConfigOperation {
@@ -66,6 +69,8 @@ public class KieClient implements KieConfigOperation {
public static final String DEFAULT_KIE_API_VERSION = "v1";
+ private final Map<String, List<String>> dimensionConfigNames = new
HashMap<>();
+
public KieClient(KieAddressManager addressManager, HttpTransport
httpTransport, KieConfiguration kieConfiguration) {
this.httpTransport = httpTransport;
this.addressManager = addressManager;
@@ -90,6 +95,7 @@ public class KieClient implements KieConfigOperation {
if (httpResponse.getStatusCode() == HttpStatus.SC_OK) {
revision = httpResponse.getHeader("X-Kie-Revision");
KVResponse allConfigList =
HttpUtils.deserialize(httpResponse.getContent(), KVResponse.class);
+ logConfigurationNames(request.getLabelsQuery(),
allConfigList.getData());
Map<String, Object> configurations = getConfigByLabel(allConfigList);
configurationsResponse.setConfigurations(configurations);
configurationsResponse.setChanged(true);
@@ -116,6 +122,38 @@ public class KieClient implements KieConfigOperation {
}
}
+ /**
+ * Only the name of the new configuration item is printed.
+ * No log is printed when the configuration content is updated.
+ *
+ * @param dimension dimension
+ * @param data configs-data
+ */
+ private void logConfigurationNames(String dimension, List<KVDoc> data) {
+ if (CollectionUtils.isEmpty(data)) {
+ return;
+ }
+ List<String> configNames = dimensionConfigNames.get(dimension);
+ if (configNames == null) {
+ configNames = new ArrayList<>();
+ }
+ StringBuilder names = new StringBuilder();
+ for (KVDoc doc : data) {
+ if (configNames.contains(doc.getKey())) {
+ continue;
+ }
+ names.append(doc.getKey()).append(",");
+ configNames.add(doc.getKey());
+ }
+ if (names.isEmpty()) {
+ return;
+ }
+ dimensionConfigNames.put(dimension, configNames);
+ String fileNames = names.substring(0, names.length() - 1);
+ LOGGER.info("pulling dimension [{}] configurations success, get config
names: [{}].",
+ dimension, fileNames);
+ }
+
@Override
public void checkAddressAvailable(String address) {
ServiceCombServiceAvailableUtils.checkAddressAvailable(addressManager,
address, httpTransport, ADDRESS_CHECK_PATH);