This is an automated email from the ASF dual-hosted git repository.
youling1128 pushed a commit to branch 2.8.x
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
The following commit(s) were added to refs/heads/2.8.x by this push:
new 6a9ff25bc [#4811] Support logging fileName for configurations (#4838)
(#4840)
6a9ff25bc is described below
commit 6a9ff25bcf1daa5c839a71d2deb92244420c48f0
Author: Alex <[email protected]>
AuthorDate: Thu Jun 12 15:46:13 2025 +0800
[#4811] Support logging fileName for configurations (#4838) (#4840)
---
.../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 25aedec66..6cd4f45a9 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);
@@ -140,6 +151,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.length() == 0) {
+ 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 8379e046b..7d6cd6548 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);
@@ -122,6 +128,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.length() == 0) {
+ 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);