Skip to content

Commit 7460679

Browse files
committed
feat(client): Add more observability in apollo config client
1 parent bd7fe56 commit 7460679

32 files changed

+162
-167
lines changed

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/AbstractConfigFile.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
package com.ctrip.framework.apollo.internals;
1818

1919

20-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CLIENT_CONFIGCHANGES;
21-
20+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
2221
import com.ctrip.framework.apollo.build.ApolloInjector;
2322
import com.ctrip.framework.apollo.core.utils.DeferredLoggerFactory;
2423
import com.ctrip.framework.apollo.enums.ConfigSourceType;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/AbstractConfigRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIG_EXCEPTION;
20-
19+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
2120
import com.ctrip.framework.apollo.build.ApolloInjector;
2221
import com.ctrip.framework.apollo.util.factory.PropertiesFactory;
2322
import java.util.List;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigMonitorInitializer.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@
2222
import com.ctrip.framework.apollo.monitor.internal.DefaultConfigMonitor;
2323
import com.ctrip.framework.apollo.monitor.internal.collector.MetricsCollector;
2424
import com.ctrip.framework.apollo.monitor.internal.collector.MetricsCollectorManager;
25-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloExceptionCollector;
26-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloNamespaceCollector;
27-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloRunningParamsCollector;
28-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloThreadPoolCollector;
29-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultMetricsCollectorManager;
25+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientExceptionCollector;
26+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientNamespaceCollector;
27+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientBootstrapArgsCollector;
28+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientThreadPoolCollector;
29+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultMetricsCollectorManager;
3030
import com.ctrip.framework.apollo.monitor.internal.exporter.MetricsExporter;
3131
import com.ctrip.framework.apollo.monitor.internal.exporter.MetricsExporterFactory;
3232
import com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite;
33-
import com.ctrip.framework.apollo.monitor.internal.tracer.MonitorMessageProducer;
33+
import com.ctrip.framework.apollo.monitor.internal.tracer.ClientMonitorMessageProducer;
3434
import com.ctrip.framework.apollo.tracer.internals.NullMessageProducer;
3535
import com.ctrip.framework.apollo.tracer.internals.cat.CatMessageProducer;
3636
import com.ctrip.framework.apollo.tracer.internals.cat.CatNames;
@@ -73,14 +73,14 @@ private static List<MetricsCollector> initializeCollectors(
7373
DefaultMetricsCollectorManager manager) {
7474
DefaultConfigManager configManager = (DefaultConfigManager) ApolloInjector.getInstance(
7575
ConfigManager.class);
76-
DefaultApolloExceptionCollector exceptionCollector = new DefaultApolloExceptionCollector();
77-
DefaultApolloThreadPoolCollector threadPoolCollector = new DefaultApolloThreadPoolCollector(
76+
DefaultApolloClientExceptionCollector exceptionCollector = new DefaultApolloClientExceptionCollector();
77+
DefaultApolloClientThreadPoolCollector threadPoolCollector = new DefaultApolloClientThreadPoolCollector(
7878
RemoteConfigRepository.m_executorService, AbstractConfig.m_executorService,
7979
AbstractConfigFile.m_executorService);
80-
DefaultApolloNamespaceCollector namespaceCollector = new DefaultApolloNamespaceCollector(
80+
DefaultApolloClientNamespaceCollector namespaceCollector = new DefaultApolloClientNamespaceCollector(
8181
configManager.m_configs, configManager.m_configLocks, configManager.m_configFiles,
8282
configManager.m_configFileLocks);
83-
DefaultApolloRunningParamsCollector startupCollector = new DefaultApolloRunningParamsCollector(
83+
DefaultApolloClientBootstrapArgsCollector startupCollector = new DefaultApolloClientBootstrapArgsCollector(
8484
m_configUtil);
8585

8686
List<MetricsCollector> collectors = Lists.newArrayList(exceptionCollector, namespaceCollector,
@@ -99,13 +99,13 @@ private static void initializeConfigMonitor(List<MetricsCollector> collectors,
9999
MetricsExporter metricsExporter) {
100100
DefaultConfigMonitor defaultConfigMonitor = (DefaultConfigMonitor) ApolloInjector.getInstance(
101101
ConfigMonitor.class);
102-
DefaultApolloExceptionCollector exceptionCollector = (DefaultApolloExceptionCollector) collectors.get(
102+
DefaultApolloClientExceptionCollector exceptionCollector = (DefaultApolloClientExceptionCollector) collectors.get(
103103
0);
104-
DefaultApolloNamespaceCollector namespaceCollector = (DefaultApolloNamespaceCollector) collectors.get(
104+
DefaultApolloClientNamespaceCollector namespaceCollector = (DefaultApolloClientNamespaceCollector) collectors.get(
105105
1);
106-
DefaultApolloThreadPoolCollector threadPoolCollector = (DefaultApolloThreadPoolCollector) collectors.get(
106+
DefaultApolloClientThreadPoolCollector threadPoolCollector = (DefaultApolloClientThreadPoolCollector) collectors.get(
107107
2);
108-
DefaultApolloRunningParamsCollector startupCollector = (DefaultApolloRunningParamsCollector) collectors.get(
108+
DefaultApolloClientBootstrapArgsCollector startupCollector = (DefaultApolloClientBootstrapArgsCollector) collectors.get(
109109
3);
110110
defaultConfigMonitor.init(namespaceCollector, threadPoolCollector, exceptionCollector,
111111
startupCollector, metricsExporter);
@@ -118,7 +118,7 @@ public static MessageProducerComposite initializeMessageProducerComposite() {
118118

119119
// The producer that comes with the client
120120
if (m_configUtil.isClientMonitorEnabled()) {
121-
producers.add(new MonitorMessageProducer());
121+
producers.add(new ClientMonitorMessageProducer());
122122
}
123123

124124
if (ClassLoaderUtil.isClassPresent(CatNames.CAT_CLASS)) {

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/ConfigServiceLocator.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIG_EXCEPTION;
20-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIG_SERVICES;
21-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_META_SERVICE;
22-
19+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
2320
import com.ctrip.framework.apollo.build.ApolloInjector;
2421
import com.ctrip.framework.apollo.core.ApolloClientSystemConsts;
2522
import com.ctrip.framework.apollo.core.ServiceNameConsts;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/DefaultConfig.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CLIENT_CONFIGCHANGES;
20-
19+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
2120
import com.ctrip.framework.apollo.core.utils.DeferredLoggerFactory;
2221
import com.ctrip.framework.apollo.enums.ConfigSourceType;
2322
import com.google.common.collect.Maps;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/DefaultConfigManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloNamespaceCollector.NAMESPACE_MONITOR;
20-
import static com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloNamespaceCollector.NAMESPACE_USAGE_COUNT;
19+
import static com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientNamespaceCollector.NAMESPACE_MONITOR;
20+
import static com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientNamespaceCollector.NAMESPACE_USAGE_COUNT;
2121

2222
import com.ctrip.framework.apollo.Config;
2323
import com.ctrip.framework.apollo.ConfigFile;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/DefaultInjector.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
import com.ctrip.framework.apollo.exceptions.ApolloConfigException;
2020
import com.ctrip.framework.apollo.monitor.api.ConfigMonitor;
2121
import com.ctrip.framework.apollo.monitor.internal.DefaultConfigMonitor;
22-
import com.ctrip.framework.apollo.monitor.internal.exporter.internals.DefaultMetricsExporterFactory;
22+
import com.ctrip.framework.apollo.monitor.internal.exporter.impl.DefaultMetricsExporterFactory;
2323
import com.ctrip.framework.apollo.monitor.internal.collector.MetricsCollectorManager;
24-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultMetricsCollectorManager;
24+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultMetricsCollectorManager;
2525
import com.ctrip.framework.apollo.monitor.internal.exporter.MetricsExporterFactory;
2626
import com.ctrip.framework.apollo.spi.ApolloInjectorCustomizer;
2727
import com.ctrip.framework.apollo.spi.ConfigFactory;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/LocalFileConfigRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIG_EXCEPTION;
20-
19+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
2120
import com.ctrip.framework.apollo.core.utils.DeferredLoggerFactory;
2221
import com.ctrip.framework.apollo.enums.ConfigSourceType;
2322
import java.io.File;

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigLongPollService.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.NAMESPACE;
20-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIG_EXCEPTION;
21-
19+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
2220
import com.ctrip.framework.apollo.build.ApolloInjector;
2321
import com.ctrip.framework.apollo.core.ConfigConsts;
2422
import com.ctrip.framework.apollo.core.dto.ApolloConfigNotification;
@@ -31,7 +29,7 @@
3129
import com.ctrip.framework.apollo.core.utils.ApolloThreadFactory;
3230
import com.ctrip.framework.apollo.core.utils.StringUtils;
3331
import com.ctrip.framework.apollo.exceptions.ApolloConfigException;
34-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloNamespaceCollector;
32+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientNamespaceCollector;
3533
import com.ctrip.framework.apollo.monitor.internal.model.MetricsEvent;
3634
import com.ctrip.framework.apollo.spi.ConfigServiceLoadBalancerClient;
3735
import com.ctrip.framework.apollo.tracer.Tracer;
@@ -219,9 +217,9 @@ private void doLongPollingRefresh(String appId, String cluster, String dataCente
219217
transaction.setStatus(ex);
220218
long sleepTimeInSecond = m_longPollFailSchedulePolicyInSecond.fail();
221219
if (ex.getCause() instanceof SocketTimeoutException) {
222-
MetricsEvent.builder().withName(DefaultApolloNamespaceCollector.NAMESPACE_TIMEOUT)
220+
MetricsEvent.builder().withName(DefaultApolloClientNamespaceCollector.NAMESPACE_TIMEOUT)
223221
.putAttachment(NAMESPACE, assembleNamespaces())
224-
.withTag(DefaultApolloNamespaceCollector.NAMESPACE_MONITOR).push();
222+
.withTag(DefaultApolloClientNamespaceCollector.NAMESPACE_MONITOR).push();
225223
}
226224
logger.warn(
227225
"Long polling failed, will retry in {} seconds. appId: {}, cluster: {}, namespaces: {}, long polling url: {}, reason: {}",

apollo-client/src/main/java/com/ctrip/framework/apollo/internals/RemoteConfigRepository.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,8 @@
1616
*/
1717
package com.ctrip.framework.apollo.internals;
1818

19-
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.NAMESPACE;
20-
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.TIMESTAMP;
21-
import static com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloNamespaceCollector.NAMESPACE_MONITOR;
22-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CLIENT_CONFIGS;
23-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CLIENT_CONFIGMETA;
24-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CLIENT_VERSION;
25-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIGSERVICE;
26-
import static com.ctrip.framework.apollo.monitor.internal.tracer.MessageProducerComposite.APOLLO_CONFIG_EXCEPTION;
19+
import static com.ctrip.framework.apollo.monitor.internal.MonitorConstant.*;
20+
import static com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientNamespaceCollector.NAMESPACE_MONITOR;
2721

2822
import com.ctrip.framework.apollo.Apollo;
2923
import com.ctrip.framework.apollo.build.ApolloInjector;
@@ -40,7 +34,7 @@
4034
import com.ctrip.framework.apollo.enums.ConfigSourceType;
4135
import com.ctrip.framework.apollo.exceptions.ApolloConfigException;
4236
import com.ctrip.framework.apollo.exceptions.ApolloConfigStatusCodeException;
43-
import com.ctrip.framework.apollo.monitor.internal.collector.internal.DefaultApolloNamespaceCollector;
37+
import com.ctrip.framework.apollo.monitor.internal.collector.impl.DefaultApolloClientNamespaceCollector;
4438
import com.ctrip.framework.apollo.monitor.internal.model.MetricsEvent;
4539
import com.ctrip.framework.apollo.tracer.Tracer;
4640
import com.ctrip.framework.apollo.tracer.spi.Transaction;
@@ -124,7 +118,7 @@ public Properties getConfig() {
124118
if (m_configCache.get() == null) {
125119
long start = System.currentTimeMillis();
126120
this.sync();
127-
MetricsEvent.builder().withName(DefaultApolloNamespaceCollector.NAMESPACE_FIRST_LOAD_SPEND).withTag(
121+
MetricsEvent.builder().withName(DefaultApolloClientNamespaceCollector.NAMESPACE_FIRST_LOAD_SPEND).withTag(
128122
NAMESPACE_MONITOR)
129123
.putAttachment(NAMESPACE, m_namespace)
130124
.putAttachment(TIMESTAMP, System.currentTimeMillis() - start).push();
@@ -278,7 +272,7 @@ private ApolloConfig loadApolloConfig() {
278272
appId, cluster, m_namespace);
279273
statusCodeException = new ApolloConfigStatusCodeException(ex.getStatusCode(),
280274
message);
281-
MetricsEvent.builder().withName(DefaultApolloNamespaceCollector.NAMESPACE_NOT_FOUND).withTag(
275+
MetricsEvent.builder().withName(DefaultApolloClientNamespaceCollector.NAMESPACE_NOT_FOUND).withTag(
282276
NAMESPACE_MONITOR).putAttachment(NAMESPACE, m_namespace).push();
283277
}
284278
Tracer.logEvent(APOLLO_CONFIG_EXCEPTION, ExceptionUtil.getDetailMessage(statusCodeException));

0 commit comments

Comments
 (0)