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 2018/11/18 13:00:17 UTC

[incubator-skywalking] 01/01: Merge commit 'afd616433588644addb8498bbe6734e1f5e85803' into zipkin-receiver

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch zipkin-receiver
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking.git

commit ae4d4ed689a59c8474f9b3c4de1e9705f4b642bb
Merge: 6d4f1d0 afd6164
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Sun Nov 18 21:00:06 2018 +0800

    Merge commit 'afd616433588644addb8498bbe6734e1f5e85803' into zipkin-receiver
    
    # Conflicts:
    #	oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/module/TraceModule.java
    #	oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java

 LICENSE                                            |   2 +-
 apm-dist/bin/oapServiceInit.bat                    |  37 ++++++++
 apm-dist/bin/oapServiceInit.sh                     |  50 +++++++++++
 apm-dist/release-docs/LICENSE                      |  13 +--
 .../plugin/AbstractClassEnhancePluginDefine.java   |  17 ++--
 .../DeclaredInstanceMethodsInterceptPoint.java     |  17 ++--
 .../enhance/ClassEnhancePluginDefine.java          |  46 +++++-----
 .../skywalking/apm/agent/SkyWalkingAgent.java      |  35 ++++----
 .../v1/HystrixConcurrencyStrategyInterceptor.java  |  35 +++++++-
 .../hystrix/v1/HystrixPluginsInterceptor.java      |  32 ++++++-
 .../HystrixConcurrencyStrategyInterceptorTest.java | 100 +++++++++++++++++++++
 .../hystrix/v1/HystrixPluginsInterceptorTest.java  | 100 +++++++++++++++++++++
 .../mvc/v3/define/ControllerInstrumentation.java   |   7 +-
 .../define/AbstractControllerInstrumentation.java  |   9 +-
 docs/en/setup/backend/backend-cluster.md           |   8 +-
 docs/en/setup/backend/backend-init-mode.md         |  20 +++++
 docs/en/setup/backend/backend-setup.md             |   2 +
 docs/en/setup/service-agent/java-agent/README.md   |   8 +-
 oap-server/pom.xml                                 |   5 +-
 .../ClusterModuleKubernetesProvider.java           |   4 +-
 .../skywalking/oap/server/core/CoreModule.java     |   6 +-
 .../oap/server/core/CoreModuleProvider.java        |   7 +-
 .../oap/server/core/alarm/AlarmEntrance.java       |   4 +-
 .../oap/server/core/alarm/AlarmModule.java         |   6 +-
 .../core/analysis/worker/IndicatorProcess.java     |   2 +-
 .../analysis/worker/IndicatorRemoteWorker.java     |   2 +-
 .../core/analysis/worker/PersistenceWorker.java    |   2 +-
 .../server/core/analysis/worker/RecordProcess.java |   2 +-
 .../oap/server/core/cache/CacheUpdateTimer.java    |   4 +-
 .../server/core/cache/EndpointInventoryCache.java  |   2 +-
 .../core/cache/NetworkAddressInventoryCache.java   |   2 +-
 .../core/cache/ServiceInstanceInventoryCache.java  |   2 +-
 .../server/core/cache/ServiceInventoryCache.java   |   2 +-
 .../oap/server/core/cluster/ClusterModule.java     |   6 +-
 .../server/core/query/AggregationQueryService.java |  12 +--
 .../oap/server/core/query/AlarmQueryService.java   |   2 +-
 .../server/core/query/MetadataQueryService.java    |   6 +-
 .../oap/server/core/query/MetricQueryService.java  |   2 +-
 .../oap/server/core/query/QueryModule.java         |   4 +-
 .../oap/server/core/query/TopologyBuilder.java     |   4 +-
 .../server/core/query/TopologyQueryService.java    |   8 +-
 .../oap/server/core/query/TraceQueryService.java   |  10 +--
 .../service/EndpointInventoryRegister.java         |   2 +-
 .../service/NetworkAddressInventoryRegister.java   |   6 +-
 .../service/ServiceInstanceInventoryRegister.java  |   2 +-
 .../register/service/ServiceInventoryRegister.java |   2 +-
 .../core/register/worker/InventoryProcess.java     |   2 +-
 .../register/worker/RegisterPersistentWorker.java  |   2 +-
 .../core/register/worker/RegisterRemoteWorker.java |   2 +-
 .../server/core/remote/RemoteSenderService.java    |   2 +-
 .../server/core/remote/RemoteServiceHandler.java   |   2 +-
 .../core/remote/client/RemoteClientManager.java    |   4 +-
 .../oap/server/core/storage/PersistenceTimer.java  |   2 +-
 .../oap/server/core/storage/StorageModule.java     |   6 +-
 .../server/core/storage/model/ModelInstaller.java  |   4 +-
 .../core/storage/ttl/DataTTLKeeperTimer.java       |   8 +-
 .../oap/server/library/module/BootstrapFlow.java   |   9 +-
 .../library/module/DuplicateProviderException.java |   3 +-
 .../oap/server/library/module/ModuleDefine.java    |  28 +++---
 ...viderException.java => ModuleDefineHolder.java} |  13 +--
 .../oap/server/library/module/ModuleManager.java   |   9 +-
 .../oap/server/library/module/ModuleProvider.java  |  43 ++++-----
 ...derException.java => ModuleProviderHolder.java} |  11 +--
 .../library/module/ModuleServiceHolder.java}       |  15 ++--
 .../library/module/ProviderNotFoundException.java  |   2 +-
 .../module/ServiceNotProvidedException.java        |   2 +-
 .../oap/server/library/module/BaseModuleA.java     |   7 +-
 .../oap/server/library/module/BaseModuleB.java     |   6 +-
 .../server/library/module/ModuleManagerTest.java   |   4 +-
 .../oap/server/library/module/TestModule.java      |   6 +-
 .../oap/query/graphql/GraphQLQueryProvider.java    |   2 +-
 .../query/graphql/resolver/AggregationQuery.java   |   2 +-
 .../oap/query/graphql/resolver/AlarmQuery.java     |   2 +-
 .../oap/query/graphql/resolver/MetadataQuery.java  |   2 +-
 .../oap/query/graphql/resolver/MetricQuery.java    |   2 +-
 .../oap/query/graphql/resolver/TopologyQuery.java  |   2 +-
 .../oap/query/graphql/resolver/TraceQuery.java     |   2 +-
 .../module/IstioTelemetryReceiverModule.java       |   6 +-
 .../provider/IstioTelemetryReceiverProvider.java   |   7 +-
 .../oap/server/receiver/jvm/module/JVMModule.java  |   6 +-
 .../receiver/jvm/provider/JVMModuleProvider.java   |   2 +-
 .../provider/handler/JVMMetricsServiceHandler.java |   2 +-
 .../server/receiver/mesh/CoreRegisterLinker.java   |   6 +-
 .../server/receiver/mesh/MeshReceiverModule.java   |   4 +-
 .../server/receiver/mesh/MeshReceiverProvider.java |   7 +-
 .../receiver/mesh/TelemetryDataDispatcher.java     |  10 +--
 .../receiver/register/module/RegisterModule.java   |   6 +-
 .../register/provider/RegisterModuleProvider.java  |   4 +-
 .../v5/grpc/ApplicationRegisterHandler.java        |   2 +-
 .../v5/grpc/InstanceDiscoveryServiceHandler.java   |   8 +-
 .../grpc/NetworkAddressRegisterServiceHandler.java |   2 +-
 .../v5/grpc/ServiceNameDiscoveryHandler.java       |   2 +-
 .../v5/rest/ApplicationRegisterServletHandler.java |   2 +-
 .../v5/rest/InstanceDiscoveryServletHandler.java   |   4 +-
 .../v5/rest/InstanceHeartBeatServletHandler.java   |   6 +-
 .../rest/NetworkAddressRegisterServletHandler.java |   2 +-
 .../rest/ServiceNameDiscoveryServiceHandler.java   |   2 +-
 .../server/receiver/trace/module/TraceModule.java  |   8 +-
 .../trace/provider/TraceModuleProvider.java        |  18 ++--
 .../listener/endpoint/MultiScopesSpanListener.java |   8 +-
 .../listener/segment/SegmentSpanListener.java      |   4 +-
 .../service/ServiceMappingSpanListener.java        |   4 +-
 .../standardization/ReferenceIdExchanger.java      |   6 +-
 .../parser/standardization/SpanIdExchanger.java    |   6 +-
 .../server/receiver/zipkin/CoreRegisterLinker.java |   4 +-
 .../receiver/zipkin/ZipkinReceiverModule.java      |  10 +--
 .../receiver/zipkin/ZipkinReceiverProvider.java    |   2 +-
 .../src/main/assembly/application.yml              |   2 +
 .../server-starter/src/main/assembly/log4j2.xml    |   2 +-
 .../oap/server/starter/OAPServerStartUp.java       |   9 +-
 .../src/main/resources/application.yml             |   2 +
 .../storage/plugin/jdbc/h2/H2StorageProvider.java  |   5 +-
 oap-server/server-testing/pom.xml                  |  40 +++++++++
 .../testing/module/ModuleDefineTesting.java}       |  16 ++--
 .../testing/module/ModuleManagerTesting.java}      |  21 +++--
 .../testing/module/ModuleProviderTesting.java}     |  22 +++--
 .../testing/module/ModuleManagerTestCase.java      |  54 +++++++++++
 .../src/test/resources}/log4j2.xml                 |  25 ++----
 118 files changed, 829 insertions(+), 391 deletions(-)

