From f3e85ef6e3d208d282684f2d90f7cc6a17f431a1 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Fri, 17 Nov 2017 13:57:20 +0800 Subject: [PATCH 1/3] Change apm-collector-stream from collector module to common codes. Make agent gRPC to be a collector module. Make agent jetty to be a collector module. Make agent stream to be a collector module. --- .../collector-agent-grpc-define}/pom.xml | 6 +- .../agent/grpc/AgentGRPCModule.java} | 6 +- ...kywalking.apm.collector.core.module.Module | 2 +- .../collector-agent-grpc-provider/pom.xml | 60 +++++++ .../agent/grpc/AgentModuleGRPCProvider.java | 16 +- .../grpc/AgentModuleGRPCRegistration.java | 0 .../ApplicationRegisterServiceHandler.java | 7 +- .../InstanceDiscoveryServiceHandler.java | 7 +- .../handler/JVMMetricsServiceHandler.java | 101 ++++++++++++ .../ServiceNameDiscoveryServiceHandler.java | 7 +- .../handler/TraceSegmentServiceHandler.java | 10 +- .../naming/AgentGRPCNamingHandler.java | 3 +- .../naming/AgentGRPCNamingListener.java | 4 +- ...g.apm.collector.core.module.ModuleProvider | 0 ...icationRegisterServiceHandlerTestCase.java | 0 .../pom.xml | 19 ++- .../collector-agent-jetty-define}/pom.xml | 5 +- .../agent/jetty/AgentJettyModule.java} | 6 +- ...kywalking.apm.collector.core.module.Module | 2 +- .../collector-agent-jetty-provider/pom.xml | 24 ++- .../agent/jetty/AgentModuleJettyProvider.java | 11 +- .../jetty/AgentModuleJettyRegistration.java | 0 .../ApplicationRegisterServletHandler.java | 7 +- .../InstanceDiscoveryServletHandler.java | 9 +- .../ServiceNameDiscoveryServiceHandler.java | 9 +- .../handler/TraceSegmentServletHandler.java | 10 +- .../naming/AgentJettyNamingHandler.java | 0 .../naming/AgentJettyNamingListener.java | 4 +- .../reader/KeyWithStringValueJsonReader.java | 0 .../jetty/handler/reader/LogJsonReader.java | 0 .../handler/reader/ReferenceJsonReader.java | 0 .../handler/reader/SegmentJsonReader.java | 0 .../jetty/handler/reader/SpanJsonReader.java | 0 .../handler/reader/StreamJsonReader.java | 0 .../jetty/handler/reader/TraceSegment.java | 0 .../reader/TraceSegmentJsonReader.java | 0 .../handler/reader/UniqueIdJsonReader.java | 0 ...g.apm.collector.core.module.ModuleProvider | 0 .../handler/ApplicationRegisterPost.java | 0 .../agent/jetty/handler/HttpClientTools.java | 0 .../jetty/handler/InstanceRegisterPost.java | 0 .../agent/jetty/handler/JsonFileReader.java | 0 .../agent/jetty/handler/SegmentPost.java | 0 .../handler/ServiceNameRegisterPost.java | 0 .../json/application-register-consumer.json | 0 .../json/application-register-provider.json | 0 .../test/resources/json/dubbox-consumer.json | 0 .../test/resources/json/dubbox-provider.json | 0 .../json/instance-register-consumer.json | 0 .../json/instance-register-provider.json | 0 .../json/servicename-register-consumer.json | 0 .../json/servicename-register-provider.json | 0 .../apm-collector-agent-jetty/pom.xml | 44 ++++++ .../collector-agent-stream-define}/pom.xml | 8 +- .../agent/stream/AgentStreamModule.java | 68 ++++++++ .../stream/service/jvm/ICpuMetricService.java | 28 ++++ .../stream/service/jvm/IGCMetricService.java | 28 ++++ .../jvm/IInstanceHeartBeatService.java | 28 ++++ .../service/jvm/IMemoryMetricService.java | 28 ++++ .../service/jvm/IMemoryPoolMetricService.java | 28 ++++ .../register/IApplicationIDService.java} | 9 +- .../service/register/IInstanceIDService.java | 30 ++++ .../service/register/IServiceNameService.java | 28 ++++ .../service/trace/ITraceSegmentService.java | 29 ++++ ...kywalking.apm.collector.core.module.Module | 19 +++ .../collector-agent-stream-provider}/pom.xml | 17 +- .../agent/stream/AgentStreamBootStartup.java} | 17 +- .../stream/AgentStreamModuleProvider.java | 89 +++++++++++ .../agent/stream/IdAutoIncrement.java | 0 .../agent/stream/buffer/BufferFileConfig.java | 79 ++++++++++ .../collector/agent/stream/buffer/Offset.java | 0 .../agent/stream/buffer/OffsetManager.java | 2 +- .../stream/buffer/SegmentBufferConfig.java | 0 .../stream/buffer/SegmentBufferManager.java | 0 .../stream/buffer/SegmentBufferReader.java | 0 .../stream/graph/JvmMetricStreamGraph.java | 0 .../stream/graph/RegisterStreamGraph.java | 0 .../agent/stream/graph/TraceStreamGraph.java | 0 .../stream/parser/EntrySpanListener.java | 0 .../agent/stream/parser/ExitSpanListener.java | 0 .../stream/parser/FirstSpanListener.java | 0 .../stream/parser/GlobalTraceIdsListener.java | 0 .../stream/parser/LocalSpanListener.java | 0 .../agent/stream/parser/RefsListener.java | 0 .../agent/stream/parser/SegmentParse.java | 0 .../agent/stream/parser/SpanListener.java | 0 .../parser/standardization/IdExchanger.java | 0 .../standardization/ReferenceDecorator.java | 0 .../standardization/ReferenceIdExchanger.java | 0 .../standardization/SegmentDecorator.java | 0 .../SegmentStandardization.java | 0 .../SegmentStandardizationWorker.java | 0 .../parser/standardization/SpanDecorator.java | 0 .../standardization/SpanIdExchanger.java | 0 .../standardization/StandardBuilder.java | 0 .../agent/stream/util/FileUtils.java | 0 .../jvm/CpuMetricPersistenceWorker.java | 0 .../stream/worker/jvm/CpuMetricService.java | 52 ++++++ .../worker/jvm/GCMetricPersistenceWorker.java | 0 .../stream/worker/jvm/GCMetricService.java | 54 +++++++ .../jvm/InstHeartBeatPersistenceWorker.java | 0 .../worker/jvm/InstanceHeartBeatService.java | 51 ++++++ .../jvm/MemoryMetricPersistenceWorker.java | 0 .../worker/jvm/MemoryMetricService.java | 57 +++++++ .../MemoryPoolMetricPersistenceWorker.java | 0 .../worker/jvm/MemoryPoolMetricService.java | 57 +++++++ .../worker/register/ApplicationIDService.java | 3 +- .../ApplicationRegisterRemoteWorker.java | 0 .../ApplicationRegisterSerialWorker.java | 0 .../worker/register/InstanceIDService.java | 7 +- .../InstanceRegisterRemoteWorker.java | 0 .../InstanceRegisterSerialWorker.java | 0 .../ServiceNameRegisterRemoteWorker.java | 0 .../ServiceNameRegisterSerialWorker.java | 0 .../worker/register/ServiceNameService.java | 3 +- .../worker/trace/TraceSegmentService.java | 41 +++++ .../global/GlobalTracePersistenceWorker.java | 0 .../trace/global/GlobalTraceSpanListener.java | 0 .../InstPerformancePersistenceWorker.java | 0 .../instance/InstPerformanceSpanListener.java | 0 .../node/NodeComponentAggregationWorker.java | 0 .../node/NodeComponentPersistenceWorker.java | 0 .../trace/node/NodeComponentRemoteWorker.java | 0 .../trace/node/NodeComponentSpanListener.java | 0 .../node/NodeMappingAggregationWorker.java | 0 .../node/NodeMappingPersistenceWorker.java | 0 .../trace/node/NodeMappingRemoteWorker.java | 0 .../trace/node/NodeMappingSpanListener.java | 0 .../NodeReferenceAggregationWorker.java | 0 .../NodeReferencePersistenceWorker.java | 0 .../noderef/NodeReferenceRemoteWorker.java | 0 .../noderef/NodeReferenceSpanListener.java | 0 .../segment/SegmentCostPersistenceWorker.java | 0 .../segment/SegmentCostSpanListener.java | 0 .../segment/SegmentPersistenceWorker.java | 0 .../ServiceEntryAggregationWorker.java | 0 .../ServiceEntryPersistenceWorker.java | 0 .../service/ServiceEntryRemoteWorker.java | 0 .../service/ServiceEntrySpanListener.java | 0 .../ServiceReferenceAggregationWorker.java | 0 .../ServiceReferencePersistenceWorker.java | 0 .../ServiceReferenceRemoteWorker.java | 0 .../ServiceReferenceSpanListener.java | 0 ...g.apm.collector.core.module.ModuleProvider | 2 +- .../apm-collector-agent-stream/pom.xml | 44 ++++++ .../handler/JVMMetricsServiceHandler.java | 148 ------------------ apm-collector/apm-collector-agent/pom.xml | 38 ----- apm-collector/apm-collector-boot/pom.xml | 20 +-- .../src/main/resources/application.yml | 6 +- .../core/config/SystemConfigParser.java | 36 +++++ .../main/resources/application-default.yml | 2 - .../stream/StreamModuleProvider.java | 52 ------ apm-collector/apm-collector-stream/pom.xml | 6 +- .../stream/timer/PersistenceTimer.java | 0 .../worker/base/AbstractLocalAsyncWorker.java | 0 .../AbstractLocalAsyncWorkerProvider.java | 0 .../worker/base/AbstractRemoteWorker.java | 0 .../base/AbstractRemoteWorkerProvider.java | 0 .../stream/worker/base/AbstractWorker.java | 0 .../worker/base/AbstractWorkerProvider.java | 0 .../worker/base/LocalAsyncWorkerRef.java | 0 .../stream/worker/base/Provider.java | 0 .../base/ProviderNotFoundException.java | 0 .../stream/worker/base/RemoteWorkerRef.java | 0 .../worker/base/UsedRoleNameException.java | 0 .../worker/base/WorkerCreateListener.java | 0 .../stream/worker/base/WorkerException.java | 0 .../worker/base/WorkerInvokeException.java | 0 .../worker/base/WorkerNotFoundException.java | 0 .../stream/worker/base/WorkerRef.java | 0 .../stream/worker/impl/AggregationWorker.java | 0 .../stream/worker/impl/FlushAndSwitch.java | 0 .../stream/worker/impl/PersistenceWorker.java | 0 .../stream/worker/impl/data/DataCache.java | 0 .../worker/impl/data/DataCollection.java | 0 .../stream/worker/impl/data/Window.java | 0 apm-collector/pom.xml | 4 +- 177 files changed, 1221 insertions(+), 376 deletions(-) rename apm-collector/{apm-collector-agent/collector-agent-define => apm-collector-agent-grpc/collector-agent-grpc-define}/pom.xml (90%) rename apm-collector/{apm-collector-agent/collector-agent-define/src/main/java/org/skywalking/apm/collector/agent/AgentModule.java => apm-collector-agent-grpc/collector-agent-grpc-define/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentGRPCModule.java} (86%) rename apm-collector/{apm-collector-stream/collector-stream-define => apm-collector-agent-grpc/collector-agent-grpc-define}/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module (92%) create mode 100644 apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java (85%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCRegistration.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java (88%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java (91%) create mode 100644 apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java (89%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java (84%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java (96%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java (88%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-grpc}/collector-agent-grpc-provider/src/test/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-grpc}/pom.xml (76%) rename apm-collector/{apm-collector-stream/collector-stream-define => apm-collector-agent-jetty/collector-agent-jetty-define}/pom.xml (90%) rename apm-collector/{apm-collector-stream/collector-stream-define/src/main/java/org/skywalking/apm/collector/stream/StreamModule.java => apm-collector-agent-jetty/collector-agent-jetty-define/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentJettyModule.java} (86%) rename apm-collector/{apm-collector-agent/collector-agent-define => apm-collector-agent-jetty/collector-agent-jetty-define}/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module (92%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/pom.xml (74%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java (90%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyRegistration.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java (89%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java (88%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java (88%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java (86%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingHandler.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java (87%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/KeyWithStringValueJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/LogJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/ReferenceJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SegmentJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SpanJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/StreamJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegment.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegmentJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/UniqueIdJsonReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json (100%) rename apm-collector/{apm-collector-agent => apm-collector-agent-jetty}/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json (100%) create mode 100644 apm-collector/apm-collector-agent-jetty/pom.xml rename apm-collector/{apm-collector-stream/collector-stream-provider => apm-collector-agent-stream/collector-agent-stream-define}/pom.xml (88%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModule.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/ICpuMetricService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IGCMetricService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IInstanceHeartBeatService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryMetricService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryPoolMetricService.java rename apm-collector/{apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java => apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IApplicationIDService.java} (76%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IInstanceIDService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IServiceNameService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/trace/ITraceSegmentService.java create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module rename apm-collector/{apm-collector-agent/collector-agent-grpc-provider => apm-collector-agent-stream/collector-agent-stream-provider}/pom.xml (75%) rename apm-collector/{apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamSingleton.java => apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamBootStartup.java} (85%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/IdAutoIncrement.java (100%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/Offset.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java (99%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/graph/JvmMetricStreamGraph.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/graph/RegisterStreamGraph.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/graph/TraceStreamGraph.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/RefsListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/util/FileUtils.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricPersistenceWorker.java (100%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricPersistenceWorker.java (100%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstHeartBeatPersistenceWorker.java (100%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricPersistenceWorker.java (100%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricPersistenceWorker.java (100%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java (93%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterSerialWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java (92%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterSerialWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterSerialWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java (93%) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/TraceSegmentService.java rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTracePersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTraceSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformancePersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformanceSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentAggregationWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingAggregationWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceAggregationWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostPersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostSpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentPersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryAggregationWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceAggregationWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceRemoteWorker.java (100%) rename apm-collector/{apm-collector-agent/collector-agent-stream => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java (100%) rename apm-collector/{apm-collector-stream/collector-stream-provider => apm-collector-agent-stream/collector-agent-stream-provider}/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider (91%) create mode 100644 apm-collector/apm-collector-agent-stream/pom.xml delete mode 100644 apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java delete mode 100644 apm-collector/apm-collector-agent/pom.xml create mode 100644 apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java delete mode 100644 apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/StreamModuleProvider.java rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/timer/PersistenceTimer.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorker.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorkerProvider.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorker.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorkerProvider.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/LocalAsyncWorkerRef.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/Provider.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/ProviderNotFoundException.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/UsedRoleNameException.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerCreateListener.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerException.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerInvokeException.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerNotFoundException.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerRef.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/impl/FlushAndSwitch.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java (100%) rename apm-collector/apm-collector-stream/{collector-stream-provider => }/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java (100%) diff --git a/apm-collector/apm-collector-agent/collector-agent-define/pom.xml b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml similarity index 90% rename from apm-collector/apm-collector-agent/collector-agent-define/pom.xml rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml index 1bc2c4eee..adb8e7523 100644 --- a/apm-collector/apm-collector-agent/collector-agent-define/pom.xml +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/pom.xml @@ -21,13 +21,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - apm-collector-agent + apm-collector-agent-grpc org.skywalking 3.2.5-2017 4.0.0 - collector-agent-define + collector-agent-grpc-define jar - + \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-define/src/main/java/org/skywalking/apm/collector/agent/AgentModule.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentGRPCModule.java similarity index 86% rename from apm-collector/apm-collector-agent/collector-agent-define/src/main/java/org/skywalking/apm/collector/agent/AgentModule.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentGRPCModule.java index 202a5554b..7e574016a 100644 --- a/apm-collector/apm-collector-agent/collector-agent-define/src/main/java/org/skywalking/apm/collector/agent/AgentModule.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentGRPCModule.java @@ -16,16 +16,16 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.agent; +package org.skywalking.apm.collector.agent.grpc; import org.skywalking.apm.collector.core.module.Module; /** * @author peng-yongsheng */ -public class AgentModule extends Module { +public class AgentGRPCModule extends Module { - public static final String NAME = "agent"; + public static final String NAME = "agent_gRPC"; @Override public String name() { return NAME; diff --git a/apm-collector/apm-collector-stream/collector-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module similarity index 92% rename from apm-collector/apm-collector-stream/collector-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module index 468c08d65..d6fe0707c 100644 --- a/apm-collector/apm-collector-stream/collector-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module @@ -16,4 +16,4 @@ # Project repository: https://github.com/OpenSkywalking/skywalking # -org.skywalking.apm.collector.stream.StreamModule \ No newline at end of file +org.skywalking.apm.collector.agent.grpc.AgentGRPCModule \ No newline at end of file diff --git a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml new file mode 100644 index 000000000..7c4c4f54b --- /dev/null +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/pom.xml @@ -0,0 +1,60 @@ + + + + + + apm-collector-agent-grpc + org.skywalking + 3.2.5-2017 + + 4.0.0 + + collector-agent-grpc-provider + jar + + + + org.skywalking + collector-agent-grpc-define + ${project.version} + + + org.skywalking + collector-grpc-manager-define + ${project.version} + + + org.skywalking + collector-cluster-define + ${project.version} + + + org.skywalking + collector-naming-define + ${project.version} + + + org.skywalking + collector-agent-stream-define + ${project.version} + + + diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java similarity index 85% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java index 863016d12..d45d38228 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCProvider.java @@ -19,7 +19,6 @@ package org.skywalking.apm.collector.agent.grpc; import java.util.Properties; -import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.grpc.handler.ApplicationRegisterServiceHandler; import org.skywalking.apm.collector.agent.grpc.handler.InstanceDiscoveryServiceHandler; import org.skywalking.apm.collector.agent.grpc.handler.JVMMetricsServiceHandler; @@ -27,8 +26,7 @@ import org.skywalking.apm.collector.agent.grpc.handler.ServiceNameDiscoveryServi import org.skywalking.apm.collector.agent.grpc.handler.TraceSegmentServiceHandler; import org.skywalking.apm.collector.agent.grpc.handler.naming.AgentGRPCNamingHandler; import org.skywalking.apm.collector.agent.grpc.handler.naming.AgentGRPCNamingListener; -import org.skywalking.apm.collector.agent.stream.AgentStreamSingleton; -import org.skywalking.apm.collector.cache.CacheModule; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; @@ -39,10 +37,7 @@ import org.skywalking.apm.collector.grpc.manager.GRPCManagerModule; import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService; import org.skywalking.apm.collector.naming.NamingModule; import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; -import org.skywalking.apm.collector.remote.RemoteModule; import org.skywalking.apm.collector.server.Server; -import org.skywalking.apm.collector.storage.StorageModule; -import org.skywalking.apm.collector.stream.StreamModule; /** * @author peng-yongsheng @@ -58,7 +53,7 @@ public class AgentModuleGRPCProvider extends ModuleProvider { } @Override public Class module() { - return AgentModule.class; + return AgentGRPCModule.class; } @Override public void prepare(Properties config) throws ServiceNotProvidedException { @@ -70,7 +65,7 @@ public class AgentModuleGRPCProvider extends ModuleProvider { Integer port = (Integer)config.get(PORT); ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); - moduleRegisterService.register(AgentModule.NAME, this.name(), new AgentModuleGRPCRegistration(host, port)); + moduleRegisterService.register(AgentGRPCModule.NAME, this.name(), new AgentModuleGRPCRegistration(host, port)); AgentGRPCNamingListener namingListener = new AgentGRPCNamingListener(); ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); @@ -82,7 +77,6 @@ public class AgentModuleGRPCProvider extends ModuleProvider { GRPCManagerService managerService = getManager().find(GRPCManagerModule.NAME).getService(GRPCManagerService.class); Server gRPCServer = managerService.createIfAbsent(host, port); - AgentStreamSingleton.createInstanceIfAbsent(getManager()); addHandlers(gRPCServer); } @@ -91,14 +85,14 @@ public class AgentModuleGRPCProvider extends ModuleProvider { } @Override public String[] requiredModules() { - return new String[] {ClusterModule.NAME, NamingModule.NAME, StorageModule.NAME, GRPCManagerModule.NAME, CacheModule.NAME, RemoteModule.NAME, StreamModule.NAME}; + return new String[] {ClusterModule.NAME, NamingModule.NAME, GRPCManagerModule.NAME, AgentStreamModule.NAME}; } private void addHandlers(Server gRPCServer) { gRPCServer.addHandler(new ApplicationRegisterServiceHandler(getManager())); gRPCServer.addHandler(new InstanceDiscoveryServiceHandler(getManager())); gRPCServer.addHandler(new ServiceNameDiscoveryServiceHandler(getManager())); - gRPCServer.addHandler(new JVMMetricsServiceHandler()); + gRPCServer.addHandler(new JVMMetricsServiceHandler(getManager())); gRPCServer.addHandler(new TraceSegmentServiceHandler(getManager())); } } diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCRegistration.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCRegistration.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCRegistration.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/AgentModuleGRPCRegistration.java diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java similarity index 88% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java index 1008f22c8..d3dcbff20 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandler.java @@ -20,7 +20,8 @@ package org.skywalking.apm.collector.agent.grpc.handler; import com.google.protobuf.ProtocolStringList; import io.grpc.stub.StreamObserver; -import org.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.grpc.GRPCHandler; import org.skywalking.apm.network.proto.Application; @@ -37,10 +38,10 @@ public class ApplicationRegisterServiceHandler extends ApplicationRegisterServic private final Logger logger = LoggerFactory.getLogger(ApplicationRegisterServiceHandler.class); - private final ApplicationIDService applicationIDService; + private final IApplicationIDService applicationIDService; public ApplicationRegisterServiceHandler(ModuleManager moduleManager) { - applicationIDService = new ApplicationIDService(moduleManager); + applicationIDService = moduleManager.find(AgentStreamModule.NAME).getService(IApplicationIDService.class); } @Override public void register(Application request, StreamObserver responseObserver) { diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java similarity index 91% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java index 456c1cd26..0f5197a3c 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/InstanceDiscoveryServiceHandler.java @@ -21,7 +21,8 @@ package org.skywalking.apm.collector.agent.grpc.handler; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import io.grpc.stub.StreamObserver; -import org.skywalking.apm.collector.agent.stream.worker.register.InstanceIDService; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.register.IInstanceIDService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.TimeBucketUtils; import org.skywalking.apm.collector.server.grpc.GRPCHandler; @@ -41,10 +42,10 @@ public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrp private final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServiceHandler.class); - private final InstanceIDService instanceIDService; + private final IInstanceIDService instanceIDService; public InstanceDiscoveryServiceHandler(ModuleManager moduleManager) { - this.instanceIDService = new InstanceIDService(moduleManager); + this.instanceIDService = moduleManager.find(AgentStreamModule.NAME).getService(IInstanceIDService.class); } @Override diff --git a/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java new file mode 100644 index 000000000..b3f16f2c6 --- /dev/null +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java @@ -0,0 +1,101 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.grpc.handler; + +import io.grpc.stub.StreamObserver; +import java.util.List; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.jvm.ICpuMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IGCMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IInstanceHeartBeatService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryPoolMetricService; +import org.skywalking.apm.collector.core.module.ModuleManager; +import org.skywalking.apm.collector.core.util.TimeBucketUtils; +import org.skywalking.apm.collector.server.grpc.GRPCHandler; +import org.skywalking.apm.network.proto.CPU; +import org.skywalking.apm.network.proto.Downstream; +import org.skywalking.apm.network.proto.GC; +import org.skywalking.apm.network.proto.JVMMetrics; +import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; +import org.skywalking.apm.network.proto.Memory; +import org.skywalking.apm.network.proto.MemoryPool; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler { + + private final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class); + + private final ICpuMetricService cpuMetricService; + private final IGCMetricService gcMetricService; + private final IMemoryMetricService memoryMetricService; + private final IMemoryPoolMetricService memoryPoolMetricService; + private final IInstanceHeartBeatService instanceHeartBeatService; + + public JVMMetricsServiceHandler(ModuleManager moduleManager) { + this.cpuMetricService = moduleManager.find(AgentStreamModule.NAME).getService(ICpuMetricService.class); + this.gcMetricService = moduleManager.find(AgentStreamModule.NAME).getService(IGCMetricService.class); + this.memoryMetricService = moduleManager.find(AgentStreamModule.NAME).getService(IMemoryMetricService.class); + this.memoryPoolMetricService = moduleManager.find(AgentStreamModule.NAME).getService(IMemoryPoolMetricService.class); + this.instanceHeartBeatService = moduleManager.find(AgentStreamModule.NAME).getService(IInstanceHeartBeatService.class); + } + + @Override public void collect(JVMMetrics request, StreamObserver responseObserver) { + int instanceId = request.getApplicationInstanceId(); + logger.debug("receive the jvm metric from application instance, id: {}", instanceId); + + request.getMetricsList().forEach(metric -> { + long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); + sendToInstanceHeartBeatService(instanceId, metric.getTime()); + sendToCpuMetricService(instanceId, time, metric.getCpu()); + sendToMemoryMetricService(instanceId, time, metric.getMemoryList()); + sendToMemoryPoolMetricService(instanceId, time, metric.getMemoryPoolList()); + sendToGCMetricService(instanceId, time, metric.getGcList()); + }); + + responseObserver.onNext(Downstream.newBuilder().build()); + responseObserver.onCompleted(); + } + + private void sendToInstanceHeartBeatService(int instanceId, long heartBeatTime) { + instanceHeartBeatService.send(instanceId, heartBeatTime); + } + + private void sendToMemoryMetricService(int instanceId, long timeBucket, List memories) { + memories.forEach(memory -> memoryMetricService.send(instanceId, timeBucket, memory.getIsHeap(), memory.getInit(), memory.getMax(), memory.getUsed(), memory.getCommitted())); + } + + private void sendToMemoryPoolMetricService(int instanceId, long timeBucket, + List memoryPools) { + + memoryPools.forEach(memoryPool -> memoryPoolMetricService.send(instanceId, timeBucket, memoryPool.getType().getNumber(), memoryPool.getInit(), memoryPool.getMax(), memoryPool.getUsed(), memoryPool.getCommited())); + } + + private void sendToCpuMetricService(int instanceId, long timeBucket, CPU cpu) { + cpuMetricService.send(instanceId, timeBucket, cpu.getUsagePercent()); + } + + private void sendToGCMetricService(int instanceId, long timeBucket, List gcs) { + gcs.forEach(gc -> gcMetricService.send(instanceId, timeBucket, gc.getPhraseValue(), gc.getCount(), gc.getTime())); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java similarity index 89% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java index 4b84db6c3..2fe84ea73 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/ServiceNameDiscoveryServiceHandler.java @@ -20,7 +20,8 @@ package org.skywalking.apm.collector.agent.grpc.handler; import io.grpc.stub.StreamObserver; import java.util.List; -import org.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.register.IServiceNameService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.grpc.GRPCHandler; import org.skywalking.apm.network.proto.ServiceNameCollection; @@ -38,10 +39,10 @@ public class ServiceNameDiscoveryServiceHandler extends ServiceNameDiscoveryServ private final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryServiceHandler.class); - private final ServiceNameService serviceNameService; + private final IServiceNameService serviceNameService; public ServiceNameDiscoveryServiceHandler(ModuleManager moduleManager) { - this.serviceNameService = new ServiceNameService(moduleManager); + this.serviceNameService = moduleManager.find(AgentStreamModule.NAME).getService(IServiceNameService.class); } @Override public void discovery(ServiceNameCollection request, diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java similarity index 84% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java index 4c6b80a6b..0dbcfd5e4 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/TraceSegmentServiceHandler.java @@ -19,7 +19,8 @@ package org.skywalking.apm.collector.agent.grpc.handler; import io.grpc.stub.StreamObserver; -import org.skywalking.apm.collector.agent.stream.parser.SegmentParse; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.grpc.GRPCHandler; import org.skywalking.apm.network.proto.Downstream; @@ -35,18 +36,17 @@ public class TraceSegmentServiceHandler extends TraceSegmentServiceGrpc.TraceSeg private final Logger logger = LoggerFactory.getLogger(TraceSegmentServiceHandler.class); - private final ModuleManager moduleManager; + private final ITraceSegmentService traceSegmentService; public TraceSegmentServiceHandler(ModuleManager moduleManager) { - this.moduleManager = moduleManager; + this.traceSegmentService = moduleManager.find(AgentStreamModule.NAME).getService(ITraceSegmentService.class); } @Override public StreamObserver collect(StreamObserver responseObserver) { return new StreamObserver() { @Override public void onNext(UpstreamSegment segment) { logger.debug("receive segment"); - SegmentParse segmentParse = new SegmentParse(moduleManager); - segmentParse.parse(segment, SegmentParse.Source.Agent); + traceSegmentService.send(segment); } @Override public void onError(Throwable throwable) { diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java similarity index 96% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java index dda852e44..e729074ee 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingHandler.java @@ -37,8 +37,7 @@ public class AgentGRPCNamingHandler extends JettyHandler { } @Override public String pathSpec() { -// return "/agent/gRPC"; - return "/agentstream/grpc"; + return "/agent/gRPC"; } @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException { diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java similarity index 88% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java index b75a32d33..0d0d190c6 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java +++ b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/naming/AgentGRPCNamingListener.java @@ -18,7 +18,7 @@ package org.skywalking.apm.collector.agent.grpc.handler.naming; -import org.skywalking.apm.collector.agent.AgentModule; +import org.skywalking.apm.collector.agent.grpc.AgentGRPCModule; import org.skywalking.apm.collector.agent.grpc.AgentModuleGRPCProvider; import org.skywalking.apm.collector.cluster.ClusterModuleListener; @@ -27,7 +27,7 @@ import org.skywalking.apm.collector.cluster.ClusterModuleListener; */ public class AgentGRPCNamingListener extends ClusterModuleListener { - public static final String PATH = "/" + AgentModule.NAME + "/" + AgentModuleGRPCProvider.NAME; + public static final String PATH = "/" + AgentGRPCModule.NAME + "/" + AgentModuleGRPCProvider.NAME; @Override public String path() { return PATH; diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/test/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java b/apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/test/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/test/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java rename to apm-collector/apm-collector-agent-grpc/collector-agent-grpc-provider/src/test/java/org/skywalking/apm/collector/agent/grpc/handler/ApplicationRegisterServiceHandlerTestCase.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/pom.xml b/apm-collector/apm-collector-agent-grpc/pom.xml similarity index 76% rename from apm-collector/apm-collector-agent/collector-agent-stream/pom.xml rename to apm-collector/apm-collector-agent-grpc/pom.xml index da8ed0465..68dae9343 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/pom.xml +++ b/apm-collector/apm-collector-agent-grpc/pom.xml @@ -21,25 +21,24 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - apm-collector-agent + apm-collector org.skywalking 3.2.5-2017 4.0.0 - collector-agent-stream - jar + apm-collector-agent-grpc + pom + + collector-agent-grpc-define + collector-agent-grpc-provider + org.skywalking - collector-stream-provider - ${project.version} - - - org.skywalking - collector-cache-define + apm-collector-core ${project.version} - + \ No newline at end of file diff --git a/apm-collector/apm-collector-stream/collector-stream-define/pom.xml b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml similarity index 90% rename from apm-collector/apm-collector-stream/collector-stream-define/pom.xml rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml index 083972267..6b249cbcf 100644 --- a/apm-collector/apm-collector-stream/collector-stream-define/pom.xml +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/pom.xml @@ -21,12 +21,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - apm-collector-stream + apm-collector-agent-jetty org.skywalking 3.2.5-2017 4.0.0 - collector-stream-define + collector-agent-jetty-define jar + \ No newline at end of file diff --git a/apm-collector/apm-collector-stream/collector-stream-define/src/main/java/org/skywalking/apm/collector/stream/StreamModule.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentJettyModule.java similarity index 86% rename from apm-collector/apm-collector-stream/collector-stream-define/src/main/java/org/skywalking/apm/collector/stream/StreamModule.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentJettyModule.java index 29ae5467c..be74cdfc1 100644 --- a/apm-collector/apm-collector-stream/collector-stream-define/src/main/java/org/skywalking/apm/collector/stream/StreamModule.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentJettyModule.java @@ -16,16 +16,16 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.stream; +package org.skywalking.apm.collector.agent.jetty; import org.skywalking.apm.collector.core.module.Module; /** * @author peng-yongsheng */ -public class StreamModule extends Module { +public class AgentJettyModule extends Module { - public static final String NAME = "stream"; + public static final String NAME = "agent_jetty"; @Override public String name() { return NAME; diff --git a/apm-collector/apm-collector-agent/collector-agent-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module similarity index 92% rename from apm-collector/apm-collector-agent/collector-agent-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module index 53a054ae3..6bd8395e8 100644 --- a/apm-collector/apm-collector-agent/collector-agent-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module @@ -16,4 +16,4 @@ # Project repository: https://github.com/OpenSkywalking/skywalking # -org.skywalking.apm.collector.agent.AgentModule \ No newline at end of file +org.skywalking.apm.collector.agent.jetty.AgentJettyModule \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml similarity index 74% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml index f8a854702..bf0ba2500 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/pom.xml +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/pom.xml @@ -21,7 +21,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - apm-collector-agent + apm-collector-agent-jetty org.skywalking 3.2.5-2017 @@ -33,12 +33,7 @@ org.skywalking - collector-agent-define - ${project.version} - - - org.skywalking - collector-agent-stream + collector-agent-jetty-define ${project.version} @@ -46,5 +41,20 @@ collector-jetty-manager-define ${project.version} + + org.skywalking + collector-cluster-define + ${project.version} + + + org.skywalking + collector-naming-define + ${project.version} + + + org.skywalking + collector-agent-stream-define + ${project.version} + diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java similarity index 90% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java index 75d911b44..ce317e3e3 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyProvider.java @@ -19,14 +19,13 @@ package org.skywalking.apm.collector.agent.jetty; import java.util.Properties; -import org.skywalking.apm.collector.agent.AgentModule; import org.skywalking.apm.collector.agent.jetty.handler.ApplicationRegisterServletHandler; import org.skywalking.apm.collector.agent.jetty.handler.InstanceDiscoveryServletHandler; import org.skywalking.apm.collector.agent.jetty.handler.ServiceNameDiscoveryServiceHandler; import org.skywalking.apm.collector.agent.jetty.handler.TraceSegmentServletHandler; import org.skywalking.apm.collector.agent.jetty.handler.naming.AgentJettyNamingHandler; import org.skywalking.apm.collector.agent.jetty.handler.naming.AgentJettyNamingListener; -import org.skywalking.apm.collector.cache.CacheModule; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; import org.skywalking.apm.collector.cluster.ClusterModule; import org.skywalking.apm.collector.cluster.service.ModuleListenerService; import org.skywalking.apm.collector.cluster.service.ModuleRegisterService; @@ -38,8 +37,6 @@ import org.skywalking.apm.collector.jetty.manager.service.JettyManagerService; import org.skywalking.apm.collector.naming.NamingModule; import org.skywalking.apm.collector.naming.service.NamingHandlerRegisterService; import org.skywalking.apm.collector.server.Server; -import org.skywalking.apm.collector.storage.StorageModule; -import org.skywalking.apm.collector.stream.StreamModule; /** * @author peng-yongsheng @@ -56,7 +53,7 @@ public class AgentModuleJettyProvider extends ModuleProvider { } @Override public Class module() { - return AgentModule.class; + return AgentJettyModule.class; } @Override public void prepare(Properties config) throws ServiceNotProvidedException { @@ -69,7 +66,7 @@ public class AgentModuleJettyProvider extends ModuleProvider { String contextPath = config.getProperty(CONTEXT_PATH); ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); - moduleRegisterService.register(AgentModule.NAME, this.name(), new AgentModuleJettyRegistration(host, port, contextPath)); + moduleRegisterService.register(AgentJettyModule.NAME, this.name(), new AgentModuleJettyRegistration(host, port, contextPath)); AgentJettyNamingListener namingListener = new AgentJettyNamingListener(); ModuleListenerService moduleListenerService = getManager().find(ClusterModule.NAME).getService(ModuleListenerService.class); @@ -88,7 +85,7 @@ public class AgentModuleJettyProvider extends ModuleProvider { } @Override public String[] requiredModules() { - return new String[] {ClusterModule.NAME, NamingModule.NAME, StorageModule.NAME, JettyManagerModule.NAME, CacheModule.NAME, StreamModule.NAME}; + return new String[] {ClusterModule.NAME, NamingModule.NAME, JettyManagerModule.NAME, AgentStreamModule.NAME}; } private void addHandlers(Server jettyServer) { diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyRegistration.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyRegistration.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyRegistration.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/AgentModuleJettyRegistration.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java similarity index 89% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java index 5fb5db4b6..5d90e79fd 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterServletHandler.java @@ -24,7 +24,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.io.IOException; import javax.servlet.http.HttpServletRequest; -import org.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; @@ -38,13 +39,13 @@ public class ApplicationRegisterServletHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(ApplicationRegisterServletHandler.class); - private final ApplicationIDService applicationIDService; + private final IApplicationIDService applicationIDService; private Gson gson = new Gson(); private static final String APPLICATION_CODE = "c"; private static final String APPLICATION_ID = "i"; public ApplicationRegisterServletHandler(ModuleManager moduleManager) { - this.applicationIDService = new ApplicationIDService(moduleManager); + this.applicationIDService = moduleManager.find(AgentStreamModule.NAME).getService(IApplicationIDService.class); } @Override public String pathSpec() { diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java similarity index 88% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java index 658d7d419..17627398b 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceDiscoveryServletHandler.java @@ -23,7 +23,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.io.IOException; import javax.servlet.http.HttpServletRequest; -import org.skywalking.apm.collector.agent.stream.worker.register.InstanceIDService; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.register.IInstanceIDService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; @@ -37,8 +38,8 @@ public class InstanceDiscoveryServletHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServletHandler.class); - private final InstanceIDService instanceIDService; - private Gson gson = new Gson(); + private final IInstanceIDService instanceIDService; + private final Gson gson = new Gson(); private static final String APPLICATION_ID = "ai"; private static final String AGENT_UUID = "au"; @@ -47,7 +48,7 @@ public class InstanceDiscoveryServletHandler extends JettyHandler { private static final String OS_INFO = "oi"; public InstanceDiscoveryServletHandler(ModuleManager moduleManager) { - this.instanceIDService = new InstanceIDService(moduleManager); + this.instanceIDService = moduleManager.find(AgentStreamModule.NAME).getService(IInstanceIDService.class); } @Override public String pathSpec() { diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java similarity index 88% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java index b842e17c9..7e7b224f5 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameDiscoveryServiceHandler.java @@ -24,7 +24,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.io.IOException; import javax.servlet.http.HttpServletRequest; -import org.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.register.IServiceNameService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; @@ -38,8 +39,8 @@ public class ServiceNameDiscoveryServiceHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryServiceHandler.class); - private final ServiceNameService serviceNameService; - private Gson gson = new Gson(); + private final IServiceNameService serviceNameService; + private final Gson gson = new Gson(); private static final String APPLICATION_ID = "ai"; private static final String SERVICE_NAME = "sn"; @@ -47,7 +48,7 @@ public class ServiceNameDiscoveryServiceHandler extends JettyHandler { private static final String ELEMENT = "el"; public ServiceNameDiscoveryServiceHandler(ModuleManager moduleManager) { - this.serviceNameService = new ServiceNameService(moduleManager); + this.serviceNameService = moduleManager.find(AgentStreamModule.NAME).getService(IServiceNameService.class); } @Override public String pathSpec() { diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java similarity index 86% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java index 6c873bd77..c880674ff 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/TraceSegmentServletHandler.java @@ -25,7 +25,8 @@ import java.io.IOException; import javax.servlet.http.HttpServletRequest; import org.skywalking.apm.collector.agent.jetty.handler.reader.TraceSegment; import org.skywalking.apm.collector.agent.jetty.handler.reader.TraceSegmentJsonReader; -import org.skywalking.apm.collector.agent.stream.parser.SegmentParse; +import org.skywalking.apm.collector.agent.stream.AgentStreamModule; +import org.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.server.jetty.ArgumentsParseException; import org.skywalking.apm.collector.server.jetty.JettyHandler; @@ -39,10 +40,10 @@ public class TraceSegmentServletHandler extends JettyHandler { private final Logger logger = LoggerFactory.getLogger(TraceSegmentServletHandler.class); - private final ModuleManager moduleManager; + private final ITraceSegmentService traceSegmentService; public TraceSegmentServletHandler(ModuleManager moduleManager) { - this.moduleManager = moduleManager; + this.traceSegmentService = moduleManager.find(AgentStreamModule.NAME).getService(ITraceSegmentService.class); } @Override public String pathSpec() { @@ -71,9 +72,8 @@ public class TraceSegmentServletHandler extends JettyHandler { reader.beginArray(); while (reader.hasNext()) { - SegmentParse segmentParse = new SegmentParse(moduleManager); TraceSegment traceSegment = jsonReader.read(reader); - segmentParse.parse(traceSegment.getUpstreamSegment(), SegmentParse.Source.Agent); + traceSegmentService.send(traceSegment.getUpstreamSegment()); } reader.endArray(); } diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingHandler.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingHandler.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingHandler.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingHandler.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java similarity index 87% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java index 1dad304a9..e9592cd12 100644 --- a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/naming/AgentJettyNamingListener.java @@ -18,7 +18,7 @@ package org.skywalking.apm.collector.agent.jetty.handler.naming; -import org.skywalking.apm.collector.agent.AgentModule; +import org.skywalking.apm.collector.agent.jetty.AgentJettyModule; import org.skywalking.apm.collector.agent.jetty.AgentModuleJettyProvider; import org.skywalking.apm.collector.cluster.ClusterModuleListener; @@ -27,7 +27,7 @@ import org.skywalking.apm.collector.cluster.ClusterModuleListener; */ public class AgentJettyNamingListener extends ClusterModuleListener { - public static final String PATH = "/" + AgentModule.NAME + "/" + AgentModuleJettyProvider.NAME; + public static final String PATH = "/" + AgentJettyModule.NAME + "/" + AgentModuleJettyProvider.NAME; @Override public String path() { return PATH; diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/KeyWithStringValueJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/KeyWithStringValueJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/KeyWithStringValueJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/KeyWithStringValueJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/LogJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/LogJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/LogJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/LogJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/ReferenceJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/ReferenceJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/ReferenceJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/ReferenceJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SegmentJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SegmentJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SegmentJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SegmentJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SpanJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SpanJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SpanJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/SpanJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/StreamJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/StreamJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/StreamJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/StreamJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegment.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegment.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegment.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegment.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegmentJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegmentJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegmentJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/TraceSegmentJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/UniqueIdJsonReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/UniqueIdJsonReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/UniqueIdJsonReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/java/org/skywalking/apm/collector/agent/jetty/handler/reader/UniqueIdJsonReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ApplicationRegisterPost.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/HttpClientTools.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/InstanceRegisterPost.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/JsonFileReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/ServiceNameRegisterPost.java diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/application-register-consumer.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/application-register-provider.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/dubbox-consumer.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/dubbox-provider.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/instance-register-consumer.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/instance-register-provider.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/servicename-register-consumer.json diff --git a/apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json rename to apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/resources/json/servicename-register-provider.json diff --git a/apm-collector/apm-collector-agent-jetty/pom.xml b/apm-collector/apm-collector-agent-jetty/pom.xml new file mode 100644 index 000000000..6bfcc418a --- /dev/null +++ b/apm-collector/apm-collector-agent-jetty/pom.xml @@ -0,0 +1,44 @@ + + + + + + apm-collector + org.skywalking + 3.2.5-2017 + + 4.0.0 + + apm-collector-agent-jetty + pom + + collector-agent-jetty-define + collector-agent-jetty-provider + + + + + org.skywalking + apm-collector-core + ${project.version} + + + \ No newline at end of file diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/pom.xml b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml similarity index 88% rename from apm-collector/apm-collector-stream/collector-stream-provider/pom.xml rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml index 2cb289d8f..267072072 100644 --- a/apm-collector/apm-collector-stream/collector-stream-provider/pom.xml +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/pom.xml @@ -21,20 +21,20 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - apm-collector-stream + apm-collector-agent-stream org.skywalking 3.2.5-2017 4.0.0 - collector-stream-provider + collector-agent-stream-define jar org.skywalking - collector-stream-define + apm-network ${project.version} - + \ No newline at end of file diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModule.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModule.java new file mode 100644 index 000000000..01e960c24 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModule.java @@ -0,0 +1,68 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream; + +import java.util.ArrayList; +import java.util.List; +import org.skywalking.apm.collector.agent.stream.service.jvm.ICpuMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IGCMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IInstanceHeartBeatService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryPoolMetricService; +import org.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService; +import org.skywalking.apm.collector.agent.stream.service.register.IInstanceIDService; +import org.skywalking.apm.collector.agent.stream.service.register.IServiceNameService; +import org.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; +import org.skywalking.apm.collector.core.module.Module; + +/** + * @author peng-yongsheng + */ +public class AgentStreamModule extends Module { + + public static final String NAME = "agent_stream"; + + @Override public String name() { + return NAME; + } + + @Override public Class[] services() { + List classes = new ArrayList<>(); + + addRegisterService(classes); + addJVMService(classes); + classes.add(ITraceSegmentService.class); + + return classes.toArray(new Class[] {}); + } + + private void addRegisterService(List classes) { + classes.add(IApplicationIDService.class); + classes.add(IInstanceIDService.class); + classes.add(IServiceNameService.class); + } + + private void addJVMService(List classes) { + classes.add(ICpuMetricService.class); + classes.add(IGCMetricService.class); + classes.add(IMemoryMetricService.class); + classes.add(IMemoryPoolMetricService.class); + classes.add(IInstanceHeartBeatService.class); + } +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/ICpuMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/ICpuMetricService.java new file mode 100644 index 000000000..659f881ea --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/ICpuMetricService.java @@ -0,0 +1,28 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.jvm; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface ICpuMetricService extends Service { + void send(int instanceId, long timeBucket, double usagePercent); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IGCMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IGCMetricService.java new file mode 100644 index 000000000..62038953d --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IGCMetricService.java @@ -0,0 +1,28 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.jvm; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface IGCMetricService extends Service { + void send(int instanceId, long timeBucket, int phraseValue, long count, long time); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IInstanceHeartBeatService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IInstanceHeartBeatService.java new file mode 100644 index 000000000..53c487f7c --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IInstanceHeartBeatService.java @@ -0,0 +1,28 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.jvm; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface IInstanceHeartBeatService extends Service { + void send(int instanceId, long heartBeatTime); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryMetricService.java new file mode 100644 index 000000000..917ac2900 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryMetricService.java @@ -0,0 +1,28 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.jvm; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface IMemoryMetricService extends Service { + void send(int instanceId, long timeBucket, boolean isHeap, long init, long max, long used, long commited); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryPoolMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryPoolMetricService.java new file mode 100644 index 000000000..88766a509 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/jvm/IMemoryPoolMetricService.java @@ -0,0 +1,28 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.jvm; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface IMemoryPoolMetricService extends Service { + void send(int instanceId, long timeBucket, int poolType, long init, long max, long used, long commited); +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IApplicationIDService.java similarity index 76% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IApplicationIDService.java index 6cc6f7724..20e755370 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IApplicationIDService.java @@ -16,12 +16,13 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.agent.stream.buffer; +package org.skywalking.apm.collector.agent.stream.service.register; + +import org.skywalking.apm.collector.core.module.Service; /** * @author peng-yongsheng */ -public class BufferFileConfig { - public static int BUFFER_OFFSET_MAX_FILE_SIZE = 10 * 1024 * 1024; - public static int BUFFER_SEGMENT_MAX_FILE_SIZE = 10 * 1024 * 1024; +public interface IApplicationIDService extends Service { + int getOrCreate(String applicationCode); } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IInstanceIDService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IInstanceIDService.java new file mode 100644 index 000000000..efb3542fa --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IInstanceIDService.java @@ -0,0 +1,30 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.register; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface IInstanceIDService extends Service { + int getOrCreate(int applicationId, String agentUUID, long registerTime, String osInfo); + + void recover(int instanceId, int applicationId, long registerTime, String osInfo); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IServiceNameService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IServiceNameService.java new file mode 100644 index 000000000..3dc3c5d16 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/register/IServiceNameService.java @@ -0,0 +1,28 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.register; + +import org.skywalking.apm.collector.core.module.Service; + +/** + * @author peng-yongsheng + */ +public interface IServiceNameService extends Service { + int getOrCreate(int applicationId, String serviceName); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/trace/ITraceSegmentService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/trace/ITraceSegmentService.java new file mode 100644 index 000000000..581e62319 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/java/org/skywalking/apm/collector/agent/stream/service/trace/ITraceSegmentService.java @@ -0,0 +1,29 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.service.trace; + +import org.skywalking.apm.collector.core.module.Service; +import org.skywalking.apm.network.proto.UpstreamSegment; + +/** + * @author peng-yongsheng + */ +public interface ITraceSegmentService extends Service { + void send(UpstreamSegment segment); +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module new file mode 100644 index 000000000..2016bceae --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-define/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.Module @@ -0,0 +1,19 @@ +# +# Copyright 2017, OpenSkywalking Organization All rights reserved. +# +# Licensed 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. +# +# Project repository: https://github.com/OpenSkywalking/skywalking +# + +org.skywalking.apm.collector.agent.stream.AgentStreamModule \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml similarity index 75% rename from apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml index 1aaf8da1f..a2e6c61b9 100644 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/pom.xml +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/pom.xml @@ -21,30 +21,35 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - apm-collector-agent + apm-collector-agent-stream org.skywalking 3.2.5-2017 4.0.0 - collector-agent-grpc-provider + collector-agent-stream-provider jar org.skywalking - collector-agent-define + collector-agent-stream-define ${project.version} org.skywalking - collector-agent-stream + collector-storage-define ${project.version} org.skywalking - collector-grpc-manager-define + collector-cache-define + ${project.version} + + + org.skywalking + apm-collector-stream ${project.version} - + \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamSingleton.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamBootStartup.java similarity index 85% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamSingleton.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamBootStartup.java index 91afecb5a..7757ad1b9 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamSingleton.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamBootStartup.java @@ -22,34 +22,23 @@ import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; import org.skywalking.apm.collector.agent.stream.graph.RegisterStreamGraph; import org.skywalking.apm.collector.agent.stream.graph.TraceStreamGraph; import org.skywalking.apm.collector.core.module.ModuleManager; -import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.stream.timer.PersistenceTimer; import org.skywalking.apm.collector.stream.worker.base.WorkerCreateListener; /** * @author peng-yongsheng */ -public class AgentStreamSingleton { - - private static AgentStreamSingleton INSTANCE; +public class AgentStreamBootStartup { private final ModuleManager moduleManager; private final WorkerCreateListener workerCreateListener; - private AgentStreamSingleton(ModuleManager moduleManager) { + public AgentStreamBootStartup(ModuleManager moduleManager) { this.moduleManager = moduleManager; this.workerCreateListener = new WorkerCreateListener(); - this.create(); } - public static synchronized AgentStreamSingleton createInstanceIfAbsent(ModuleManager moduleManager) { - if (ObjectUtils.isEmpty(INSTANCE)) { - INSTANCE = new AgentStreamSingleton(moduleManager); - } - return INSTANCE; - } - - private void create() { + public void start() { createJVMGraph(); createRegisterGraph(); createTraceGraph(); diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java new file mode 100644 index 000000000..34444b476 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java @@ -0,0 +1,89 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream; + +import java.util.Properties; +import org.skywalking.apm.collector.agent.stream.buffer.BufferFileConfig; +import org.skywalking.apm.collector.agent.stream.service.jvm.ICpuMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IGCMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IInstanceHeartBeatService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryMetricService; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryPoolMetricService; +import org.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService; +import org.skywalking.apm.collector.agent.stream.service.register.IInstanceIDService; +import org.skywalking.apm.collector.agent.stream.service.register.IServiceNameService; +import org.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; +import org.skywalking.apm.collector.agent.stream.worker.jvm.CpuMetricService; +import org.skywalking.apm.collector.agent.stream.worker.jvm.GCMetricService; +import org.skywalking.apm.collector.agent.stream.worker.jvm.InstanceHeartBeatService; +import org.skywalking.apm.collector.agent.stream.worker.jvm.MemoryMetricService; +import org.skywalking.apm.collector.agent.stream.worker.jvm.MemoryPoolMetricService; +import org.skywalking.apm.collector.agent.stream.worker.register.ApplicationIDService; +import org.skywalking.apm.collector.agent.stream.worker.register.InstanceIDService; +import org.skywalking.apm.collector.agent.stream.worker.register.ServiceNameService; +import org.skywalking.apm.collector.agent.stream.worker.trace.TraceSegmentService; +import org.skywalking.apm.collector.cache.CacheModule; +import org.skywalking.apm.collector.core.module.Module; +import org.skywalking.apm.collector.core.module.ModuleProvider; +import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; +import org.skywalking.apm.collector.storage.StorageModule; + +/** + * @author peng-yongsheng + */ +public class AgentStreamModuleProvider extends ModuleProvider { + + @Override public String name() { + return "default"; + } + + @Override public Class module() { + return AgentStreamModule.class; + } + + @Override public void prepare(Properties config) throws ServiceNotProvidedException { + this.registerServiceImplementation(IApplicationIDService.class, new ApplicationIDService(getManager())); + this.registerServiceImplementation(IInstanceIDService.class, new InstanceIDService(getManager())); + this.registerServiceImplementation(IServiceNameService.class, new ServiceNameService(getManager())); + + this.registerServiceImplementation(ICpuMetricService.class, new CpuMetricService()); + this.registerServiceImplementation(IGCMetricService.class, new GCMetricService()); + this.registerServiceImplementation(IMemoryMetricService.class, new MemoryMetricService()); + this.registerServiceImplementation(IMemoryPoolMetricService.class, new MemoryPoolMetricService()); + this.registerServiceImplementation(IInstanceHeartBeatService.class, new InstanceHeartBeatService()); + + this.registerServiceImplementation(ITraceSegmentService.class, new TraceSegmentService(getManager())); + + BufferFileConfig.Parser parser = new BufferFileConfig.Parser(); + parser.parse(config); + } + + @Override public void start(Properties config) throws ServiceNotProvidedException { + AgentStreamBootStartup bootStartup = new AgentStreamBootStartup(getManager()); + bootStartup.start(); + } + + @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { + + } + + @Override public String[] requiredModules() { + return new String[] {StorageModule.NAME, CacheModule.NAME}; + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/IdAutoIncrement.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/IdAutoIncrement.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/IdAutoIncrement.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/IdAutoIncrement.java diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java new file mode 100644 index 000000000..1b393918e --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java @@ -0,0 +1,79 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.buffer; + +import java.util.Properties; + +/** + * @author peng-yongsheng + */ +public class BufferFileConfig { + static int BUFFER_OFFSET_MAX_FILE_SIZE = 10 * 1024 * 1024; + static int BUFFER_SEGMENT_MAX_FILE_SIZE = 10 * 1024 * 1024; + + private static final String BUFFER_OFFSET_MAX_FILE_SIZE_KEY = "buffer_offset_max_file_size"; + private static final String BUFFER_SEGMENT_MAX_FILE_SIZE_KEY = "buffer_segment_max_file_size"; + + public static class Parser { + + public void parse(Properties config) { + if (config.containsKey(BUFFER_OFFSET_MAX_FILE_SIZE_KEY)) { + String sizeStr = config.getProperty(BUFFER_OFFSET_MAX_FILE_SIZE_KEY).toUpperCase(); + if (sizeStr.endsWith("K")) { + int size = Integer.parseInt(sizeStr.replace("K", "")); + BUFFER_OFFSET_MAX_FILE_SIZE = size * 1024; + } else if (sizeStr.endsWith("KB")) { + int size = Integer.parseInt(sizeStr.replace("KB", "")); + BUFFER_OFFSET_MAX_FILE_SIZE = size * 1024; + } else if (sizeStr.endsWith("M")) { + int size = Integer.parseInt(sizeStr.replace("M", "")); + BUFFER_OFFSET_MAX_FILE_SIZE = size * 1024 * 1024; + } else if (sizeStr.endsWith("MB")) { + int size = Integer.parseInt(sizeStr.replace("MB", "")); + BUFFER_OFFSET_MAX_FILE_SIZE = size * 1024 * 1024; + } else { + BUFFER_OFFSET_MAX_FILE_SIZE = 10 * 1024 * 1024; + } + } else { + BUFFER_OFFSET_MAX_FILE_SIZE = 10 * 1024 * 1024; + } + + if (config.containsKey(BUFFER_SEGMENT_MAX_FILE_SIZE_KEY)) { + String sizeStr = config.getProperty(BUFFER_SEGMENT_MAX_FILE_SIZE_KEY).toUpperCase(); + if (sizeStr.endsWith("K")) { + int size = Integer.parseInt(sizeStr.replace("K", "")); + BUFFER_SEGMENT_MAX_FILE_SIZE = size * 1024; + } else if (sizeStr.endsWith("KB")) { + int size = Integer.parseInt(sizeStr.replace("KB", "")); + BUFFER_SEGMENT_MAX_FILE_SIZE = size * 1024; + } else if (sizeStr.endsWith("M")) { + int size = Integer.parseInt(sizeStr.replace("M", "")); + BUFFER_SEGMENT_MAX_FILE_SIZE = size * 1024 * 1024; + } else if (sizeStr.endsWith("MB")) { + int size = Integer.parseInt(sizeStr.replace("MB", "")); + BUFFER_SEGMENT_MAX_FILE_SIZE = size * 1024 * 1024; + } else { + BUFFER_SEGMENT_MAX_FILE_SIZE = 1024 * 1024; + } + } else { + BUFFER_SEGMENT_MAX_FILE_SIZE = 1024 * 1024; + } + } + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/Offset.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/Offset.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/Offset.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/Offset.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java similarity index 99% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java index 68bce1581..e9b4e25d6 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java @@ -70,7 +70,7 @@ public enum OffsetManager { offset.deserialize(offsetRecord); initialized = true; - Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> flush(), 10, 3, TimeUnit.SECONDS); + Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(this::flush, 10, 3, TimeUnit.SECONDS); } } diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/graph/JvmMetricStreamGraph.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/graph/JvmMetricStreamGraph.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/graph/JvmMetricStreamGraph.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/graph/JvmMetricStreamGraph.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/graph/RegisterStreamGraph.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/graph/RegisterStreamGraph.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/graph/RegisterStreamGraph.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/graph/RegisterStreamGraph.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/graph/TraceStreamGraph.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/graph/TraceStreamGraph.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/graph/TraceStreamGraph.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/graph/TraceStreamGraph.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/EntrySpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/ExitSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/FirstSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/GlobalTraceIdsListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/LocalSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/RefsListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/RefsListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/RefsListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/RefsListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/IdExchanger.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceDecorator.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/ReferenceIdExchanger.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentDecorator.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardization.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SegmentStandardizationWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanDecorator.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/SpanIdExchanger.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/standardization/StandardBuilder.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/util/FileUtils.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/util/FileUtils.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/util/FileUtils.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/util/FileUtils.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java new file mode 100644 index 000000000..4fc8c80a2 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java @@ -0,0 +1,52 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker.jvm; + +import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.jvm.ICpuMetricService; +import org.skywalking.apm.collector.core.graph.Graph; +import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.storage.table.jvm.CpuMetric; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class CpuMetricService implements ICpuMetricService { + + private final Logger logger = LoggerFactory.getLogger(CpuMetricService.class); + + private final Graph cpuMetricGraph; + + public CpuMetricService() { + cpuMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.CPU_METRIC_GRAPH_ID, CpuMetric.class); + } + + @Override public void send(int instanceId, long timeBucket, double usagePercent) { + CpuMetric cpuMetric = new CpuMetric(timeBucket + Const.ID_SPLIT + instanceId); + cpuMetric.setInstanceId(instanceId); + cpuMetric.setUsagePercent(usagePercent); + cpuMetric.setTimeBucket(timeBucket); + + logger.debug("send to cpu metric graph, id: {}", cpuMetric.getId()); + cpuMetricGraph.start(cpuMetric); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java new file mode 100644 index 000000000..8d8f9c7a0 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java @@ -0,0 +1,54 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker.jvm; + +import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.jvm.IGCMetricService; +import org.skywalking.apm.collector.core.graph.Graph; +import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.storage.table.jvm.GCMetric; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class GCMetricService implements IGCMetricService { + + private final Logger logger = LoggerFactory.getLogger(GCMetricService.class); + + private final Graph gcMetricGraph; + + public GCMetricService() { + gcMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.GC_METRIC_GRAPH_ID, GCMetric.class); + } + + @Override public void send(int instanceId, long timeBucket, int phraseValue, long count, long time) { + GCMetric gcMetric = new GCMetric(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(phraseValue)); + gcMetric.setInstanceId(instanceId); + gcMetric.setPhrase(phraseValue); + gcMetric.setCount(count); + gcMetric.setTime(time); + gcMetric.setTimeBucket(timeBucket); + + logger.debug("send to gc metric graph, id: {}", gcMetric.getId()); + gcMetricGraph.start(gcMetric); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstHeartBeatPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstHeartBeatPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstHeartBeatPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstHeartBeatPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java new file mode 100644 index 000000000..78084e83b --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java @@ -0,0 +1,51 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker.jvm; + +import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.jvm.IInstanceHeartBeatService; +import org.skywalking.apm.collector.core.graph.Graph; +import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.util.TimeBucketUtils; +import org.skywalking.apm.collector.storage.table.register.Instance; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class InstanceHeartBeatService implements IInstanceHeartBeatService { + + private final Logger logger = LoggerFactory.getLogger(InstanceHeartBeatService.class); + + private final Graph heartBeatGraph; + + public InstanceHeartBeatService() { + this.heartBeatGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.INST_HEART_BEAT_GRAPH_ID, Instance.class); + } + + @Override public void send(int instanceId, long heartBeatTime) { + Instance instance = new Instance(String.valueOf(instanceId)); + instance.setHeartBeatTime(TimeBucketUtils.INSTANCE.getSecondTimeBucket(heartBeatTime)); + instance.setInstanceId(instanceId); + + logger.debug("send to instance heart beat persistence worker, id: {}", instance.getId()); + heartBeatGraph.start(instance); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java new file mode 100644 index 000000000..9909f7235 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java @@ -0,0 +1,57 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker.jvm; + +import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryMetricService; +import org.skywalking.apm.collector.core.graph.Graph; +import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.storage.table.jvm.MemoryMetric; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class MemoryMetricService implements IMemoryMetricService { + + private final Logger logger = LoggerFactory.getLogger(MemoryMetricService.class); + + private final Graph memoryMetricGraph; + + public MemoryMetricService() { + this.memoryMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_METRIC_GRAPH_ID, MemoryMetric.class); + } + + @Override + public void send(int instanceId, long timeBucket, boolean isHeap, long init, long max, long used, long commited) { + MemoryMetric memoryMetric = new MemoryMetric(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(isHeap)); + memoryMetric.setInstanceId(instanceId); + memoryMetric.setIsHeap(isHeap); + memoryMetric.setInit(init); + memoryMetric.setMax(max); + memoryMetric.setUsed(used); + memoryMetric.setCommitted(commited); + memoryMetric.setTimeBucket(timeBucket); + + logger.debug("send to memory metric graph, id: {}", memoryMetric.getId()); + memoryMetricGraph.start(memoryMetric); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java new file mode 100644 index 000000000..3af24bc2b --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java @@ -0,0 +1,57 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker.jvm; + +import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryPoolMetricService; +import org.skywalking.apm.collector.core.graph.Graph; +import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.storage.table.jvm.MemoryPoolMetric; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class MemoryPoolMetricService implements IMemoryPoolMetricService { + + private final Logger logger = LoggerFactory.getLogger(MemoryPoolMetricService.class); + + private final Graph memoryPoolMetricGraph; + + public MemoryPoolMetricService() { + this.memoryPoolMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_POOL_METRIC_GRAPH_ID, MemoryPoolMetric.class); + } + + @Override + public void send(int instanceId, long timeBucket, int poolType, long init, long max, long used, long commited) { + MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetric(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(poolType)); + memoryPoolMetric.setInstanceId(instanceId); + memoryPoolMetric.setPoolType(poolType); + memoryPoolMetric.setInit(init); + memoryPoolMetric.setMax(max); + memoryPoolMetric.setUsed(used); + memoryPoolMetric.setCommitted(commited); + memoryPoolMetric.setTimeBucket(timeBucket); + + logger.debug("send to memory pool metric graph, id: {}", memoryPoolMetric.getId()); + memoryPoolMetricGraph.start(memoryPoolMetric); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java similarity index 93% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java index 1595a8cf0..d218b537b 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java @@ -19,6 +19,7 @@ package org.skywalking.apm.collector.agent.stream.worker.register; import org.skywalking.apm.collector.agent.stream.graph.RegisterStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.register.IApplicationIDService; import org.skywalking.apm.collector.cache.CacheModule; import org.skywalking.apm.collector.cache.service.ApplicationCacheService; import org.skywalking.apm.collector.core.graph.Graph; @@ -31,7 +32,7 @@ import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ -public class ApplicationIDService { +public class ApplicationIDService implements IApplicationIDService { private final Logger logger = LoggerFactory.getLogger(ApplicationIDService.class); diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterSerialWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterSerialWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterSerialWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationRegisterSerialWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java similarity index 92% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java index 831b9dcbf..c68919e66 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java @@ -19,6 +19,7 @@ package org.skywalking.apm.collector.agent.stream.worker.register; import org.skywalking.apm.collector.agent.stream.graph.RegisterStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.register.IInstanceIDService; import org.skywalking.apm.collector.cache.CacheModule; import org.skywalking.apm.collector.cache.service.InstanceCacheService; import org.skywalking.apm.collector.core.graph.Graph; @@ -33,18 +34,16 @@ import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ -public class InstanceIDService { +public class InstanceIDService implements IInstanceIDService { private final Logger logger = LoggerFactory.getLogger(InstanceIDService.class); private final ModuleManager moduleManager; private final Graph instanceRegisterGraph; - private final IInstanceRegisterDAO instanceRegisterDAO; public InstanceIDService(ModuleManager moduleManager) { this.moduleManager = moduleManager; this.instanceRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.INSTANCE_REGISTER_GRAPH_ID, Instance.class); - this.instanceRegisterDAO = moduleManager.find(StorageModule.NAME).getService(IInstanceRegisterDAO.class); } public int getOrCreate(int applicationId, String agentUUID, long registerTime, String osInfo) { @@ -68,6 +67,7 @@ public class InstanceIDService { public void recover(int instanceId, int applicationId, long registerTime, String osInfo) { logger.debug("instance recover, instance id: {}, application id: {}, register time: {}", instanceId, applicationId, registerTime); + final IInstanceRegisterDAO instanceRegisterDAO = moduleManager.find(StorageModule.NAME).getService(IInstanceRegisterDAO.class); Instance instance = new Instance(String.valueOf(instanceId)); instance.setApplicationId(applicationId); @@ -76,6 +76,7 @@ public class InstanceIDService { instance.setHeartBeatTime(registerTime); instance.setInstanceId(instanceId); instance.setOsInfo(osInfo); + instanceRegisterDAO.save(instance); } } diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterSerialWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterSerialWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterSerialWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterSerialWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterSerialWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterSerialWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterSerialWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameRegisterSerialWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java similarity index 93% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java index 738a595f4..4579d7796 100644 --- a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java @@ -19,6 +19,7 @@ package org.skywalking.apm.collector.agent.stream.worker.register; import org.skywalking.apm.collector.agent.stream.graph.RegisterStreamGraph; +import org.skywalking.apm.collector.agent.stream.service.register.IServiceNameService; import org.skywalking.apm.collector.cache.CacheModule; import org.skywalking.apm.collector.cache.service.ServiceIdCacheService; import org.skywalking.apm.collector.core.graph.Graph; @@ -31,7 +32,7 @@ import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ -public class ServiceNameService { +public class ServiceNameService implements IServiceNameService { private final Logger logger = LoggerFactory.getLogger(ServiceNameService.class); diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/TraceSegmentService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/TraceSegmentService.java new file mode 100644 index 000000000..86832dde8 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/TraceSegmentService.java @@ -0,0 +1,41 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker.trace; + +import org.skywalking.apm.collector.agent.stream.parser.SegmentParse; +import org.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; +import org.skywalking.apm.collector.core.module.ModuleManager; +import org.skywalking.apm.network.proto.UpstreamSegment; + +/** + * @author peng-yongsheng + */ +public class TraceSegmentService implements ITraceSegmentService { + + private final ModuleManager moduleManager; + + public TraceSegmentService(ModuleManager moduleManager) { + this.moduleManager = moduleManager; + } + + public void send(UpstreamSegment segment) { + SegmentParse segmentParse = new SegmentParse(moduleManager); + segmentParse.parse(segment, SegmentParse.Source.Agent); + } +} diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTracePersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTracePersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTracePersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTracePersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTraceSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTraceSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTraceSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/global/GlobalTraceSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformancePersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformancePersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformancePersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformancePersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformanceSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformanceSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformanceSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/instance/InstPerformanceSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentAggregationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentAggregationWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentAggregationWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentAggregationWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingAggregationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingAggregationWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingAggregationWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingAggregationWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceAggregationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceAggregationWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceAggregationWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceAggregationWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferencePersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentCostSpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/segment/SegmentPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryAggregationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryAggregationWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryAggregationWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryAggregationWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryPersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntryRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceAggregationWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceAggregationWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceAggregationWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceAggregationWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferencePersistenceWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceRemoteWorker.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceRemoteWorker.java diff --git a/apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java similarity index 100% rename from apm-collector/apm-collector-agent/collector-agent-stream/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider similarity index 91% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider rename to apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider index ee323473e..134461a3b 100644 --- a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/resources/META-INF/services/org.skywalking.apm.collector.core.module.ModuleProvider @@ -16,4 +16,4 @@ # Project repository: https://github.com/OpenSkywalking/skywalking # -org.skywalking.apm.collector.stream.StreamModuleProvider \ No newline at end of file +org.skywalking.apm.collector.agent.stream.AgentStreamModuleProvider \ No newline at end of file diff --git a/apm-collector/apm-collector-agent-stream/pom.xml b/apm-collector/apm-collector-agent-stream/pom.xml new file mode 100644 index 000000000..9fc9f7dc6 --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/pom.xml @@ -0,0 +1,44 @@ + + + + + + apm-collector + org.skywalking + 3.2.5-2017 + + 4.0.0 + + apm-collector-agent-stream + pom + + collector-agent-stream-define + collector-agent-stream-provider + + + + + org.skywalking + apm-collector-core + ${project.version} + + + \ No newline at end of file diff --git a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java b/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java deleted file mode 100644 index e1d86f431..000000000 --- a/apm-collector/apm-collector-agent/collector-agent-grpc-provider/src/main/java/org/skywalking/apm/collector/agent/grpc/handler/JVMMetricsServiceHandler.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright 2017, OpenSkywalking Organization All rights reserved. - * - * Licensed 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. - * - * Project repository: https://github.com/OpenSkywalking/skywalking - */ - -package org.skywalking.apm.collector.agent.grpc.handler; - -import io.grpc.stub.StreamObserver; -import java.util.List; -import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; -import org.skywalking.apm.collector.core.graph.Graph; -import org.skywalking.apm.collector.core.graph.GraphManager; -import org.skywalking.apm.collector.core.util.Const; -import org.skywalking.apm.collector.core.util.TimeBucketUtils; -import org.skywalking.apm.collector.server.grpc.GRPCHandler; -import org.skywalking.apm.collector.storage.table.jvm.CpuMetric; -import org.skywalking.apm.collector.storage.table.jvm.GCMetric; -import org.skywalking.apm.collector.storage.table.jvm.MemoryMetric; -import org.skywalking.apm.collector.storage.table.jvm.MemoryPoolMetric; -import org.skywalking.apm.collector.storage.table.register.Instance; -import org.skywalking.apm.network.proto.CPU; -import org.skywalking.apm.network.proto.Downstream; -import org.skywalking.apm.network.proto.GC; -import org.skywalking.apm.network.proto.JVMMetrics; -import org.skywalking.apm.network.proto.JVMMetricsServiceGrpc; -import org.skywalking.apm.network.proto.Memory; -import org.skywalking.apm.network.proto.MemoryPool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * @author peng-yongsheng - */ -public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler { - - private final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class); - - private final Graph memoryMetricGraph; - private final Graph memoryPoolMetricGraph; - private final Graph gcMetricGraph; - private final Graph cpuMetricGraph; - private final Graph heartBeatGraph; - - public JVMMetricsServiceHandler() { - memoryMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_METRIC_GRAPH_ID, MemoryMetric.class); - memoryPoolMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_POOL_METRIC_GRAPH_ID, MemoryPoolMetric.class); - gcMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.GC_METRIC_GRAPH_ID, GCMetric.class); - cpuMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.CPU_METRIC_GRAPH_ID, CpuMetric.class); - heartBeatGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.INST_HEART_BEAT_GRAPH_ID, Instance.class); - } - - @Override public void collect(JVMMetrics request, StreamObserver responseObserver) { - int instanceId = request.getApplicationInstanceId(); - logger.debug("receive the jvm metric from application instance, id: {}", instanceId); - - request.getMetricsList().forEach(metric -> { - long time = TimeBucketUtils.INSTANCE.getSecondTimeBucket(metric.getTime()); - sendToInstanceHeartBeatPersistenceWorker(instanceId, metric.getTime()); - sendToCpuMetricPersistenceWorker(instanceId, time, metric.getCpu()); - sendToMemoryMetricPersistenceWorker(instanceId, time, metric.getMemoryList()); - sendToMemoryPoolMetricPersistenceWorker(instanceId, time, metric.getMemoryPoolList()); - sendToGCMetricPersistenceWorker(instanceId, time, metric.getGcList()); - }); - - responseObserver.onNext(Downstream.newBuilder().build()); - responseObserver.onCompleted(); - } - - private void sendToInstanceHeartBeatPersistenceWorker(int instanceId, long heartBeatTime) { - Instance instance = new Instance(String.valueOf(instanceId)); - instance.setHeartBeatTime(TimeBucketUtils.INSTANCE.getSecondTimeBucket(heartBeatTime)); - instance.setInstanceId(instanceId); - - logger.debug("send to instance heart beat persistence worker, id: {}", instance.getId()); - heartBeatGraph.start(instance); - } - - private void sendToCpuMetricPersistenceWorker(int instanceId, long timeBucket, CPU cpu) { - CpuMetric cpuMetric = new CpuMetric(timeBucket + Const.ID_SPLIT + instanceId); - cpuMetric.setInstanceId(instanceId); - cpuMetric.setUsagePercent(cpu.getUsagePercent()); - cpuMetric.setTimeBucket(timeBucket); - - logger.debug("send to cpu metric graph, id: {}", cpuMetric.getId()); - cpuMetricGraph.start(cpuMetric); - } - - private void sendToMemoryMetricPersistenceWorker(int instanceId, long timeBucket, List memories) { - memories.forEach(memory -> { - MemoryMetric memoryMetric = new MemoryMetric(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(memory.getIsHeap())); - memoryMetric.setInstanceId(instanceId); - memoryMetric.setIsHeap(memory.getIsHeap()); - memoryMetric.setInit(memory.getInit()); - memoryMetric.setMax(memory.getMax()); - memoryMetric.setUsed(memory.getUsed()); - memoryMetric.setCommitted(memory.getCommitted()); - memoryMetric.setTimeBucket(timeBucket); - - logger.debug("send to memory metric graph, id: {}", memoryMetric.getId()); - memoryMetricGraph.start(memoryMetric); - }); - } - - private void sendToMemoryPoolMetricPersistenceWorker(int instanceId, long timeBucket, - List memoryPools) { - - memoryPools.forEach(memoryPool -> { - MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetric(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(memoryPool.getType().getNumber())); - memoryPoolMetric.setInstanceId(instanceId); - memoryPoolMetric.setPoolType(memoryPool.getType().getNumber()); - memoryPoolMetric.setInit(memoryPool.getInit()); - memoryPoolMetric.setMax(memoryPool.getMax()); - memoryPoolMetric.setUsed(memoryPool.getUsed()); - memoryPoolMetric.setCommitted(memoryPool.getCommited()); - memoryPoolMetric.setTimeBucket(timeBucket); - - logger.debug("send to memory pool metric graph, id: {}", memoryPoolMetric.getId()); - memoryPoolMetricGraph.start(memoryPoolMetric); - }); - } - - private void sendToGCMetricPersistenceWorker(int instanceId, long timeBucket, List gcs) { - gcs.forEach(gc -> { - GCMetric gcMetric = new GCMetric(timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + String.valueOf(gc.getPhraseValue())); - gcMetric.setInstanceId(instanceId); - gcMetric.setPhrase(gc.getPhraseValue()); - gcMetric.setCount(gc.getCount()); - gcMetric.setTime(gc.getTime()); - gcMetric.setTimeBucket(timeBucket); - - logger.debug("send to gc metric graph, id: {}", gcMetric.getId()); - gcMetricGraph.start(gcMetric); - }); - } -} diff --git a/apm-collector/apm-collector-agent/pom.xml b/apm-collector/apm-collector-agent/pom.xml deleted file mode 100644 index 84cc91273..000000000 --- a/apm-collector/apm-collector-agent/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - apm-collector - org.skywalking - 3.2.5-2017 - - 4.0.0 - - apm-collector-agent - pom - - collector-agent-define - collector-agent-jetty-provider - collector-agent-grpc-provider - collector-agent-stream - - - - - org.skywalking - apm-collector-core - ${project.version} - - - org.skywalking - collector-cluster-define - ${project.version} - - - org.skywalking - collector-naming-define - ${project.version} - - - diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml index b9873cc2c..c1c540f7f 100644 --- a/apm-collector/apm-collector-boot/pom.xml +++ b/apm-collector/apm-collector-boot/pom.xml @@ -79,18 +79,27 @@ ${project.version} - + org.skywalking collector-agent-grpc-provider ${project.version} + + org.skywalking collector-agent-jetty-provider ${project.version} - + + + + org.skywalking + collector-agent-stream-provider + ${project.version} + + org.skywalking @@ -129,13 +138,6 @@ ${project.version} - - - org.skywalking - collector-stream-provider - ${project.version} - - org.skywalking diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml index 254f84d23..d8628b391 100644 --- a/apm-collector/apm-collector-boot/src/main/resources/application.yml +++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml @@ -7,15 +7,17 @@ naming: host: localhost port: 10800 context_path: / -agent: +agent_gRPC: gRPC: host: localhost port: 11800 +agent_jetty: jetty: host: localhost port: 12800 context_path: / - config: +agent_stream: + default: buffer_offset_max_file_size: 10M buffer_segment_max_file_size: 500M ui: diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java new file mode 100644 index 000000000..aa90354dd --- /dev/null +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java @@ -0,0 +1,36 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.core.config; + +import org.skywalking.apm.collector.core.util.StringUtils; + +/** + * @author peng-yongsheng + */ +public enum SystemConfigParser { + INSTANCE; + + private static final String DATA_PATH = "data.path"; + + public void parse() { + if (!StringUtils.isEmpty(System.getProperty(DATA_PATH))) { + SystemConfig.DATA_PATH = System.getProperty(DATA_PATH); + } + } +} diff --git a/apm-collector/apm-collector-core/src/main/resources/application-default.yml b/apm-collector/apm-collector-core/src/main/resources/application-default.yml index a77838189..6d3aefc73 100644 --- a/apm-collector/apm-collector-core/src/main/resources/application-default.yml +++ b/apm-collector/apm-collector-core/src/main/resources/application-default.yml @@ -24,8 +24,6 @@ jetty_manager: jetty: gRPC_manager: gRPC: -stream: - worker: storage: h2: url: jdbc:h2:~/memorydb diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/StreamModuleProvider.java b/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/StreamModuleProvider.java deleted file mode 100644 index 0e73dc8d2..000000000 --- a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/StreamModuleProvider.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2017, OpenSkywalking Organization All rights reserved. - * - * Licensed 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. - * - * Project repository: https://github.com/OpenSkywalking/skywalking - */ - -package org.skywalking.apm.collector.stream; - -import java.util.Properties; -import org.skywalking.apm.collector.core.module.Module; -import org.skywalking.apm.collector.core.module.ModuleProvider; -import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; - -/** - * @author peng-yongsheng - */ -public class StreamModuleProvider extends ModuleProvider { - - @Override public String name() { - return "worker"; - } - - @Override public Class module() { - return StreamModule.class; - } - - @Override public void prepare(Properties config) throws ServiceNotProvidedException { - } - - @Override public void start(Properties config) throws ServiceNotProvidedException { - } - - @Override public void notifyAfterCompleted() throws ServiceNotProvidedException { - - } - - @Override public String[] requiredModules() { - return new String[] {}; - } -} diff --git a/apm-collector/apm-collector-stream/pom.xml b/apm-collector/apm-collector-stream/pom.xml index b3eb5c6d1..2e51f860b 100644 --- a/apm-collector/apm-collector-stream/pom.xml +++ b/apm-collector/apm-collector-stream/pom.xml @@ -28,11 +28,7 @@ 4.0.0 apm-collector-stream - pom - - collector-stream-define - collector-stream-provider - + jar diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/timer/PersistenceTimer.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/timer/PersistenceTimer.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/timer/PersistenceTimer.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/timer/PersistenceTimer.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorker.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorker.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorker.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorkerProvider.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorkerProvider.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorkerProvider.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractLocalAsyncWorkerProvider.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorker.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorker.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorker.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorkerProvider.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorkerProvider.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorkerProvider.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractWorkerProvider.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/LocalAsyncWorkerRef.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/LocalAsyncWorkerRef.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/LocalAsyncWorkerRef.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/LocalAsyncWorkerRef.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/Provider.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/Provider.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/Provider.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/Provider.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/ProviderNotFoundException.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/ProviderNotFoundException.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/ProviderNotFoundException.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/ProviderNotFoundException.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/UsedRoleNameException.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/UsedRoleNameException.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/UsedRoleNameException.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/UsedRoleNameException.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerCreateListener.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerCreateListener.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerCreateListener.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerCreateListener.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerException.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerException.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerException.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerException.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerInvokeException.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerInvokeException.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerInvokeException.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerInvokeException.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerNotFoundException.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerNotFoundException.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerNotFoundException.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerNotFoundException.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerRef.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerRef.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerRef.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/WorkerRef.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/FlushAndSwitch.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/FlushAndSwitch.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/FlushAndSwitch.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/FlushAndSwitch.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java diff --git a/apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java similarity index 100% rename from apm-collector/apm-collector-stream/collector-stream-provider/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java rename to apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java diff --git a/apm-collector/pom.xml b/apm-collector/pom.xml index d34f3f702..47914d4d8 100644 --- a/apm-collector/pom.xml +++ b/apm-collector/pom.xml @@ -33,7 +33,6 @@ apm-collector-boot apm-collector-ui - apm-collector-agent apm-collector-core apm-collector-component apm-collector-cluster @@ -47,6 +46,9 @@ apm-collector-queue apm-collector-instrument apm-collector-baseline + apm-collector-agent-grpc + apm-collector-agent-jetty + apm-collector-agent-stream From eaa025451212216c1b807c41687ef8d5c9129f37 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Sun, 19 Nov 2017 22:25:11 +0800 Subject: [PATCH 2/3] Test success with standalone and cluster mode. --- .../agent/jetty/handler/SegmentPost.java | 7 +- .../stream/AgentStreamModuleProvider.java | 7 + .../agent/stream/buffer/BufferFileConfig.java | 6 + .../agent/stream/buffer/OffsetManager.java | 6 +- .../stream/buffer/SegmentBufferManager.java | 9 +- .../stream/buffer/SegmentBufferReader.java | 6 +- .../agent/stream/parser/SegmentParse.java | 2 +- .../worker/AgentStreamRemoteDataRegister.java | 53 +++++++ .../stream/worker/jvm/CpuMetricService.java | 14 +- .../stream/worker/jvm/GCMetricService.java | 14 +- .../worker/jvm/InstanceHeartBeatService.java | 14 +- .../worker/jvm/MemoryMetricService.java | 14 +- .../worker/jvm/MemoryPoolMetricService.java | 14 +- .../worker/register/ApplicationIDService.java | 24 +++- .../worker/register/InstanceIDService.java | 36 +++-- .../InstanceRegisterRemoteWorker.java | 2 +- .../worker/register/ServiceNameService.java | 24 +++- .../trace/node/NodeComponentRemoteWorker.java | 2 +- .../trace/node/NodeMappingRemoteWorker.java | 2 +- .../trace/node/NodeMappingSpanListener.java | 2 +- .../noderef/NodeReferenceRemoteWorker.java | 2 +- .../service/ServiceEntrySpanListener.java | 2 +- .../ServiceReferenceSpanListener.java | 2 +- .../src/main/resources/application.yml | 21 +-- .../src/main/resources/log4j2.xml | 4 +- .../collector-cache-guava-provider/pom.xml | 5 + .../service/ApplicationCacheGuavaService.java | 21 ++- .../service/InstanceCacheGuavaService.java | 21 ++- .../service/ServiceIdCacheGuavaService.java | 17 ++- .../service/ServiceNameCacheGuavaService.java | 17 ++- .../client-component/pom.xml | 40 +++++- .../server-component/pom.xml | 6 + .../Collection.java} | 23 ++- .../apm/collector/core/cache}/Window.java | 26 ++-- .../apm/collector/core/data/Data.java | 1 + .../main/resources/application-default.yml | 14 ++ .../apm/collector/remote/RemoteException.java | 35 +++++ .../apm/collector/remote/RemoteModule.java | 4 +- .../CommonRemoteDataRegisterService.java | 71 ++++++++++ .../remote/service/RemoteClient.java | 2 +- .../remote/service/RemoteClientService.java | 2 +- ...aReceiver.java => RemoteDataIDGetter.java} | 6 +- ...a => RemoteDataInstanceCreatorGetter.java} | 7 +- ...DataInstanceCreatorNotFoundException.java} | 15 +- ...RemoteDataMappingIdNotFoundException.java} | 10 +- .../service/RemoteDataRegisterService.java} | 17 +-- .../collector-remote-grpc-provider/pom.xml | 5 + .../remote/grpc/RemoteModuleGRPCProvider.java | 20 ++- .../handler/RemoteCommonServiceHandler.java | 26 +++- .../remote/grpc/service/GRPCRemoteClient.java | 134 ++++++++++++++++-- .../grpc/service/GRPCRemoteClientService.java | 78 ++-------- .../service/GRPCRemoteDeserializeService.java | 3 - .../grpc/service/GRPCRemoteSenderService.java | 16 ++- .../service/GRPCRemoteSerializeService.java | 13 +- .../grpc/service/GRPCRemoteServerService.java | 21 --- .../src/main/proto/RemoteCommonService.proto | 7 +- .../worker/base/AbstractRemoteWorker.java | 13 -- .../base/AbstractRemoteWorkerProvider.java | 5 +- .../stream/worker/base/RemoteWorkerRef.java | 2 +- .../stream/worker/impl/AggregationWorker.java | 4 +- .../stream/worker/impl/PersistenceWorker.java | 6 +- .../stream/worker/impl/data/DataCache.java | 7 +- .../worker/impl/data/DataCollection.java | 19 +-- apm-collector/pom.xml | 5 - .../datacarrier/consumer/ConsumerThread.java | 12 +- apm-network/pom.xml | 25 +--- apm-sniffer/apm-agent-core/pom.xml | 4 +- apm-sniffer/apm-sdk-plugin/pom.xml | 9 +- 68 files changed, 732 insertions(+), 351 deletions(-) create mode 100644 apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/AgentStreamRemoteDataRegister.java rename apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/{config/SystemConfig.java => cache/Collection.java} (71%) rename apm-collector/{apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data => apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache}/Window.java (74%) create mode 100644 apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteException.java create mode 100644 apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/CommonRemoteDataRegisterService.java rename apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/{DataReceiver.java => RemoteDataIDGetter.java} (85%) rename apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/{RemoteServerService.java => RemoteDataInstanceCreatorGetter.java} (79%) rename apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/{DataReceiverRegisterListener.java => RemoteDataInstanceCreatorNotFoundException.java} (75%) rename apm-collector/{apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java => apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataMappingIdNotFoundException.java} (72%) rename apm-collector/{apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java => apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataRegisterService.java} (63%) delete mode 100644 apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteServerService.java diff --git a/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java index 29b3efc31..297eab2a2 100644 --- a/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java +++ b/apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java @@ -40,8 +40,11 @@ public class SegmentPost { serviceNameRegisterPost.send("json/servicename-register-provider.json"); JsonElement provider = JsonFileReader.INSTANCE.read("json/dubbox-provider.json"); - HttpClientTools.INSTANCE.post("http://localhost:12800/segments", provider.toString()); JsonElement consumer = JsonFileReader.INSTANCE.read("json/dubbox-consumer.json"); - HttpClientTools.INSTANCE.post("http://localhost:12800/segments", consumer.toString()); + + for (int i = 0; i < 1000; i++) { + HttpClientTools.INSTANCE.post("http://localhost:12800/segments", provider.toString()); + HttpClientTools.INSTANCE.post("http://localhost:12800/segments", consumer.toString()); + } } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java index 34444b476..c8c0d6e78 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java @@ -29,6 +29,7 @@ import org.skywalking.apm.collector.agent.stream.service.register.IApplicationID import org.skywalking.apm.collector.agent.stream.service.register.IInstanceIDService; import org.skywalking.apm.collector.agent.stream.service.register.IServiceNameService; import org.skywalking.apm.collector.agent.stream.service.trace.ITraceSegmentService; +import org.skywalking.apm.collector.agent.stream.worker.AgentStreamRemoteDataRegister; import org.skywalking.apm.collector.agent.stream.worker.jvm.CpuMetricService; import org.skywalking.apm.collector.agent.stream.worker.jvm.GCMetricService; import org.skywalking.apm.collector.agent.stream.worker.jvm.InstanceHeartBeatService; @@ -42,6 +43,8 @@ import org.skywalking.apm.collector.cache.CacheModule; import org.skywalking.apm.collector.core.module.Module; import org.skywalking.apm.collector.core.module.ModuleProvider; import org.skywalking.apm.collector.core.module.ServiceNotProvidedException; +import org.skywalking.apm.collector.remote.RemoteModule; +import org.skywalking.apm.collector.remote.service.RemoteDataRegisterService; import org.skywalking.apm.collector.storage.StorageModule; /** @@ -75,6 +78,10 @@ public class AgentStreamModuleProvider extends ModuleProvider { } @Override public void start(Properties config) throws ServiceNotProvidedException { + RemoteDataRegisterService remoteDataRegisterService = getManager().find(RemoteModule.NAME).getService(RemoteDataRegisterService.class); + AgentStreamRemoteDataRegister agentStreamRemoteDataRegister = new AgentStreamRemoteDataRegister(remoteDataRegisterService); + agentStreamRemoteDataRegister.register(); + AgentStreamBootStartup bootStartup = new AgentStreamBootStartup(getManager()); bootStartup.start(); } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java index 1b393918e..812048b72 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java @@ -26,13 +26,19 @@ import java.util.Properties; public class BufferFileConfig { static int BUFFER_OFFSET_MAX_FILE_SIZE = 10 * 1024 * 1024; static int BUFFER_SEGMENT_MAX_FILE_SIZE = 10 * 1024 * 1024; + static String BUFFER_PATH = "../buffer/"; + private static final String BUFFER_PATH_KEY = "buffer_file_path"; private static final String BUFFER_OFFSET_MAX_FILE_SIZE_KEY = "buffer_offset_max_file_size"; private static final String BUFFER_SEGMENT_MAX_FILE_SIZE_KEY = "buffer_segment_max_file_size"; public static class Parser { public void parse(Properties config) { + if (config.containsKey(BUFFER_PATH_KEY)) { + BUFFER_PATH = config.getProperty(BUFFER_PATH_KEY); + } + if (config.containsKey(BUFFER_OFFSET_MAX_FILE_SIZE_KEY)) { String sizeStr = config.getProperty(BUFFER_OFFSET_MAX_FILE_SIZE_KEY).toUpperCase(); if (sizeStr.endsWith("K")) { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java index e9b4e25d6..a78aa1ac4 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java @@ -49,7 +49,7 @@ public enum OffsetManager { public synchronized void initialize() throws IOException { if (!initialized) { this.offset = new Offset(); - File dataPath = new File(SegmentBufferConfig.BUFFER_PATH); + File dataPath = new File(BufferFileConfig.BUFFER_PATH); if (dataPath.mkdirs()) { createOffsetFile(); } else { @@ -77,7 +77,7 @@ public enum OffsetManager { private void createOffsetFile() throws IOException { String timeBucket = String.valueOf(TimeBucketUtils.INSTANCE.getSecondTimeBucket(System.currentTimeMillis())); String offsetFileName = OFFSET_FILE_PREFIX + "_" + timeBucket + "." + Const.FILE_SUFFIX; - offsetFile = new File(SegmentBufferConfig.BUFFER_PATH + offsetFileName); + offsetFile = new File(BufferFileConfig.BUFFER_PATH + offsetFileName); this.offset.getWriteOffset().setWriteFileName(Const.EMPTY_STRING); this.offset.getWriteOffset().setWriteFileOffset(0); this.offset.getReadOffset().setReadFileName(Const.EMPTY_STRING); @@ -99,7 +99,7 @@ public enum OffsetManager { private void nextFile() { String timeBucket = String.valueOf(TimeBucketUtils.INSTANCE.getSecondTimeBucket(System.currentTimeMillis())); String offsetFileName = OFFSET_FILE_PREFIX + "_" + timeBucket + "." + Const.FILE_SUFFIX; - File newOffsetFile = new File(SegmentBufferConfig.BUFFER_PATH + offsetFileName); + File newOffsetFile = new File(BufferFileConfig.BUFFER_PATH + offsetFileName); offsetFile.delete(); offsetFile = newOffsetFile; this.flush(); diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java index 2e2a3d86c..2d3a87807 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java @@ -44,14 +44,14 @@ public enum SegmentBufferManager { logger.info("segment buffer initialize"); try { OffsetManager.INSTANCE.initialize(); - if (new File(SegmentBufferConfig.BUFFER_PATH).mkdirs()) { + if (new File(BufferFileConfig.BUFFER_PATH).mkdirs()) { newDataFile(); } else { String writeFileName = OffsetManager.INSTANCE.getWriteFileName(); if (StringUtils.isNotEmpty(writeFileName)) { - File dataFile = new File(SegmentBufferConfig.BUFFER_PATH + writeFileName); + File dataFile = new File(BufferFileConfig.BUFFER_PATH + writeFileName); if (dataFile.exists()) { - outputStream = new FileOutputStream(new File(SegmentBufferConfig.BUFFER_PATH + writeFileName), true); + outputStream = new FileOutputStream(new File(BufferFileConfig.BUFFER_PATH + writeFileName), true); } else { newDataFile(); } @@ -83,7 +83,7 @@ public enum SegmentBufferManager { logger.debug("create new segment buffer file"); String timeBucket = String.valueOf(TimeBucketUtils.INSTANCE.getSecondTimeBucket(System.currentTimeMillis())); String writeFileName = DATA_FILE_PREFIX + "_" + timeBucket + "." + Const.FILE_SUFFIX; - File dataFile = new File(SegmentBufferConfig.BUFFER_PATH + writeFileName); + File dataFile = new File(BufferFileConfig.BUFFER_PATH + writeFileName); dataFile.createNewFile(); OffsetManager.INSTANCE.setWriteOffset(writeFileName, 0); try { @@ -98,6 +98,5 @@ public enum SegmentBufferManager { } public synchronized void flush() { - } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java index 148b33d9b..0126686cb 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java @@ -53,7 +53,7 @@ public enum SegmentBufferReader { private void preRead() { String readFileName = OffsetManager.INSTANCE.getReadFileName(); if (StringUtils.isNotEmpty(readFileName)) { - File readFile = new File(SegmentBufferConfig.BUFFER_PATH + readFileName); + File readFile = new File(BufferFileConfig.BUFFER_PATH + readFileName); if (readFile.exists()) { deleteTheDataFilesBeforeReadFile(readFileName); long readFileOffset = OffsetManager.INSTANCE.getReadFileOffset(); @@ -69,7 +69,7 @@ public enum SegmentBufferReader { } private void deleteTheDataFilesBeforeReadFile(String readFileName) { - File[] dataFiles = new File(SegmentBufferConfig.BUFFER_PATH).listFiles(new PrefixFileNameFilter()); + File[] dataFiles = new File(BufferFileConfig.BUFFER_PATH).listFiles(new PrefixFileNameFilter()); long readFileCreateTime = getFileCreateTime(readFileName); for (File dataFile : dataFiles) { @@ -90,7 +90,7 @@ public enum SegmentBufferReader { private void readEarliestCreateDataFile() { String readFileName = OffsetManager.INSTANCE.getReadFileName(); - File[] dataFiles = new File(SegmentBufferConfig.BUFFER_PATH).listFiles(new PrefixFileNameFilter()); + File[] dataFiles = new File(BufferFileConfig.BUFFER_PATH).listFiles(new PrefixFileNameFilter()); if (CollectionUtils.isNotEmpty(dataFiles)) { if (dataFiles[0].getName().equals(readFileName)) { diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java index 668987fc7..97d518eb0 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java @@ -163,7 +163,7 @@ public class SegmentParse { } private void writeToBufferFile(String id, UpstreamSegment upstreamSegment) { - logger.debug("send to segment buffer write worker, id: {}", id); + logger.debug("push to segment buffer write worker, id: {}", id); SegmentStandardization standardization = new SegmentStandardization(id); standardization.setUpstreamSegment(upstreamSegment); Graph graph = GraphManager.INSTANCE.createIfAbsent(TraceStreamGraph.SEGMENT_STANDARDIZATION_GRAPH_ID, SegmentStandardization.class); diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/AgentStreamRemoteDataRegister.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/AgentStreamRemoteDataRegister.java new file mode 100644 index 000000000..65eee6eed --- /dev/null +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/AgentStreamRemoteDataRegister.java @@ -0,0 +1,53 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.agent.stream.worker; + +import org.skywalking.apm.collector.remote.service.RemoteDataRegisterService; +import org.skywalking.apm.collector.storage.table.node.NodeComponent; +import org.skywalking.apm.collector.storage.table.node.NodeMapping; +import org.skywalking.apm.collector.storage.table.noderef.NodeReference; +import org.skywalking.apm.collector.storage.table.register.Application; +import org.skywalking.apm.collector.storage.table.register.Instance; +import org.skywalking.apm.collector.storage.table.register.ServiceName; +import org.skywalking.apm.collector.storage.table.service.ServiceEntry; +import org.skywalking.apm.collector.storage.table.serviceref.ServiceReference; + +/** + * @author peng-yongsheng + */ +public class AgentStreamRemoteDataRegister { + + private final RemoteDataRegisterService remoteDataRegisterService; + + public AgentStreamRemoteDataRegister(RemoteDataRegisterService remoteDataRegisterService) { + this.remoteDataRegisterService = remoteDataRegisterService; + } + + public void register() { + remoteDataRegisterService.register(Application.class, Application::new); + remoteDataRegisterService.register(Instance.class, Instance::new); + remoteDataRegisterService.register(ServiceName.class, ServiceName::new); + + remoteDataRegisterService.register(NodeComponent.class, NodeComponent::new); + remoteDataRegisterService.register(NodeMapping.class, NodeMapping::new); + remoteDataRegisterService.register(NodeReference.class, NodeReference::new); + remoteDataRegisterService.register(ServiceEntry.class, ServiceEntry::new); + remoteDataRegisterService.register(ServiceReference.class, ServiceReference::new); + } +} diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java index 4fc8c80a2..1bbb03bd0 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java @@ -23,6 +23,7 @@ import org.skywalking.apm.collector.agent.stream.service.jvm.ICpuMetricService; import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.table.jvm.CpuMetric; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,10 +35,13 @@ public class CpuMetricService implements ICpuMetricService { private final Logger logger = LoggerFactory.getLogger(CpuMetricService.class); - private final Graph cpuMetricGraph; + private Graph cpuMetricGraph; - public CpuMetricService() { - cpuMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.CPU_METRIC_GRAPH_ID, CpuMetric.class); + private Graph getCpuMetricGraph() { + if (ObjectUtils.isEmpty(cpuMetricGraph)) { + cpuMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.CPU_METRIC_GRAPH_ID, CpuMetric.class); + } + return cpuMetricGraph; } @Override public void send(int instanceId, long timeBucket, double usagePercent) { @@ -46,7 +50,7 @@ public class CpuMetricService implements ICpuMetricService { cpuMetric.setUsagePercent(usagePercent); cpuMetric.setTimeBucket(timeBucket); - logger.debug("send to cpu metric graph, id: {}", cpuMetric.getId()); - cpuMetricGraph.start(cpuMetric); + logger.debug("push to cpu metric graph, id: {}", cpuMetric.getId()); + getCpuMetricGraph().start(cpuMetric); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java index 8d8f9c7a0..e2ae3a348 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java @@ -23,6 +23,7 @@ import org.skywalking.apm.collector.agent.stream.service.jvm.IGCMetricService; import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.table.jvm.GCMetric; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,10 +35,13 @@ public class GCMetricService implements IGCMetricService { private final Logger logger = LoggerFactory.getLogger(GCMetricService.class); - private final Graph gcMetricGraph; + private Graph gcMetricGraph; - public GCMetricService() { - gcMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.GC_METRIC_GRAPH_ID, GCMetric.class); + private Graph getGcMetricGraph() { + if (ObjectUtils.isEmpty(gcMetricGraph)) { + gcMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.GC_METRIC_GRAPH_ID, GCMetric.class); + } + return gcMetricGraph; } @Override public void send(int instanceId, long timeBucket, int phraseValue, long count, long time) { @@ -48,7 +52,7 @@ public class GCMetricService implements IGCMetricService { gcMetric.setTime(time); gcMetric.setTimeBucket(timeBucket); - logger.debug("send to gc metric graph, id: {}", gcMetric.getId()); - gcMetricGraph.start(gcMetric); + logger.debug("push to gc metric graph, id: {}", gcMetric.getId()); + getGcMetricGraph().start(gcMetric); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java index 78084e83b..8ef9c3506 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java @@ -22,6 +22,7 @@ import org.skywalking.apm.collector.agent.stream.graph.JvmMetricStreamGraph; import org.skywalking.apm.collector.agent.stream.service.jvm.IInstanceHeartBeatService; import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.core.util.TimeBucketUtils; import org.skywalking.apm.collector.storage.table.register.Instance; import org.slf4j.Logger; @@ -34,10 +35,13 @@ public class InstanceHeartBeatService implements IInstanceHeartBeatService { private final Logger logger = LoggerFactory.getLogger(InstanceHeartBeatService.class); - private final Graph heartBeatGraph; + private Graph heartBeatGraph; - public InstanceHeartBeatService() { - this.heartBeatGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.INST_HEART_BEAT_GRAPH_ID, Instance.class); + private Graph getHeartBeatGraph() { + if (ObjectUtils.isEmpty(heartBeatGraph)) { + this.heartBeatGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.INST_HEART_BEAT_GRAPH_ID, Instance.class); + } + return heartBeatGraph; } @Override public void send(int instanceId, long heartBeatTime) { @@ -45,7 +49,7 @@ public class InstanceHeartBeatService implements IInstanceHeartBeatService { instance.setHeartBeatTime(TimeBucketUtils.INSTANCE.getSecondTimeBucket(heartBeatTime)); instance.setInstanceId(instanceId); - logger.debug("send to instance heart beat persistence worker, id: {}", instance.getId()); - heartBeatGraph.start(instance); + logger.debug("push to instance heart beat persistence worker, id: {}", instance.getId()); + getHeartBeatGraph().start(instance); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java index 9909f7235..32d5e8f2e 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java @@ -23,6 +23,7 @@ import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryMetricServic import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.table.jvm.MemoryMetric; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,10 +35,13 @@ public class MemoryMetricService implements IMemoryMetricService { private final Logger logger = LoggerFactory.getLogger(MemoryMetricService.class); - private final Graph memoryMetricGraph; + private Graph memoryMetricGraph; - public MemoryMetricService() { - this.memoryMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_METRIC_GRAPH_ID, MemoryMetric.class); + private Graph getMemoryMetricGraph() { + if (ObjectUtils.isEmpty(memoryMetricGraph)) { + this.memoryMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_METRIC_GRAPH_ID, MemoryMetric.class); + } + return memoryMetricGraph; } @Override @@ -51,7 +55,7 @@ public class MemoryMetricService implements IMemoryMetricService { memoryMetric.setCommitted(commited); memoryMetric.setTimeBucket(timeBucket); - logger.debug("send to memory metric graph, id: {}", memoryMetric.getId()); - memoryMetricGraph.start(memoryMetric); + logger.debug("push to memory metric graph, id: {}", memoryMetric.getId()); + getMemoryMetricGraph().start(memoryMetric); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java index 3af24bc2b..8e4aed00a 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java @@ -23,6 +23,7 @@ import org.skywalking.apm.collector.agent.stream.service.jvm.IMemoryPoolMetricSe import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.table.jvm.MemoryPoolMetric; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,10 +35,13 @@ public class MemoryPoolMetricService implements IMemoryPoolMetricService { private final Logger logger = LoggerFactory.getLogger(MemoryPoolMetricService.class); - private final Graph memoryPoolMetricGraph; + private Graph memoryPoolMetricGraph; - public MemoryPoolMetricService() { - this.memoryPoolMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_POOL_METRIC_GRAPH_ID, MemoryPoolMetric.class); + private Graph getMemoryPoolMetricGraph() { + if (ObjectUtils.isEmpty(memoryPoolMetricGraph)) { + this.memoryPoolMetricGraph = GraphManager.INSTANCE.createIfAbsent(JvmMetricStreamGraph.MEMORY_POOL_METRIC_GRAPH_ID, MemoryPoolMetric.class); + } + return memoryPoolMetricGraph; } @Override @@ -51,7 +55,7 @@ public class MemoryPoolMetricService implements IMemoryPoolMetricService { memoryPoolMetric.setCommitted(commited); memoryPoolMetric.setTimeBucket(timeBucket); - logger.debug("send to memory pool metric graph, id: {}", memoryPoolMetric.getId()); - memoryPoolMetricGraph.start(memoryPoolMetric); + logger.debug("push to memory pool metric graph, id: {}", memoryPoolMetric.getId()); + getMemoryPoolMetricGraph().start(memoryPoolMetric); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java index d218b537b..42aa307ba 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java @@ -25,6 +25,7 @@ import org.skywalking.apm.collector.cache.service.ApplicationCacheService; import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; import org.skywalking.apm.collector.core.module.ModuleManager; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.table.register.Application; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,23 +38,36 @@ public class ApplicationIDService implements IApplicationIDService { private final Logger logger = LoggerFactory.getLogger(ApplicationIDService.class); private final ModuleManager moduleManager; - private final Graph applicationRegisterGraph; + private ApplicationCacheService applicationCacheService; + private Graph applicationRegisterGraph; public ApplicationIDService(ModuleManager moduleManager) { this.moduleManager = moduleManager; - this.applicationRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.APPLICATION_REGISTER_GRAPH_ID, Application.class); + } + + private Graph getApplicationRegisterGraph() { + if (ObjectUtils.isEmpty(applicationRegisterGraph)) { + this.applicationRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.APPLICATION_REGISTER_GRAPH_ID, Application.class); + } + return this.applicationRegisterGraph; + } + + private ApplicationCacheService getApplicationCacheService() { + if (ObjectUtils.isEmpty(applicationCacheService)) { + this.applicationCacheService = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class); + } + return applicationCacheService; } public int getOrCreate(String applicationCode) { - ApplicationCacheService service = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class); - int applicationId = service.get(applicationCode); + int applicationId = getApplicationCacheService().get(applicationCode); if (applicationId == 0) { Application application = new Application(applicationCode); application.setApplicationCode(applicationCode); application.setApplicationId(0); - applicationRegisterGraph.start(application); + getApplicationRegisterGraph().start(application); } return applicationId; } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java index c68919e66..4f1c94231 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java @@ -25,6 +25,7 @@ import org.skywalking.apm.collector.cache.service.InstanceCacheService; import org.skywalking.apm.collector.core.graph.Graph; import org.skywalking.apm.collector.core.graph.GraphManager; import org.skywalking.apm.collector.core.module.ModuleManager; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.dao.IInstanceRegisterDAO; import org.skywalking.apm.collector.storage.table.register.Instance; @@ -39,17 +40,38 @@ public class InstanceIDService implements IInstanceIDService { private final Logger logger = LoggerFactory.getLogger(InstanceIDService.class); private final ModuleManager moduleManager; - private final Graph instanceRegisterGraph; + private InstanceCacheService instanceCacheService; + private Graph instanceRegisterGraph; + private IInstanceRegisterDAO instanceRegisterDAO; public InstanceIDService(ModuleManager moduleManager) { this.moduleManager = moduleManager; - this.instanceRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.INSTANCE_REGISTER_GRAPH_ID, Instance.class); + } + + private InstanceCacheService getInstanceCacheService() { + if (ObjectUtils.isEmpty(instanceCacheService)) { + instanceCacheService = moduleManager.find(CacheModule.NAME).getService(InstanceCacheService.class); + } + return instanceCacheService; + } + + private Graph getInstanceRegisterGraph() { + if (ObjectUtils.isEmpty(instanceRegisterGraph)) { + this.instanceRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.INSTANCE_REGISTER_GRAPH_ID, Instance.class); + } + return instanceRegisterGraph; + } + + private IInstanceRegisterDAO getInstanceRegisterDAO() { + if (ObjectUtils.isEmpty(instanceRegisterDAO)) { + instanceRegisterDAO = moduleManager.find(StorageModule.NAME).getService(IInstanceRegisterDAO.class); + } + return instanceRegisterDAO; } public int getOrCreate(int applicationId, String agentUUID, long registerTime, String osInfo) { logger.debug("get or create instance id, application id: {}, agentUUID: {}, registerTime: {}, osInfo: {}", applicationId, agentUUID, registerTime, osInfo); - InstanceCacheService service = moduleManager.find(CacheModule.NAME).getService(InstanceCacheService.class); - int instanceId = service.getInstanceId(applicationId, agentUUID); + int instanceId = getInstanceCacheService().getInstanceId(applicationId, agentUUID); if (instanceId == 0) { Instance instance = new Instance("0"); @@ -60,15 +82,13 @@ public class InstanceIDService implements IInstanceIDService { instance.setInstanceId(0); instance.setOsInfo(osInfo); - instanceRegisterGraph.start(instance); + getInstanceRegisterGraph().start(instance); } return instanceId; } public void recover(int instanceId, int applicationId, long registerTime, String osInfo) { logger.debug("instance recover, instance id: {}, application id: {}, register time: {}", instanceId, applicationId, registerTime); - final IInstanceRegisterDAO instanceRegisterDAO = moduleManager.find(StorageModule.NAME).getService(IInstanceRegisterDAO.class); - Instance instance = new Instance(String.valueOf(instanceId)); instance.setApplicationId(applicationId); instance.setAgentUUID(""); @@ -77,6 +97,6 @@ public class InstanceIDService implements IInstanceIDService { instance.setInstanceId(instanceId); instance.setOsInfo(osInfo); - instanceRegisterDAO.save(instance); + getInstanceRegisterDAO().save(instance); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java index f36fae2ba..07ba0fcc9 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java @@ -39,7 +39,7 @@ public class InstanceRegisterRemoteWorker extends AbstractRemoteWorker serviceNameRegisterGraph; + private ServiceIdCacheService serviceIdCacheService; + private Graph serviceNameRegisterGraph; public ServiceNameService(ModuleManager moduleManager) { this.moduleManager = moduleManager; - this.serviceNameRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.SERVICE_NAME_REGISTER_GRAPH_ID, ServiceName.class); + } + + private ServiceIdCacheService getServiceIdCacheService() { + if (ObjectUtils.isEmpty(serviceIdCacheService)) { + serviceIdCacheService = moduleManager.find(CacheModule.NAME).getService(ServiceIdCacheService.class); + } + return serviceIdCacheService; + } + + private Graph getServiceNameRegisterGraph() { + if (ObjectUtils.isEmpty(serviceNameRegisterGraph)) { + this.serviceNameRegisterGraph = GraphManager.INSTANCE.createIfAbsent(RegisterStreamGraph.SERVICE_NAME_REGISTER_GRAPH_ID, ServiceName.class); + } + return serviceNameRegisterGraph; } public int getOrCreate(int applicationId, String serviceName) { - ServiceIdCacheService idCacheService = moduleManager.find(CacheModule.NAME).getService(ServiceIdCacheService.class); - int serviceId = idCacheService.get(applicationId, serviceName); + int serviceId = getServiceIdCacheService().get(applicationId, serviceName); if (serviceId == 0) { ServiceName service = new ServiceName("0"); @@ -54,7 +68,7 @@ public class ServiceNameService implements IServiceNameService { service.setServiceName(serviceName); service.setServiceId(0); - serviceNameRegisterGraph.start(service); + getServiceNameRegisterGraph().start(service); } return serviceId; } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java index 732a4e16d..d1b86441c 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java @@ -31,7 +31,7 @@ import org.skywalking.apm.collector.stream.worker.base.WorkerException; */ public class NodeComponentRemoteWorker extends AbstractRemoteWorker { - public NodeComponentRemoteWorker(ModuleManager moduleManager) { + NodeComponentRemoteWorker(ModuleManager moduleManager) { super(moduleManager); } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java index 6f8b8fc4e..56a4f8734 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java @@ -31,7 +31,7 @@ import org.skywalking.apm.collector.stream.worker.base.WorkerException; */ public class NodeMappingRemoteWorker extends AbstractRemoteWorker { - public NodeMappingRemoteWorker(ModuleManager moduleManager) { + NodeMappingRemoteWorker(ModuleManager moduleManager) { super(moduleManager); } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java index d1ac5bfaf..e42275d98 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java @@ -67,7 +67,7 @@ public class NodeMappingSpanListener implements RefsListener, FirstSpanListener for (NodeMapping nodeMapping : nodeMappings) { nodeMapping.setId(timeBucket + Const.ID_SPLIT + nodeMapping.getId()); nodeMapping.setTimeBucket(timeBucket); - logger.debug("send to node mapping aggregation worker, id: {}", nodeMapping.getId()); + logger.debug("push to node mapping aggregation worker, id: {}", nodeMapping.getId()); graph.start(nodeMapping); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java index f12a7a1e7..a06dcc133 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java @@ -31,7 +31,7 @@ import org.skywalking.apm.collector.stream.worker.base.WorkerException; */ public class NodeReferenceRemoteWorker extends AbstractRemoteWorker { - public NodeReferenceRemoteWorker(ModuleManager moduleManager) { + NodeReferenceRemoteWorker(ModuleManager moduleManager) { super(moduleManager); } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java index 0312bbf6d..1540fcf89 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java @@ -84,7 +84,7 @@ public class ServiceEntrySpanListener implements RefsListener, FirstSpanListener serviceEntry.setRegisterTime(timeBucket); serviceEntry.setNewestTime(timeBucket); - logger.debug("send to service entry aggregation worker, id: {}", serviceEntry.getId()); + logger.debug("push to service entry aggregation worker, id: {}", serviceEntry.getId()); Graph graph = GraphManager.INSTANCE.createIfAbsent(TraceStreamGraph.SERVICE_ENTRY_GRAPH_ID, ServiceEntry.class); graph.start(serviceEntry); } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java index 45aa2a1e3..9c8256d74 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java +++ b/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java @@ -130,7 +130,7 @@ public class ServiceReferenceSpanListener implements FirstSpanListener, EntrySpa serviceReference.setId(idBuilder.toString()); serviceReference.setTimeBucket(timeBucket); - logger.debug("send to service reference aggregation worker, id: {}", serviceReference.getId()); + logger.debug("push to service reference aggregation worker, id: {}", serviceReference.getId()); Graph graph = GraphManager.INSTANCE.createIfAbsent(TraceStreamGraph.SERVICE_REFERENCE_GRAPH_ID, ServiceReference.class); graph.start(serviceReference); diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml index d8628b391..570863a22 100644 --- a/apm-collector/apm-collector-boot/src/main/resources/application.yml +++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml @@ -5,8 +5,12 @@ naming: jetty: host: localhost - port: 10800 + port: 12800 context_path: / +remote: + gRPC: + host: localhost + port: 10800 agent_gRPC: gRPC: host: localhost @@ -18,6 +22,7 @@ agent_jetty: context_path: / agent_stream: default: + buffer_file_path: ../buffer/ buffer_offset_max_file_size: 10M buffer_segment_max_file_size: 500M ui: @@ -25,10 +30,10 @@ ui: host: localhost port: 12800 context_path: / -storage: - elasticsearch: - cluster_name: CollectorDBCluster - cluster_transport_sniffer: true - cluster_nodes: localhost:9300 - index_shards_number: 2 - index_replicas_number: 0 \ No newline at end of file +#storage: +# elasticsearch: +# cluster_name: CollectorDBCluster +# cluster_transport_sniffer: true +# cluster_nodes: localhost:9300 +# index_shards_number: 2 +# index_replicas_number: 0 diff --git a/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml b/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml index db54a6402..e6915ec9a 100644 --- a/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml +++ b/apm-collector/apm-collector-boot/src/main/resources/log4j2.xml @@ -17,7 +17,7 @@ ~ Project repository: https://github.com/OpenSkywalking/skywalking --> - + @@ -29,7 +29,7 @@ - + diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml b/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml index dda14c71e..54fe99b65 100644 --- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml +++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml @@ -36,5 +36,10 @@ collector-cache-define ${project.version} + + com.google.guava + guava + 19.0 + \ No newline at end of file diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ApplicationCacheGuavaService.java b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ApplicationCacheGuavaService.java index 80770f160..743390be9 100644 --- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ApplicationCacheGuavaService.java +++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ApplicationCacheGuavaService.java @@ -23,6 +23,7 @@ import com.google.common.cache.CacheBuilder; import org.skywalking.apm.collector.cache.service.ApplicationCacheService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.core.util.StringUtils; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.dao.IApplicationCacheDAO; @@ -38,22 +39,30 @@ public class ApplicationCacheGuavaService implements ApplicationCacheService { private final Cache codeCache = CacheBuilder.newBuilder().initialCapacity(100).maximumSize(1000).build(); - private final IApplicationCacheDAO applicationCacheDAO; + private final ModuleManager moduleManager; + private IApplicationCacheDAO applicationCacheDAO; public ApplicationCacheGuavaService(ModuleManager moduleManager) { - this.applicationCacheDAO = moduleManager.find(StorageModule.NAME).getService(IApplicationCacheDAO.class); + this.moduleManager = moduleManager; + } + + private IApplicationCacheDAO getApplicationCacheDAO() { + if (ObjectUtils.isEmpty(applicationCacheDAO)) { + this.applicationCacheDAO = moduleManager.find(StorageModule.NAME).getService(IApplicationCacheDAO.class); + } + return this.applicationCacheDAO; } public int get(String applicationCode) { int applicationId = 0; try { - applicationId = codeCache.get(applicationCode, () -> applicationCacheDAO.getApplicationId(applicationCode)); + applicationId = codeCache.get(applicationCode, () -> getApplicationCacheDAO().getApplicationId(applicationCode)); } catch (Throwable e) { logger.error(e.getMessage(), e); } if (applicationId == 0) { - applicationId = applicationCacheDAO.getApplicationId(applicationCode); + applicationId = getApplicationCacheDAO().getApplicationId(applicationCode); if (applicationId != 0) { codeCache.put(applicationCode, applicationId); } @@ -66,13 +75,13 @@ public class ApplicationCacheGuavaService implements ApplicationCacheService { public String get(int applicationId) { String applicationCode = Const.EMPTY_STRING; try { - applicationCode = idCache.get(applicationId, () -> applicationCacheDAO.getApplicationCode(applicationId)); + applicationCode = idCache.get(applicationId, () -> getApplicationCacheDAO().getApplicationCode(applicationId)); } catch (Throwable e) { logger.error(e.getMessage(), e); } if (StringUtils.isEmpty(applicationCode)) { - applicationCode = applicationCacheDAO.getApplicationCode(applicationId); + applicationCode = getApplicationCacheDAO().getApplicationCode(applicationId); if (StringUtils.isNotEmpty(applicationCode)) { codeCache.put(applicationCode, applicationId); } diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/InstanceCacheGuavaService.java b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/InstanceCacheGuavaService.java index 330b3b9a1..0f2e9a27e 100644 --- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/InstanceCacheGuavaService.java +++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/InstanceCacheGuavaService.java @@ -23,6 +23,7 @@ import com.google.common.cache.CacheBuilder; import org.skywalking.apm.collector.cache.service.InstanceCacheService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.dao.IInstanceCacheDAO; import org.slf4j.Logger; @@ -39,23 +40,31 @@ public class InstanceCacheGuavaService implements InstanceCacheService { private final Cache stringCache = CacheBuilder.newBuilder().initialCapacity(100).maximumSize(5000).build(); - private final IInstanceCacheDAO instanceCacheDAO; + private final ModuleManager moduleManager; + private IInstanceCacheDAO instanceCacheDAO; public InstanceCacheGuavaService(ModuleManager moduleManager) { - this.instanceCacheDAO = moduleManager.find(StorageModule.NAME).getService(IInstanceCacheDAO.class); + this.moduleManager = moduleManager; + } + + private IInstanceCacheDAO getInstanceCacheDAO() { + if (ObjectUtils.isEmpty(instanceCacheDAO)) { + this.instanceCacheDAO = moduleManager.find(StorageModule.NAME).getService(IInstanceCacheDAO.class); + } + return this.instanceCacheDAO; } public int get(int applicationInstanceId) { int applicationId = 0; try { - applicationId = integerCache.get(applicationInstanceId, () -> instanceCacheDAO.getApplicationId(applicationInstanceId)); + applicationId = integerCache.get(applicationInstanceId, () -> getInstanceCacheDAO().getApplicationId(applicationInstanceId)); } catch (Throwable e) { logger.error(e.getMessage(), e); } if (applicationId == 0) { - applicationId = instanceCacheDAO.getApplicationId(applicationInstanceId); + applicationId = getInstanceCacheDAO().getApplicationId(applicationInstanceId); if (applicationId != 0) { integerCache.put(applicationInstanceId, applicationId); } @@ -68,13 +77,13 @@ public class InstanceCacheGuavaService implements InstanceCacheService { int instanceId = 0; try { - instanceId = stringCache.get(key, () -> instanceCacheDAO.getInstanceId(applicationId, agentUUID)); + instanceId = stringCache.get(key, () -> getInstanceCacheDAO().getInstanceId(applicationId, agentUUID)); } catch (Throwable e) { logger.error(e.getMessage(), e); } if (instanceId == 0) { - instanceId = instanceCacheDAO.getInstanceId(applicationId, agentUUID); + instanceId = getInstanceCacheDAO().getInstanceId(applicationId, agentUUID); if (applicationId != 0) { stringCache.put(key, instanceId); } diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceIdCacheGuavaService.java b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceIdCacheGuavaService.java index eb59ec750..85d6aa5aa 100644 --- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceIdCacheGuavaService.java +++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceIdCacheGuavaService.java @@ -23,6 +23,7 @@ import com.google.common.cache.CacheBuilder; import org.skywalking.apm.collector.cache.service.ServiceIdCacheService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.dao.IServiceNameCacheDAO; import org.slf4j.Logger; @@ -37,22 +38,30 @@ public class ServiceIdCacheGuavaService implements ServiceIdCacheService { private final Cache serviceIdCache = CacheBuilder.newBuilder().maximumSize(1000).build(); - private final IServiceNameCacheDAO serviceNameCacheDAO; + private final ModuleManager moduleManager; + private IServiceNameCacheDAO serviceNameCacheDAO; public ServiceIdCacheGuavaService(ModuleManager moduleManager) { - this.serviceNameCacheDAO = moduleManager.find(StorageModule.NAME).getService(IServiceNameCacheDAO.class); + this.moduleManager = moduleManager; + } + + private IServiceNameCacheDAO getServiceNameCacheDAO() { + if (ObjectUtils.isEmpty(serviceNameCacheDAO)) { + this.serviceNameCacheDAO = moduleManager.find(StorageModule.NAME).getService(IServiceNameCacheDAO.class); + } + return this.serviceNameCacheDAO; } public int get(int applicationId, String serviceName) { int serviceId = 0; try { - serviceId = serviceIdCache.get(applicationId + Const.ID_SPLIT + serviceName, () -> serviceNameCacheDAO.getServiceId(applicationId, serviceName)); + serviceId = serviceIdCache.get(applicationId + Const.ID_SPLIT + serviceName, () -> getServiceNameCacheDAO().getServiceId(applicationId, serviceName)); } catch (Throwable e) { logger.error(e.getMessage(), e); } if (serviceId == 0) { - serviceId = serviceNameCacheDAO.getServiceId(applicationId, serviceName); + serviceId = getServiceNameCacheDAO().getServiceId(applicationId, serviceName); if (serviceId != 0) { serviceIdCache.put(applicationId + Const.ID_SPLIT + serviceName, serviceId); } diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceNameCacheGuavaService.java b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceNameCacheGuavaService.java index 2b235ef9d..55b9d7792 100644 --- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceNameCacheGuavaService.java +++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceNameCacheGuavaService.java @@ -23,6 +23,7 @@ import com.google.common.cache.CacheBuilder; import org.skywalking.apm.collector.cache.service.ServiceNameCacheService; import org.skywalking.apm.collector.core.module.ModuleManager; import org.skywalking.apm.collector.core.util.Const; +import org.skywalking.apm.collector.core.util.ObjectUtils; import org.skywalking.apm.collector.core.util.StringUtils; import org.skywalking.apm.collector.storage.StorageModule; import org.skywalking.apm.collector.storage.dao.IServiceNameCacheDAO; @@ -38,22 +39,30 @@ public class ServiceNameCacheGuavaService implements ServiceNameCacheService { private final Cache serviceNameCache = CacheBuilder.newBuilder().maximumSize(10000).build(); - private final IServiceNameCacheDAO serviceNameCacheDAO; + private final ModuleManager moduleManager; + private IServiceNameCacheDAO serviceNameCacheDAO; public ServiceNameCacheGuavaService(ModuleManager moduleManager) { - this.serviceNameCacheDAO = moduleManager.find(StorageModule.NAME).getService(IServiceNameCacheDAO.class); + this.moduleManager = moduleManager; + } + + private IServiceNameCacheDAO getServiceNameCacheDAO() { + if (ObjectUtils.isEmpty(serviceNameCacheDAO)) { + this.serviceNameCacheDAO = moduleManager.find(StorageModule.NAME).getService(IServiceNameCacheDAO.class); + } + return this.serviceNameCacheDAO; } public String get(int serviceId) { String serviceName = Const.EMPTY_STRING; try { - serviceName = serviceNameCache.get(serviceId, () -> serviceNameCacheDAO.getServiceName(serviceId)); + serviceName = serviceNameCache.get(serviceId, () -> getServiceNameCacheDAO().getServiceName(serviceId)); } catch (Throwable e) { logger.error(e.getMessage(), e); } if (StringUtils.isEmpty(serviceName)) { - serviceName = serviceNameCacheDAO.getServiceName(serviceId); + serviceName = getServiceNameCacheDAO().getServiceName(serviceId); if (StringUtils.isNotEmpty(serviceName)) { serviceNameCache.put(serviceId, serviceName); } diff --git a/apm-collector/apm-collector-component/client-component/pom.xml b/apm-collector/apm-collector-component/client-component/pom.xml index 8d1c5e84f..da4098524 100644 --- a/apm-collector/apm-collector-component/client-component/pom.xml +++ b/apm-collector/apm-collector-component/client-component/pom.xml @@ -32,6 +32,34 @@ snakeyaml org.yaml + + netty-common + io.netty + + + netty-transport + io.netty + + + netty-codec + io.netty + + + netty-codec-http + io.netty + + + netty-buffer + io.netty + + + netty-handler + io.netty + + + netty-resolver + io.netty + @@ -50,9 +78,15 @@ - io.grpc - grpc-core - 1.4.0 + org.skywalking + apm-network + ${project.version} + + + guava + com.google.guava + + diff --git a/apm-collector/apm-collector-component/server-component/pom.xml b/apm-collector/apm-collector-component/server-component/pom.xml index 817f6385b..6a243b0df 100644 --- a/apm-collector/apm-collector-component/server-component/pom.xml +++ b/apm-collector/apm-collector-component/server-component/pom.xml @@ -21,6 +21,12 @@ org.skywalking apm-network ${project.version} + + + guava + com.google.guava + + org.eclipse.jetty diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfig.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Collection.java similarity index 71% rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfig.java rename to apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Collection.java index ec787f684..fe2003221 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfig.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Collection.java @@ -16,11 +16,28 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.core.config; +package org.skywalking.apm.collector.core.cache; /** * @author peng-yongsheng */ -public class SystemConfig { - public static String DATA_PATH = "../data"; +public interface Collection { + + void reading(); + + boolean isReading(); + + void writing(); + + boolean isWriting(); + + void clear(); + + int size(); + + void finishReading(); + + void finishWriting(); + + Data collection(); } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java similarity index 74% rename from apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java rename to apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java index a1b53450a..8dbebcd9b 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/Window.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java @@ -16,28 +16,30 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.stream.worker.impl.data; +package org.skywalking.apm.collector.core.cache; import java.util.concurrent.atomic.AtomicInteger; /** * @author peng-yongsheng */ -public abstract class Window { +public abstract class Window { private AtomicInteger windowSwitch = new AtomicInteger(0); - private DataCollection pointer; + private WindowCollection pointer; - private DataCollection windowDataA; - private DataCollection windowDataB; + private WindowCollection windowDataA; + private WindowCollection windowDataB; - public Window() { - windowDataA = new DataCollection(); - windowDataB = new DataCollection(); - pointer = windowDataA; + protected Window() { + this.windowDataA = collectionInstance(); + this.windowDataB = collectionInstance(); + this.pointer = windowDataA; } + public abstract WindowCollection collectionInstance(); + public boolean trySwitchPointer() { return windowSwitch.incrementAndGet() == 1 && !getLast().isReading(); } @@ -55,7 +57,7 @@ public abstract class Window { getLast().reading(); } - protected DataCollection getCurrentAndWriting() { + protected WindowCollection getCurrentAndWriting() { if (pointer == windowDataA) { windowDataA.writing(); return windowDataA; @@ -65,11 +67,11 @@ public abstract class Window { } } - protected DataCollection getCurrent() { + protected WindowCollection getCurrent() { return pointer; } - public DataCollection getLast() { + public WindowCollection getLast() { if (pointer == windowDataA) { return windowDataB; } else { diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/data/Data.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/data/Data.java index 6f6beca17..cb0eb02df 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/data/Data.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/data/Data.java @@ -183,6 +183,7 @@ public abstract class Data extends EndOfBatchQueueMessage { for (Boolean dataBoolean : dataBooleans) { dataStr.append(dataBoolean).append(","); } + dataStr.append("]"); return dataStr.toString(); } } diff --git a/apm-collector/apm-collector-core/src/main/resources/application-default.yml b/apm-collector/apm-collector-core/src/main/resources/application-default.yml index 6d3aefc73..200609e65 100644 --- a/apm-collector/apm-collector-core/src/main/resources/application-default.yml +++ b/apm-collector/apm-collector-core/src/main/resources/application-default.yml @@ -15,6 +15,20 @@ naming: host: localhost port: 10800 context_path: / +agent_gRPC: + gRPC: + host: localhost + port: 11800 +agent_jetty: + jetty: + host: localhost + port: 12800 + context_path: / +agent_stream: + default: + buffer_file_path: ../buffer/ + buffer_offset_max_file_size: 10M + buffer_segment_max_file_size: 500M ui: jetty: host: localhost diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteException.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteException.java new file mode 100644 index 000000000..3c9339ec8 --- /dev/null +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteException.java @@ -0,0 +1,35 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.remote; + +import org.skywalking.apm.collector.core.CollectorException; + +/** + * @author peng-yongsheng + */ +public abstract class RemoteException extends CollectorException { + + public RemoteException(String message) { + super(message); + } + + public RemoteException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteModule.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteModule.java index b3e6fd673..e91b96574 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteModule.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteModule.java @@ -19,8 +19,8 @@ package org.skywalking.apm.collector.remote; import org.skywalking.apm.collector.core.module.Module; +import org.skywalking.apm.collector.remote.service.RemoteDataRegisterService; import org.skywalking.apm.collector.remote.service.RemoteSenderService; -import org.skywalking.apm.collector.remote.service.RemoteServerService; /** * @author peng-yongsheng @@ -34,6 +34,6 @@ public class RemoteModule extends Module { } @Override public Class[] services() { - return new Class[] {RemoteServerService.class, RemoteSenderService.class}; + return new Class[] {RemoteSenderService.class, RemoteDataRegisterService.class}; } } diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/CommonRemoteDataRegisterService.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/CommonRemoteDataRegisterService.java new file mode 100644 index 000000000..6b13da96a --- /dev/null +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/CommonRemoteDataRegisterService.java @@ -0,0 +1,71 @@ +/* + * Copyright 2017, OpenSkywalking Organization All rights reserved. + * + * Licensed 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. + * + * Project repository: https://github.com/OpenSkywalking/skywalking + */ + +package org.skywalking.apm.collector.remote.service; + +import java.util.HashMap; +import java.util.Map; +import org.skywalking.apm.collector.core.data.Data; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author peng-yongsheng + */ +public class CommonRemoteDataRegisterService implements RemoteDataRegisterService, RemoteDataIDGetter, RemoteDataInstanceCreatorGetter { + + private final Logger logger = LoggerFactory.getLogger(CommonRemoteDataRegisterService.class); + + private Integer id; + private final Map, Integer> dataClassMapping; + private final Map dataInstanceCreatorMapping; + + public CommonRemoteDataRegisterService() { + this.id = 1; + this.dataClassMapping = new HashMap<>(); + this.dataInstanceCreatorMapping = new HashMap<>(); + } + + @Override public void register(Class dataClass, RemoteDataInstanceCreator instanceCreator) { + if (!dataClassMapping.containsKey(dataClass)) { + dataClassMapping.put(dataClass, this.id); + dataInstanceCreatorMapping.put(this.id, instanceCreator); + this.id++; + } else { + logger.warn("The data class {} was registered.", dataClass.getName()); + } + } + + @Override + public Integer getRemoteDataId(Class dataClass) throws RemoteDataMappingIdNotFoundException { + if (dataClassMapping.containsKey(dataClass)) { + return dataClassMapping.get(dataClass); + } else { + throw new RemoteDataMappingIdNotFoundException("Could not found the id of remote data class " + dataClass.getName()); + } + } + + @Override public RemoteDataInstanceCreator getInstanceCreator( + Integer remoteDataId) throws RemoteDataInstanceCreatorNotFoundException { + if (dataInstanceCreatorMapping.containsKey(remoteDataId)) { + return dataInstanceCreatorMapping.get(remoteDataId); + } else { + throw new RemoteDataInstanceCreatorNotFoundException("Could not found the instance creator of remote data id " + remoteDataId); + } + } +} diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClient.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClient.java index 8771cd7f6..150e1d9e9 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClient.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClient.java @@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.Data; public interface RemoteClient extends Comparable { String getAddress(); - void send(int graphId, int nodeId, Data data); + void push(int graphId, int nodeId, Data data); boolean equals(String address); } diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClientService.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClientService.java index 109e9320f..c3e493da5 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClientService.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClientService.java @@ -24,5 +24,5 @@ import org.skywalking.apm.collector.core.module.Service; * @author peng-yongsheng */ public interface RemoteClientService extends Service { - RemoteClient create(String host, int port); + RemoteClient create(String host, int port, int channelSize, int bufferSize); } diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/DataReceiver.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataIDGetter.java similarity index 85% rename from apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/DataReceiver.java rename to apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataIDGetter.java index 7baeb3478..04912f3eb 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/DataReceiver.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataIDGetter.java @@ -23,8 +23,6 @@ import org.skywalking.apm.collector.core.data.Data; /** * @author peng-yongsheng */ -public interface DataReceiver { - Output output(int graphId, int nodeId); - - void receive(Output data); +public interface RemoteDataIDGetter { + Integer getRemoteDataId(Class dataClass) throws RemoteDataMappingIdNotFoundException; } diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteServerService.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorGetter.java similarity index 79% rename from apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteServerService.java rename to apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorGetter.java index 17b6febf3..f27e626ec 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteServerService.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorGetter.java @@ -18,11 +18,10 @@ package org.skywalking.apm.collector.remote.service; -import org.skywalking.apm.collector.core.module.Service; - /** * @author peng-yongsheng */ -public interface RemoteServerService extends Service { - void registerReceiver(DataReceiver receiver); +public interface RemoteDataInstanceCreatorGetter { + RemoteDataRegisterService.RemoteDataInstanceCreator getInstanceCreator( + Integer remoteDataId) throws RemoteDataInstanceCreatorNotFoundException; } diff --git a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/DataReceiverRegisterListener.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorNotFoundException.java similarity index 75% rename from apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/DataReceiverRegisterListener.java rename to apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorNotFoundException.java index dcc9b4e3e..4a3f418ff 100644 --- a/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/DataReceiverRegisterListener.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorNotFoundException.java @@ -18,18 +18,13 @@ package org.skywalking.apm.collector.remote.service; +import org.skywalking.apm.collector.remote.RemoteException; + /** * @author peng-yongsheng */ -public class DataReceiverRegisterListener { - - private DataReceiver dataReceiver; - - public DataReceiver getDataReceiver() { - return dataReceiver; - } - - public void setDataReceiver(DataReceiver dataReceiver) { - this.dataReceiver = dataReceiver; +public class RemoteDataInstanceCreatorNotFoundException extends RemoteException { + public RemoteDataInstanceCreatorNotFoundException(String message) { + super(message); } } diff --git a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataMappingIdNotFoundException.java similarity index 72% rename from apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java rename to apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataMappingIdNotFoundException.java index b27b7290f..ea1c82932 100644 --- a/apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataMappingIdNotFoundException.java @@ -16,13 +16,15 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.agent.stream.buffer; +package org.skywalking.apm.collector.remote.service; -import org.skywalking.apm.collector.core.config.SystemConfig; +import org.skywalking.apm.collector.remote.RemoteException; /** * @author peng-yongsheng */ -public class SegmentBufferConfig { - public static String BUFFER_PATH = SystemConfig.DATA_PATH + "/buffer/"; +public class RemoteDataMappingIdNotFoundException extends RemoteException { + public RemoteDataMappingIdNotFoundException(String message) { + super(message); + } } diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataRegisterService.java similarity index 63% rename from apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java rename to apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataRegisterService.java index aa90354dd..e6dfe74bb 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser.java +++ b/apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataRegisterService.java @@ -16,21 +16,18 @@ * Project repository: https://github.com/OpenSkywalking/skywalking */ -package org.skywalking.apm.collector.core.config; +package org.skywalking.apm.collector.remote.service; -import org.skywalking.apm.collector.core.util.StringUtils; +import org.skywalking.apm.collector.core.data.Data; +import org.skywalking.apm.collector.core.module.Service; /** * @author peng-yongsheng */ -public enum SystemConfigParser { - INSTANCE; +public interface RemoteDataRegisterService extends Service { + void register(Class dataClass, RemoteDataInstanceCreator instanceCreator); - private static final String DATA_PATH = "data.path"; - - public void parse() { - if (!StringUtils.isEmpty(System.getProperty(DATA_PATH))) { - SystemConfig.DATA_PATH = System.getProperty(DATA_PATH); - } + interface RemoteDataInstanceCreator { + RemoteData createInstance(String id); } } diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml index 6fb3137e1..1f3cc9054 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml @@ -41,6 +41,11 @@ collector-grpc-manager-define ${project.version} + + org.skywalking + apm-datacarrier + ${project.version} + diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java index 3493cd7f4..01c815637 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java @@ -12,10 +12,9 @@ import org.skywalking.apm.collector.grpc.manager.service.GRPCManagerService; import org.skywalking.apm.collector.remote.RemoteModule; import org.skywalking.apm.collector.remote.grpc.handler.RemoteCommonServiceHandler; import org.skywalking.apm.collector.remote.grpc.service.GRPCRemoteSenderService; -import org.skywalking.apm.collector.remote.grpc.service.GRPCRemoteServerService; -import org.skywalking.apm.collector.remote.service.DataReceiverRegisterListener; +import org.skywalking.apm.collector.remote.service.CommonRemoteDataRegisterService; +import org.skywalking.apm.collector.remote.service.RemoteDataRegisterService; import org.skywalking.apm.collector.remote.service.RemoteSenderService; -import org.skywalking.apm.collector.remote.service.RemoteServerService; import org.skywalking.apm.collector.server.Server; /** @@ -24,10 +23,14 @@ import org.skywalking.apm.collector.server.Server; public class RemoteModuleGRPCProvider extends ModuleProvider { public static final String NAME = "gRPC"; + private static final String HOST = "host"; private static final String PORT = "port"; - private final DataReceiverRegisterListener listener = new DataReceiverRegisterListener(); + private static final String CHANNEL_SIZE = "channel_size"; + private static final String BUFFER_SIZE = "buffer_size"; + private GRPCRemoteSenderService remoteSenderService; + private CommonRemoteDataRegisterService remoteDataRegisterService; @Override public String name() { return NAME; @@ -40,10 +43,13 @@ public class RemoteModuleGRPCProvider extends ModuleProvider { @Override public void prepare(Properties config) throws ServiceNotProvidedException { String host = config.getProperty(HOST); Integer port = (Integer)config.get(PORT); + Integer channelSize = (Integer)config.getOrDefault(CHANNEL_SIZE, 5); + Integer bufferSize = (Integer)config.getOrDefault(BUFFER_SIZE, 1000); - remoteSenderService = new GRPCRemoteSenderService(host, port); - this.registerServiceImplementation(RemoteServerService.class, new GRPCRemoteServerService(listener)); + remoteDataRegisterService = new CommonRemoteDataRegisterService(); + remoteSenderService = new GRPCRemoteSenderService(host, port, channelSize, bufferSize, remoteDataRegisterService); this.registerServiceImplementation(RemoteSenderService.class, remoteSenderService); + this.registerServiceImplementation(RemoteDataRegisterService.class, remoteDataRegisterService); } @Override public void start(Properties config) throws ServiceNotProvidedException { @@ -52,7 +58,7 @@ public class RemoteModuleGRPCProvider extends ModuleProvider { GRPCManagerService managerService = getManager().find(GRPCManagerModule.NAME).getService(GRPCManagerService.class); Server gRPCServer = managerService.createIfAbsent(host, port); - gRPCServer.addHandler(new RemoteCommonServiceHandler(listener)); + gRPCServer.addHandler(new RemoteCommonServiceHandler(remoteDataRegisterService)); ModuleRegisterService moduleRegisterService = getManager().find(ClusterModule.NAME).getService(ModuleRegisterService.class); moduleRegisterService.register(RemoteModule.NAME, this.name(), new RemoteModuleGRPCRegistration(host, port)); diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/handler/RemoteCommonServiceHandler.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/handler/RemoteCommonServiceHandler.java index e1a5f47fc..06c8ac65d 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/handler/RemoteCommonServiceHandler.java +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/handler/RemoteCommonServiceHandler.java @@ -20,12 +20,16 @@ package org.skywalking.apm.collector.remote.grpc.handler; import io.grpc.stub.StreamObserver; import org.skywalking.apm.collector.core.data.Data; +import org.skywalking.apm.collector.core.graph.GraphManager; +import org.skywalking.apm.collector.core.graph.Next; +import org.skywalking.apm.collector.core.util.Const; import org.skywalking.apm.collector.remote.grpc.proto.Empty; import org.skywalking.apm.collector.remote.grpc.proto.RemoteCommonServiceGrpc; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.remote.grpc.proto.RemoteMessage; import org.skywalking.apm.collector.remote.grpc.service.GRPCRemoteDeserializeService; -import org.skywalking.apm.collector.remote.service.DataReceiverRegisterListener; +import org.skywalking.apm.collector.remote.service.RemoteDataInstanceCreatorGetter; +import org.skywalking.apm.collector.remote.service.RemoteDataInstanceCreatorNotFoundException; import org.skywalking.apm.collector.server.grpc.GRPCHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,24 +41,31 @@ public class RemoteCommonServiceHandler extends RemoteCommonServiceGrpc.RemoteCo private final Logger logger = LoggerFactory.getLogger(RemoteCommonServiceHandler.class); - private final DataReceiverRegisterListener listener; + private final RemoteDataInstanceCreatorGetter instanceCreatorGetter; private final GRPCRemoteDeserializeService service; - public RemoteCommonServiceHandler(DataReceiverRegisterListener listener) { - this.listener = listener; + public RemoteCommonServiceHandler(RemoteDataInstanceCreatorGetter instanceCreatorGetter) { + this.instanceCreatorGetter = instanceCreatorGetter; this.service = new GRPCRemoteDeserializeService(); } + @SuppressWarnings("unchecked") @Override public StreamObserver call(StreamObserver responseObserver) { return new StreamObserver() { @Override public void onNext(RemoteMessage message) { int graphId = message.getGraphId(); int nodeId = message.getNodeId(); + int remoteDataId = message.getRemoteDataId(); RemoteData remoteData = message.getRemoteData(); - Data output = listener.getDataReceiver().output(graphId, nodeId); - service.deserialize(remoteData, output); - listener.getDataReceiver().receive(output); + try { + Data output = instanceCreatorGetter.getInstanceCreator(remoteDataId).createInstance(Const.EMPTY_STRING); + service.deserialize(remoteData, output); + Next next = GraphManager.INSTANCE.findGraph(graphId).toFinder().findNext(nodeId); + next.execute(output); + } catch (RemoteDataInstanceCreatorNotFoundException e) { + logger.error(e.getMessage(), e); + } } @Override public void onError(Throwable throwable) { @@ -62,6 +73,7 @@ public class RemoteCommonServiceHandler extends RemoteCommonServiceGrpc.RemoteCo } @Override public void onCompleted() { + responseObserver.onNext(Empty.newBuilder().build()); responseObserver.onCompleted(); } }; diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClient.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClient.java index 979e4c71e..f69e8763c 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClient.java +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClient.java @@ -19,36 +19,146 @@ package org.skywalking.apm.collector.remote.grpc.service; import io.grpc.stub.StreamObserver; +import java.util.List; +import org.skywalking.apm.collector.client.grpc.GRPCClient; import org.skywalking.apm.collector.core.data.Data; +import org.skywalking.apm.collector.remote.grpc.proto.Empty; +import org.skywalking.apm.collector.remote.grpc.proto.RemoteCommonServiceGrpc; import org.skywalking.apm.collector.remote.grpc.proto.RemoteMessage; import org.skywalking.apm.collector.remote.service.RemoteClient; +import org.skywalking.apm.collector.remote.service.RemoteDataIDGetter; +import org.skywalking.apm.collector.remote.service.RemoteDataMappingIdNotFoundException; +import org.skywalking.apm.commons.datacarrier.DataCarrier; +import org.skywalking.apm.commons.datacarrier.buffer.BufferStrategy; +import org.skywalking.apm.commons.datacarrier.consumer.IConsumer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author peng-yongsheng */ public class GRPCRemoteClient implements RemoteClient { - private final GRPCRemoteSerializeService service; - private final StreamObserver streamObserver; - private final String address; + private final Logger logger = LoggerFactory.getLogger(GRPCRemoteClient.class); - public GRPCRemoteClient(String host, int port, StreamObserver streamObserver) { - this.address = host + ":" + String.valueOf(port); - this.streamObserver = streamObserver; + private final GRPCRemoteSerializeService service; + private final GRPCClient client; + private final DataCarrier carrier; + private final String address; + private final RemoteDataIDGetter remoteDataIDGetter; + + GRPCRemoteClient(GRPCClient client, RemoteDataIDGetter remoteDataIDGetter, int channelSize, int bufferSize) { + this.address = client.toString(); + this.client = client; this.service = new GRPCRemoteSerializeService(); + this.remoteDataIDGetter = remoteDataIDGetter; + this.carrier = new DataCarrier<>(channelSize, bufferSize); + this.carrier.setBufferStrategy(BufferStrategy.BLOCKING); + this.carrier.consume(new RemoteMessageConsumer(), 1); } @Override public final String getAddress() { return this.address; } - @Override public void send(int graphId, int nodeId, Data data) { - RemoteMessage.Builder builder = RemoteMessage.newBuilder(); - builder.setGraphId(graphId); - builder.setNodeId(nodeId); - builder.setRemoteData(service.serialize(data)); + @Override public void push(int graphId, int nodeId, Data data) { + try { + Integer remoteDataId = remoteDataIDGetter.getRemoteDataId(data.getClass()); + RemoteMessage.Builder builder = RemoteMessage.newBuilder(); + builder.setGraphId(graphId); + builder.setNodeId(nodeId); + builder.setRemoteDataId(remoteDataId); + builder.setRemoteData(service.serialize(data)); - streamObserver.onNext(builder.build()); + this.carrier.produce(builder.build()); + logger.debug("put remote message into queue, id: {}", data.getId()); + } catch (RemoteDataMappingIdNotFoundException e) { + logger.error(e.getMessage(), e); + } + } + + class RemoteMessageConsumer implements IConsumer { + @Override public void init() { + } + + @Override public void consume(List remoteMessages) { + StreamObserver streamObserver = createStreamObserver(); + for (RemoteMessage remoteMessage : remoteMessages) { + streamObserver.onNext(remoteMessage); + } + streamObserver.onCompleted(); + } + + @Override public void onError(List remoteMessages, Throwable t) { + logger.error(t.getMessage(), t); + } + + @Override public void onExit() { + } + } + + private StreamObserver createStreamObserver() { + RemoteCommonServiceGrpc.RemoteCommonServiceStub stub = RemoteCommonServiceGrpc.newStub(client.getChannel()); + + StreamStatus status = new StreamStatus(false); + return stub.call(new StreamObserver() { + @Override public void onNext(Empty empty) { + } + + @Override public void onError(Throwable throwable) { + logger.error(throwable.getMessage(), throwable); + } + + @Override public void onCompleted() { + status.finished(); + } + }); + } + + class StreamStatus { + + private final Logger logger = LoggerFactory.getLogger(StreamStatus.class); + + private volatile boolean status; + + StreamStatus(boolean status) { + this.status = status; + } + + public boolean isFinish() { + return status; + } + + void finished() { + this.status = true; + } + + /** + * @param maxTimeout max wait time, milliseconds. + */ + public void wait4Finish(long maxTimeout) { + long time = 0; + while (!status) { + if (time > maxTimeout) { + break; + } + try2Sleep(5); + time += 5; + } + } + + /** + * Try to sleep, and ignore the {@link InterruptedException} + * + * @param millis the length of time to sleep in milliseconds + */ + private void try2Sleep(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + logger.error(e.getMessage(), e); + } + } } @Override public boolean equals(String address) { diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClientService.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClientService.java index e98a1f103..69eddb461 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClientService.java +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClientService.java @@ -18,14 +18,11 @@ package org.skywalking.apm.collector.remote.grpc.service; -import io.grpc.stub.StreamObserver; import org.skywalking.apm.collector.client.ClientException; import org.skywalking.apm.collector.client.grpc.GRPCClient; -import org.skywalking.apm.collector.remote.grpc.proto.Empty; -import org.skywalking.apm.collector.remote.grpc.proto.RemoteCommonServiceGrpc; -import org.skywalking.apm.collector.remote.grpc.proto.RemoteMessage; import org.skywalking.apm.collector.remote.service.RemoteClient; import org.skywalking.apm.collector.remote.service.RemoteClientService; +import org.skywalking.apm.collector.remote.service.RemoteDataIDGetter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,74 +33,19 @@ public class GRPCRemoteClientService implements RemoteClientService { private final Logger logger = LoggerFactory.getLogger(GRPCRemoteClientService.class); - @Override public RemoteClient create(String host, int port) { + private final RemoteDataIDGetter remoteDataIDGetter; + + GRPCRemoteClientService(RemoteDataIDGetter remoteDataIDGetter) { + this.remoteDataIDGetter = remoteDataIDGetter; + } + + @Override public RemoteClient create(String host, int port, int channelSize, int bufferSize) { GRPCClient client = new GRPCClient(host, port); try { client.initialize(); } catch (ClientException e) { - e.printStackTrace(); - } - RemoteCommonServiceGrpc.RemoteCommonServiceStub stub = RemoteCommonServiceGrpc.newStub(client.getChannel()); - StreamObserver streamObserver = createStreamObserver(stub); - return new GRPCRemoteClient(host, port, streamObserver); - } - - private StreamObserver createStreamObserver(RemoteCommonServiceGrpc.RemoteCommonServiceStub stub) { - StreamStatus status = new StreamStatus(false); - return stub.call(new StreamObserver() { - @Override public void onNext(Empty empty) { - } - - @Override public void onError(Throwable throwable) { - logger.error(throwable.getMessage(), throwable); - } - - @Override public void onCompleted() { - status.finished(); - } - }); - } - - class StreamStatus { - private volatile boolean status; - - public StreamStatus(boolean status) { - this.status = status; - } - - public boolean isFinish() { - return status; - } - - public void finished() { - this.status = true; - } - - /** - * @param maxTimeout max wait time, milliseconds. - */ - public void wait4Finish(long maxTimeout) { - long time = 0; - while (!status) { - if (time > maxTimeout) { - break; - } - try2Sleep(5); - time += 5; - } - } - - /** - * Try to sleep, and ignore the {@link InterruptedException} - * - * @param millis the length of time to sleep in milliseconds - */ - private void try2Sleep(long millis) { - try { - Thread.sleep(millis); - } catch (InterruptedException e) { - - } + logger.error(e.getMessage(), e); } + return new GRPCRemoteClient(client, remoteDataIDGetter, channelSize, bufferSize); } } diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteDeserializeService.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteDeserializeService.java index 5ffbb5421..1c6d39b10 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteDeserializeService.java +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteDeserializeService.java @@ -43,8 +43,5 @@ public class GRPCRemoteDeserializeService implements RemoteDeserializeService remoteClients; private final String selfAddress; private final HashCodeSelector hashCodeSelector; private final ForeverFirstSelector foreverFirstSelector; private final RollingSelector rollingSelector; + private final int channelSize; + private final int bufferSize; @Override public Mode send(int graphId, int nodeId, Data data, Selector selector) { RemoteClient remoteClient; @@ -66,18 +69,21 @@ public class GRPCRemoteSenderService extends ClusterModuleListener implements Re if (remoteClient.equals(selfAddress)) { return Mode.Local; } else { - remoteClient.send(graphId, nodeId, data); + remoteClient.push(graphId, nodeId, data); return Mode.Remote; } } - public GRPCRemoteSenderService(String host, int port) { - this.service = new GRPCRemoteClientService(); + public GRPCRemoteSenderService(String host, int port, int channelSize, int bufferSize, + RemoteDataIDGetter remoteDataIDGetter) { + this.service = new GRPCRemoteClientService(remoteDataIDGetter); this.remoteClients = new ArrayList<>(); this.selfAddress = host + ":" + String.valueOf(port); this.hashCodeSelector = new HashCodeSelector(); this.foreverFirstSelector = new ForeverFirstSelector(); this.rollingSelector = new RollingSelector(); + this.channelSize = channelSize; + this.bufferSize = bufferSize; } @Override public String path() { @@ -90,7 +96,7 @@ public class GRPCRemoteSenderService extends ClusterModuleListener implements Re String host = serverAddress.split(":")[0]; int port = Integer.parseInt(serverAddress.split(":")[1]); - RemoteClient remoteClient = service.create(host, port); + RemoteClient remoteClient = service.create(host, port, channelSize, bufferSize); newRemoteClients.add(remoteClient); Collections.sort(newRemoteClients); diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java index dbe08251b..374e76696 100644 --- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java +++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java @@ -18,7 +18,6 @@ package org.skywalking.apm.collector.remote.grpc.service; -import com.google.protobuf.ByteString; import org.skywalking.apm.collector.core.data.Data; import org.skywalking.apm.collector.remote.grpc.proto.RemoteData; import org.skywalking.apm.collector.remote.service.RemoteSerializeService; @@ -31,22 +30,22 @@ public class GRPCRemoteSerializeService implements RemoteSerializeService extends Wo private final RemoteSenderService remoteSenderService; private final int graphId; - public RemoteWorkerRef(AbstractRemoteWorker remoteWorker, RemoteSenderService remoteSenderService, + RemoteWorkerRef(AbstractRemoteWorker remoteWorker, RemoteSenderService remoteSenderService, int graphId) { super(remoteWorker); this.remoteWorker = remoteWorker; diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java index 2da917796..31e00ffe4 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java @@ -63,7 +63,7 @@ public abstract class AggregationWorker throw new WorkerException(e.getMessage(), e); } } - dataCache.getLast().asMap().forEach((String id, Data data) -> { + dataCache.getLast().collection().forEach((String id, Data data) -> { logger.debug(data.toString()); onNext((OUTPUT)data); }); @@ -73,7 +73,7 @@ public abstract class AggregationWorker private void aggregate(INPUT message) { dataCache.writing(); if (dataCache.containsKey(message.getId())) { - message.mergeData(dataCache.get(message.getId())); + dataCache.get(message.getId()).mergeData(message); } else { dataCache.put(message.getId(), message); } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java index c6e8063cd..33248e73c 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java @@ -86,8 +86,8 @@ public abstract class PersistenceWorker } } - if (dataCache.getLast().asMap() != null) { - batchCollection = prepareBatch(dataCache.getLast().asMap()); + if (dataCache.getLast().collection() != null) { + batchCollection = prepareBatch(dataCache.getLast().collection()); } } finally { dataCache.finishReadingLast(); @@ -104,7 +104,7 @@ public abstract class PersistenceWorker if (ObjectUtils.isNotEmpty(dbData)) { dbData.mergeData(data); try { - updateBatchCollection.add(persistenceDAO().prepareBatchUpdate(data)); + updateBatchCollection.add(persistenceDAO().prepareBatchUpdate(dbData)); } catch (Throwable t) { logger.error(t.getMessage(), t); } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java index b8877b084..855f2952d 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java @@ -18,15 +18,20 @@ package org.skywalking.apm.collector.stream.worker.impl.data; +import org.skywalking.apm.collector.core.cache.Window; import org.skywalking.apm.collector.core.data.Data; /** * @author peng-yongsheng */ -public class DataCache extends Window { +public class DataCache extends Window { private DataCollection lockedDataCollection; + @Override public DataCollection collectionInstance() { + return new DataCollection(); + } + public boolean containsKey(String id) { return lockedDataCollection.containsKey(id); } diff --git a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java index eff0e468c..843ac385d 100644 --- a/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java +++ b/apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java @@ -20,12 +20,13 @@ package org.skywalking.apm.collector.stream.worker.impl.data; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import org.skywalking.apm.collector.core.cache.Collection; import org.skywalking.apm.collector.core.data.Data; /** * @author peng-yongsheng */ -public class DataCollection { +public class DataCollection implements Collection> { private Map data; private volatile boolean writing; private volatile boolean reading; @@ -40,23 +41,23 @@ public class DataCollection { writing = false; } - public void writing() { + @Override public void writing() { writing = true; } - public boolean isWriting() { + @Override public boolean isWriting() { return writing; } - public void finishReading() { + @Override public void finishReading() { reading = false; } - public void reading() { + @Override public void reading() { reading = true; } - public boolean isReading() { + @Override public boolean isReading() { return reading; } @@ -72,15 +73,15 @@ public class DataCollection { return data.get(key); } - public int size() { + @Override public int size() { return data.size(); } - public void clear() { + @Override public void clear() { data.clear(); } - public Map asMap() { + public Map collection() { return data; } } diff --git a/apm-collector/pom.xml b/apm-collector/pom.xml index 47914d4d8..45b42ec42 100644 --- a/apm-collector/pom.xml +++ b/apm-collector/pom.xml @@ -70,11 +70,6 @@ log4j-core 2.9.0 - - com.google.guava - guava - 22.0 - org.apache.logging.log4j log4j-slf4j-impl diff --git a/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java index 17473a4d5..231bafa95 100644 --- a/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java +++ b/apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java @@ -91,12 +91,14 @@ public class ConsumerThread extends Thread { consumeList.add(element); } hasData = true; - } - try { - consumer.consume(consumeList); - } catch (Throwable t) { - consumer.onError(consumeList, t); + + if (consumeList.size() > 0) { + try { + consumer.consume(consumeList); + } catch (Throwable t) { + consumer.onError(consumeList, t); + } } return hasData; } diff --git a/apm-network/pom.xml b/apm-network/pom.xml index 34d12090f..f2b789728 100644 --- a/apm-network/pom.xml +++ b/apm-network/pom.xml @@ -31,8 +31,7 @@ UTF-8 - 1.4.0 - 4.1.12.Final + 1.7.0 1.6 @@ -41,16 +40,6 @@ io.grpc grpc-netty ${grpc.version} - - - io.netty - netty-codec-http2 - - - io.netty - netty-handler-proxy - - io.grpc @@ -62,16 +51,6 @@ grpc-stub ${grpc.version} - - io.netty - netty-codec-http2 - ${netty.version} - - - io.netty - netty-handler-proxy - ${netty.version} - @@ -104,7 +83,7 @@ com.google.protobuf:protoc:3.3.0:exe:${os.detected.classifier} grpc-java - io.grpc:protoc-gen-grpc-java:1.4.0:exe:${os.detected.classifier} + io.grpc:protoc-gen-grpc-java:1.7.0:exe:${os.detected.classifier} diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml index 095cede21..86b18ec99 100644 --- a/apm-sniffer/apm-agent-core/pom.xml +++ b/apm-sniffer/apm-agent-core/pom.xml @@ -35,7 +35,7 @@ UTF-8 9.4.2.v20170220 - 1.4.0 + 1.7.0 1.7.6 org.skywalking.apm.dependencies @@ -105,7 +105,7 @@ io.grpc grpc-testing - 1.4.0 + ${grpc.version} mockito-core diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml index c513de7cd..fe2335214 100644 --- a/apm-sniffer/apm-sdk-plugin/pom.xml +++ b/apm-sniffer/apm-sdk-plugin/pom.xml @@ -164,9 +164,12 @@ - - + + From 14967e4949e23b50cfa9e7973fc98e25e53c88e8 Mon Sep 17 00:00:00 2001 From: peng-yongsheng <8082209@qq.com> Date: Sun, 19 Nov 2017 22:44:33 +0800 Subject: [PATCH 3/3] Fixed maven package error from style check. --- .../apm/collector/core/cache/Window.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java index 8dbebcd9b..90e62e824 100644 --- a/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java +++ b/apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java @@ -23,14 +23,14 @@ import java.util.concurrent.atomic.AtomicInteger; /** * @author peng-yongsheng */ -public abstract class Window { +public abstract class Window { private AtomicInteger windowSwitch = new AtomicInteger(0); - private WindowCollection pointer; + private WINDOW_COLLECTION pointer; - private WindowCollection windowDataA; - private WindowCollection windowDataB; + private WINDOW_COLLECTION windowDataA; + private WINDOW_COLLECTION windowDataB; protected Window() { this.windowDataA = collectionInstance(); @@ -38,7 +38,7 @@ public abstract class Window { this.pointer = windowDataA; } - public abstract WindowCollection collectionInstance(); + public abstract WINDOW_COLLECTION collectionInstance(); public boolean trySwitchPointer() { return windowSwitch.incrementAndGet() == 1 && !getLast().isReading(); @@ -57,7 +57,7 @@ public abstract class Window { getLast().reading(); } - protected WindowCollection getCurrentAndWriting() { + protected WINDOW_COLLECTION getCurrentAndWriting() { if (pointer == windowDataA) { windowDataA.writing(); return windowDataA; @@ -67,11 +67,11 @@ public abstract class Window { } } - protected WindowCollection getCurrent() { + protected WINDOW_COLLECTION getCurrent() { return pointer; } - public WindowCollection getLast() { + public WINDOW_COLLECTION getLast() { if (pointer == windowDataA) { return windowDataB; } else {