diff --cc oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/module/TraceModule.java
index 8b84e18,887850e..aab0428
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/module/TraceModule.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/module/TraceModule.java
@@@ -25,15 -24,12 +25,13 @@@ import org.apache.skywalking.oap.server
   * @author peng-yongsheng
   */
  public class TraceModule extends ModuleDefine {
 +    public static final String NAME = "receiver-trace";
  
-     @Override public String name() {
-         return NAME;
+     public TraceModule() {
 -        super("receiver-trace");
++        super(NAME);
      }
  
      @Override public Class[] services() {
-         return new Class[] {
-             ISegmentParserService.class
-         };
 -        return new Class[0];
++        return new Class[] {ISegmentParserService.class};
      }
  }
diff --cc oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
index 17b3795,de32457..462fbf2
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
@@@ -69,15 -63,10 +61,15 @@@ public class TraceModuleProvider extend
          listenerManager.add(new ServiceMappingSpanListener.Factory());
          listenerManager.add(new SegmentSpanListener.Factory());
  
 +        segmentProducer = new SegmentParse.Producer(getManager(), listenerManager);
 +        this.registerServiceImplementation(ISegmentParserService.class, new SegmentParserServiceImpl(segmentProducer));
 +    }
 +
 +    @Override public void start() throws ModuleStartException {
-         GRPCHandlerRegister grpcHandlerRegister = getManager().find(CoreModule.NAME).getService(GRPCHandlerRegister.class);
-         JettyHandlerRegister jettyHandlerRegister = getManager().find(CoreModule.NAME).getService(JettyHandlerRegister.class);
+         GRPCHandlerRegister grpcHandlerRegister = getManager().find(CoreModule.NAME).provider().getService(GRPCHandlerRegister.class);
+         JettyHandlerRegister jettyHandlerRegister = getManager().find(CoreModule.NAME).provider().getService(JettyHandlerRegister.class);
          try {
 -            SegmentParse.Producer segmentProducer = new SegmentParse.Producer(getManager(), listenerManager);
 +
              grpcHandlerRegister.addHandler(new TraceSegmentServiceHandler(segmentProducer));
              jettyHandlerRegister.addHandler(new TraceSegmentServletHandler(segmentProducer));
  
diff --cc oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/CoreRegisterLinker.java
index 4bbcea3,0000000..2459199
mode 100644,000000..100644
--- a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/CoreRegisterLinker.java
+++ b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/CoreRegisterLinker.java
@@@ -1,48 -1,0 +1,48 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + *
 + */
 +
 +package org.apache.skywalking.oap.server.receiver.zipkin;
 +
 +import org.apache.skywalking.oap.server.core.CoreModule;
 +import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
 +import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
 +import org.apache.skywalking.oap.server.library.module.ModuleManager;
 +
 +public class CoreRegisterLinker {
 +    private static volatile ModuleManager MODULE_MANAGER;
 +    private static volatile IServiceInventoryRegister SERVICE_INVENTORY_REGISTER;
 +    private static volatile IServiceInstanceInventoryRegister SERVICE_INSTANCE_INVENTORY_REGISTER;
 +
 +    public static void setModuleManager(ModuleManager moduleManager) {
 +        CoreRegisterLinker.MODULE_MANAGER = moduleManager;
 +    }
 +
 +    public static IServiceInventoryRegister getServiceInventoryRegister() {
 +        if (SERVICE_INVENTORY_REGISTER == null) {
-             SERVICE_INVENTORY_REGISTER = MODULE_MANAGER.find(CoreModule.NAME).getService(IServiceInventoryRegister.class);
++            SERVICE_INVENTORY_REGISTER = MODULE_MANAGER.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
 +        }
 +        return SERVICE_INVENTORY_REGISTER;
 +    }
 +
 +    public static IServiceInstanceInventoryRegister getServiceInstanceInventoryRegister() {
 +        if (SERVICE_INSTANCE_INVENTORY_REGISTER == null) {
-             SERVICE_INSTANCE_INVENTORY_REGISTER = MODULE_MANAGER.find(CoreModule.NAME).getService(IServiceInstanceInventoryRegister.class);
++            SERVICE_INSTANCE_INVENTORY_REGISTER = MODULE_MANAGER.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
 +        }
 +        return SERVICE_INSTANCE_INVENTORY_REGISTER;
 +    }
 +}
diff --cc oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverModule.java
index c51f0a4,887850e..abf1f09
--- a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverModule.java
+++ b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverModule.java
@@@ -21,19 -21,12 +21,19 @@@ package org.apache.skywalking.oap.serve
  import org.apache.skywalking.oap.server.library.module.ModuleDefine;
  
  /**
 - * @author peng-yongsheng
 + * Zipkin receiver module provides the HTTP, protoc serve for any SDK or agent by following Zipkin format.
 + *
-  * At this moment, Zipkin format is not compatible with SkyWalking, especially HEADERs.
-  * Please don't consider this as a Zipkin-SkyWalking integration,
-  * it is provided for adding analysis, aggregation and visualization capabilities to zipkin backend.
++ * At this moment, Zipkin format is not compatible with SkyWalking, especially HEADERs. Please don't consider this as a
++ * Zipkin-SkyWalking integration, it is provided for adding analysis, aggregation and visualization capabilities to
++ * zipkin backend.
 + *
 + * @author wusheng
   */
 -public class TraceModule extends ModuleDefine {
 +public class ZipkinReceiverModule extends ModuleDefine {
 +    public static final String NAME = "receiver_zipkin";
  
-     @Override public String name() {
-         return NAME;
 -    public TraceModule() {
 -        super("receiver-trace");
++    public ZipkinReceiverModule() {
++        super(NAME);
      }
  
      @Override public Class[] services() {
diff --cc oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java
index c86af50,0000000..2eb2079
mode 100644,000000..100644
--- a/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java
+++ b/oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/ZipkinReceiverProvider.java
@@@ -1,87 -1,0 +1,87 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one or more
 + * contributor license agreements.  See the NOTICE file distributed with
 + * this work for additional information regarding copyright ownership.
 + * The ASF licenses this file to You under the Apache License, Version 2.0
 + * (the "License"); you may not use this file except in compliance with
 + * the License.  You may obtain a copy of the License at
 + *
 + *     http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing, software
 + * distributed under the License is distributed on an "AS IS" BASIS,
 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 + * See the License for the specific language governing permissions and
 + * limitations under the License.
 + *
 + */
 +
 +package org.apache.skywalking.oap.server.receiver.zipkin;
 +
 +import org.apache.skywalking.oap.server.library.module.ModuleConfig;
 +import org.apache.skywalking.oap.server.library.module.ModuleDefine;
 +import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 +import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 +import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
 +import org.apache.skywalking.oap.server.library.server.ServerException;
 +import org.apache.skywalking.oap.server.library.server.jetty.JettyServer;
 +import org.apache.skywalking.oap.server.receiver.trace.module.TraceModule;
 +import org.apache.skywalking.oap.server.receiver.trace.provider.parser.ISegmentParserService;
 +import org.apache.skywalking.oap.server.receiver.zipkin.handler.SpanV1JettyHandler;
 +import org.apache.skywalking.oap.server.receiver.zipkin.handler.SpanV2JettyHandler;
 +import org.apache.skywalking.oap.server.receiver.zipkin.transform.Zipkin2SkyWalkingTransfer;
 +
 +/**
 + * @author wusheng
 + */
 +public class ZipkinReceiverProvider extends ModuleProvider {
 +    public static final String NAME = "default";
 +    private ZipkinReceiverConfig config;
 +    private JettyServer jettyServer;
 +
 +    public ZipkinReceiverProvider() {
 +        config = new ZipkinReceiverConfig();
 +    }
 +
 +    @Override public String name() {
 +        return NAME;
 +    }
 +
 +    @Override public Class<? extends ModuleDefine> module() {
 +        return ZipkinReceiverModule.class;
 +    }
 +
 +    @Override public ModuleConfig createConfigBeanIfAbsent() {
 +        return config;
 +    }
 +
 +    @Override public void prepare() throws ServiceNotProvidedException {
 +
 +    }
 +
 +    @Override public void start() throws ServiceNotProvidedException, ModuleStartException {
 +        CoreRegisterLinker.setModuleManager(getManager());
 +
 +        jettyServer = new JettyServer(config.getHost(), config.getPort(), config.getContextPath());
 +        jettyServer.initialize();
 +
 +        jettyServer.addHandler(new SpanV1JettyHandler(config));
 +        jettyServer.addHandler(new SpanV2JettyHandler(config));
 +
-         ISegmentParserService segmentParseService = getManager().find(TraceModule.NAME).getService(ISegmentParserService.class);
++        ISegmentParserService segmentParseService = getManager().find(TraceModule.NAME).provider().getService(ISegmentParserService.class);
 +        Receiver2AnalysisBridge bridge = new Receiver2AnalysisBridge(segmentParseService);
 +        Zipkin2SkyWalkingTransfer.INSTANCE.addListener(bridge);
 +    }
 +
 +    @Override public void notifyAfterCompleted() throws ModuleStartException {
 +        try {
 +            jettyServer.start();
 +        } catch (ServerException e) {
 +            throw new ModuleStartException(e.getMessage(), e);
 +        }
 +    }
 +
 +    @Override public String[] requiredModules() {
 +        return new String[] {TraceModule.NAME};
 +    }
 +}