Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
eaa02545
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 大约 1 年
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
eaa02545
编写于
11月 19, 2017
作者:
P
peng-yongsheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Test success with standalone and cluster mode.
上级
f3e85ef6
变更
68
隐藏空白更改
内联
并排
Showing
68 changed file
with
730 addition
and
349 deletion
+730
-349
apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java
...alking/apm/collector/agent/jetty/handler/SegmentPost.java
+5
-2
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java
...apm/collector/agent/stream/AgentStreamModuleProvider.java
+7
-0
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java
...g/apm/collector/agent/stream/buffer/BufferFileConfig.java
+6
-0
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java
...king/apm/collector/agent/stream/buffer/OffsetManager.java
+3
-3
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java
...m/collector/agent/stream/buffer/SegmentBufferManager.java
+4
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java
...pm/collector/agent/stream/buffer/SegmentBufferReader.java
+3
-3
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java
...lking/apm/collector/agent/stream/parser/SegmentParse.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/AgentStreamRemoteDataRegister.java
...or/agent/stream/worker/AgentStreamRemoteDataRegister.java
+53
-0
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java
...m/collector/agent/stream/worker/jvm/CpuMetricService.java
+9
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java
...pm/collector/agent/stream/worker/jvm/GCMetricService.java
+9
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java
...tor/agent/stream/worker/jvm/InstanceHeartBeatService.java
+9
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java
...ollector/agent/stream/worker/jvm/MemoryMetricService.java
+9
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java
...ctor/agent/stream/worker/jvm/MemoryPoolMetricService.java
+9
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java
...or/agent/stream/worker/register/ApplicationIDService.java
+19
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java
...ector/agent/stream/worker/register/InstanceIDService.java
+28
-8
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java
.../stream/worker/register/InstanceRegisterRemoteWorker.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java
...ctor/agent/stream/worker/register/ServiceNameService.java
+19
-5
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java
...t/stream/worker/trace/node/NodeComponentRemoteWorker.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java
...ent/stream/worker/trace/node/NodeMappingRemoteWorker.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java
...ent/stream/worker/trace/node/NodeMappingSpanListener.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java
...tream/worker/trace/noderef/NodeReferenceRemoteWorker.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java
...stream/worker/trace/service/ServiceEntrySpanListener.java
+1
-1
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java
...worker/trace/serviceref/ServiceReferenceSpanListener.java
+1
-1
apm-collector/apm-collector-boot/src/main/resources/application.yml
...tor/apm-collector-boot/src/main/resources/application.yml
+13
-8
apm-collector/apm-collector-boot/src/main/resources/log4j2.xml
...ollector/apm-collector-boot/src/main/resources/log4j2.xml
+2
-2
apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml
...pm-collector-cache/collector-cache-guava-provider/pom.xml
+5
-0
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ApplicationCacheGuavaService.java
...tor/cache/guava/service/ApplicationCacheGuavaService.java
+15
-6
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/InstanceCacheGuavaService.java
...lector/cache/guava/service/InstanceCacheGuavaService.java
+15
-6
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceIdCacheGuavaService.java
...ector/cache/guava/service/ServiceIdCacheGuavaService.java
+13
-4
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceNameCacheGuavaService.java
...tor/cache/guava/service/ServiceNameCacheGuavaService.java
+13
-4
apm-collector/apm-collector-component/client-component/pom.xml
...ollector/apm-collector-component/client-component/pom.xml
+37
-3
apm-collector/apm-collector-component/server-component/pom.xml
...ollector/apm-collector-component/server-component/pom.xml
+6
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Collection.java
...a/org/skywalking/apm/collector/core/cache/Collection.java
+20
-3
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cache/Window.java
.../java/org/skywalking/apm/collector/core/cache/Window.java
+14
-12
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/data/Data.java
...ain/java/org/skywalking/apm/collector/core/data/Data.java
+1
-0
apm-collector/apm-collector-core/src/main/resources/application-default.yml
...collector-core/src/main/resources/application-default.yml
+14
-0
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteException.java
.../org/skywalking/apm/collector/remote/RemoteException.java
+35
-0
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteModule.java
...ava/org/skywalking/apm/collector/remote/RemoteModule.java
+2
-2
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/CommonRemoteDataRegisterService.java
...ector/remote/service/CommonRemoteDataRegisterService.java
+71
-0
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClient.java
...skywalking/apm/collector/remote/service/RemoteClient.java
+1
-1
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClientService.java
...ing/apm/collector/remote/service/RemoteClientService.java
+1
-1
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataIDGetter.java
...king/apm/collector/remote/service/RemoteDataIDGetter.java
+2
-4
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorGetter.java
...ector/remote/service/RemoteDataInstanceCreatorGetter.java
+3
-4
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataInstanceCreatorNotFoundException.java
...e/service/RemoteDataInstanceCreatorNotFoundException.java
+5
-10
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataMappingIdNotFoundException.java
.../remote/service/RemoteDataMappingIdNotFoundException.java
+6
-4
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataRegisterService.java
...m/collector/remote/service/RemoteDataRegisterService.java
+7
-10
apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml
...m-collector-remote/collector-remote-grpc-provider/pom.xml
+5
-0
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java
...g/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java
+13
-7
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/handler/RemoteCommonServiceHandler.java
...ector/remote/grpc/handler/RemoteCommonServiceHandler.java
+19
-7
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClient.java
...g/apm/collector/remote/grpc/service/GRPCRemoteClient.java
+120
-10
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClientService.java
...ollector/remote/grpc/service/GRPCRemoteClientService.java
+10
-68
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteDeserializeService.java
...tor/remote/grpc/service/GRPCRemoteDeserializeService.java
+0
-3
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSenderService.java
...ollector/remote/grpc/service/GRPCRemoteSenderService.java
+11
-5
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java
...ector/remote/grpc/service/GRPCRemoteSerializeService.java
+6
-7
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteServerService.java
...ollector/remote/grpc/service/GRPCRemoteServerService.java
+0
-21
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/proto/RemoteCommonService.proto
...te-grpc-provider/src/main/proto/RemoteCommonService.proto
+4
-3
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java
...pm/collector/stream/worker/base/AbstractRemoteWorker.java
+0
-13
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java
...ctor/stream/worker/base/AbstractRemoteWorkerProvider.java
+2
-3
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java
...ing/apm/collector/stream/worker/base/RemoteWorkerRef.java
+1
-1
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java
...g/apm/collector/stream/worker/impl/AggregationWorker.java
+2
-2
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java
...g/apm/collector/stream/worker/impl/PersistenceWorker.java
+3
-3
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java
...king/apm/collector/stream/worker/impl/data/DataCache.java
+6
-1
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java
...apm/collector/stream/worker/impl/data/DataCollection.java
+10
-9
apm-collector/pom.xml
apm-collector/pom.xml
+0
-5
apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java
...king/apm/commons/datacarrier/consumer/ConsumerThread.java
+7
-5
apm-network/pom.xml
apm-network/pom.xml
+2
-23
apm-sniffer/apm-agent-core/pom.xml
apm-sniffer/apm-agent-core/pom.xml
+2
-2
apm-sniffer/apm-sdk-plugin/pom.xml
apm-sniffer/apm-sdk-plugin/pom.xml
+6
-3
未找到文件。
apm-collector/apm-collector-agent-jetty/collector-agent-jetty-provider/src/test/java/org/skywalking/apm/collector/agent/jetty/handler/SegmentPost.java
浏览文件 @
eaa02545
...
...
@@ -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
());
}
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/AgentStreamModuleProvider.java
浏览文件 @
eaa02545
...
...
@@ -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
();
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/BufferFileConfig.java
浏览文件 @
eaa02545
...
...
@@ -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"
))
{
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/OffsetManager.java
浏览文件 @
eaa02545
...
...
@@ -49,7 +49,7 @@ public enum OffsetManager {
public
synchronized
void
initialize
()
throws
IOException
{
if
(!
initialized
)
{
this
.
offset
=
new
Offset
();
File
dataPath
=
new
File
(
SegmentBuffer
Config
.
BUFFER_PATH
);
File
dataPath
=
new
File
(
BufferFile
Config
.
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
(
SegmentBuffer
Config
.
BUFFER_PATH
+
offsetFileName
);
offsetFile
=
new
File
(
BufferFile
Config
.
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
(
SegmentBuffer
Config
.
BUFFER_PATH
+
offsetFileName
);
File
newOffsetFile
=
new
File
(
BufferFile
Config
.
BUFFER_PATH
+
offsetFileName
);
offsetFile
.
delete
();
offsetFile
=
newOffsetFile
;
this
.
flush
();
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferManager.java
浏览文件 @
eaa02545
...
...
@@ -44,14 +44,14 @@ public enum SegmentBufferManager {
logger
.
info
(
"segment buffer initialize"
);
try
{
OffsetManager
.
INSTANCE
.
initialize
();
if
(
new
File
(
SegmentBuffer
Config
.
BUFFER_PATH
).
mkdirs
())
{
if
(
new
File
(
BufferFile
Config
.
BUFFER_PATH
).
mkdirs
())
{
newDataFile
();
}
else
{
String
writeFileName
=
OffsetManager
.
INSTANCE
.
getWriteFileName
();
if
(
StringUtils
.
isNotEmpty
(
writeFileName
))
{
File
dataFile
=
new
File
(
SegmentBuffer
Config
.
BUFFER_PATH
+
writeFileName
);
File
dataFile
=
new
File
(
BufferFile
Config
.
BUFFER_PATH
+
writeFileName
);
if
(
dataFile
.
exists
())
{
outputStream
=
new
FileOutputStream
(
new
File
(
SegmentBuffer
Config
.
BUFFER_PATH
+
writeFileName
),
true
);
outputStream
=
new
FileOutputStream
(
new
File
(
BufferFile
Config
.
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
(
SegmentBuffer
Config
.
BUFFER_PATH
+
writeFileName
);
File
dataFile
=
new
File
(
BufferFile
Config
.
BUFFER_PATH
+
writeFileName
);
dataFile
.
createNewFile
();
OffsetManager
.
INSTANCE
.
setWriteOffset
(
writeFileName
,
0
);
try
{
...
...
@@ -98,6 +98,5 @@ public enum SegmentBufferManager {
}
public
synchronized
void
flush
()
{
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferReader.java
浏览文件 @
eaa02545
...
...
@@ -53,7 +53,7 @@ public enum SegmentBufferReader {
private
void
preRead
()
{
String
readFileName
=
OffsetManager
.
INSTANCE
.
getReadFileName
();
if
(
StringUtils
.
isNotEmpty
(
readFileName
))
{
File
readFile
=
new
File
(
SegmentBuffer
Config
.
BUFFER_PATH
+
readFileName
);
File
readFile
=
new
File
(
BufferFile
Config
.
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
(
SegmentBuffer
Config
.
BUFFER_PATH
).
listFiles
(
new
PrefixFileNameFilter
());
File
[]
dataFiles
=
new
File
(
BufferFile
Config
.
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
(
SegmentBuffer
Config
.
BUFFER_PATH
).
listFiles
(
new
PrefixFileNameFilter
());
File
[]
dataFiles
=
new
File
(
BufferFile
Config
.
BUFFER_PATH
).
listFiles
(
new
PrefixFileNameFilter
());
if
(
CollectionUtils
.
isNotEmpty
(
dataFiles
))
{
if
(
dataFiles
[
0
].
getName
().
equals
(
readFileName
))
{
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/parser/SegmentParse.java
浏览文件 @
eaa02545
...
...
@@ -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
<
SegmentStandardization
>
graph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
TraceStreamGraph
.
SEGMENT_STANDARDIZATION_GRAPH_ID
,
SegmentStandardization
.
class
);
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/AgentStreamRemoteDataRegister.java
0 → 100644
浏览文件 @
eaa02545
/*
* 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
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/CpuMetricService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
CpuMetric
>
cpuMetricGraph
;
private
Graph
<
CpuMetric
>
cpuMetricGraph
;
public
CpuMetricService
()
{
cpuMetricGraph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
JvmMetricStreamGraph
.
CPU_METRIC_GRAPH_ID
,
CpuMetric
.
class
);
private
Graph
<
CpuMetric
>
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
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/GCMetricService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
GCMetric
>
gcMetricGraph
;
private
Graph
<
GCMetric
>
gcMetricGraph
;
public
GCMetricService
()
{
gcMetricGraph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
JvmMetricStreamGraph
.
GC_METRIC_GRAPH_ID
,
GCMetric
.
class
);
private
Graph
<
GCMetric
>
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
());
g
cMetricGraph
.
start
(
gcMetric
);
logger
.
debug
(
"
push
to gc metric graph, id: {}"
,
gcMetric
.
getId
());
g
etGcMetricGraph
()
.
start
(
gcMetric
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/InstanceHeartBeatService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
Instance
>
heartBeatGraph
;
private
Graph
<
Instance
>
heartBeatGraph
;
public
InstanceHeartBeatService
()
{
this
.
heartBeatGraph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
JvmMetricStreamGraph
.
INST_HEART_BEAT_GRAPH_ID
,
Instance
.
class
);
private
Graph
<
Instance
>
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
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryMetricService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
MemoryMetric
>
memoryMetricGraph
;
private
Graph
<
MemoryMetric
>
memoryMetricGraph
;
public
MemoryMetricService
()
{
this
.
memoryMetricGraph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
JvmMetricStreamGraph
.
MEMORY_METRIC_GRAPH_ID
,
MemoryMetric
.
class
);
private
Graph
<
MemoryMetric
>
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
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/jvm/MemoryPoolMetricService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
MemoryPoolMetric
>
memoryPoolMetricGraph
;
private
Graph
<
MemoryPoolMetric
>
memoryPoolMetricGraph
;
public
MemoryPoolMetricService
()
{
this
.
memoryPoolMetricGraph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
JvmMetricStreamGraph
.
MEMORY_POOL_METRIC_GRAPH_ID
,
MemoryPoolMetric
.
class
);
private
Graph
<
MemoryPoolMetric
>
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
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ApplicationIDService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
Application
>
applicationRegisterGraph
;
private
ApplicationCacheService
applicationCacheService
;
private
Graph
<
Application
>
applicationRegisterGraph
;
public
ApplicationIDService
(
ModuleManager
moduleManager
)
{
this
.
moduleManager
=
moduleManager
;
this
.
applicationRegisterGraph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
RegisterStreamGraph
.
APPLICATION_REGISTER_GRAPH_ID
,
Application
.
class
);
}
private
Graph
<
Application
>
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
;
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceIDService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
Instance
>
instanceRegisterGraph
;
private
InstanceCacheService
instanceCacheService
;
private
Graph
<
Instance
>
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
<
Instance
>
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
);
}
}
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/InstanceRegisterRemoteWorker.java
浏览文件 @
eaa02545
...
...
@@ -39,7 +39,7 @@ public class InstanceRegisterRemoteWorker extends AbstractRemoteWorker<Instance,
return
InstanceRegisterRemoteWorker
.
class
.
hashCode
();
}
public
InstanceRegisterRemoteWorker
(
ModuleManager
moduleManager
)
{
InstanceRegisterRemoteWorker
(
ModuleManager
moduleManager
)
{
super
(
moduleManager
);
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/register/ServiceNameService.java
浏览文件 @
eaa02545
...
...
@@ -25,6 +25,7 @@ import org.skywalking.apm.collector.cache.service.ServiceIdCacheService;
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.ServiceName
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -37,16 +38,29 @@ public class ServiceNameService implements IServiceNameService {
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ServiceNameService
.
class
);
private
final
ModuleManager
moduleManager
;
private
final
Graph
<
ServiceName
>
serviceNameRegisterGraph
;
private
ServiceIdCacheService
serviceIdCacheService
;
private
Graph
<
ServiceName
>
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
<
ServiceName
>
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
;
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeComponentRemoteWorker.java
浏览文件 @
eaa02545
...
...
@@ -31,7 +31,7 @@ import org.skywalking.apm.collector.stream.worker.base.WorkerException;
*/
public
class
NodeComponentRemoteWorker
extends
AbstractRemoteWorker
<
NodeComponent
,
NodeComponent
>
{
public
NodeComponentRemoteWorker
(
ModuleManager
moduleManager
)
{
NodeComponentRemoteWorker
(
ModuleManager
moduleManager
)
{
super
(
moduleManager
);
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingRemoteWorker.java
浏览文件 @
eaa02545
...
...
@@ -31,7 +31,7 @@ import org.skywalking.apm.collector.stream.worker.base.WorkerException;
*/
public
class
NodeMappingRemoteWorker
extends
AbstractRemoteWorker
<
NodeMapping
,
NodeMapping
>
{
public
NodeMappingRemoteWorker
(
ModuleManager
moduleManager
)
{
NodeMappingRemoteWorker
(
ModuleManager
moduleManager
)
{
super
(
moduleManager
);
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/node/NodeMappingSpanListener.java
浏览文件 @
eaa02545
...
...
@@ -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
);
}
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/noderef/NodeReferenceRemoteWorker.java
浏览文件 @
eaa02545
...
...
@@ -31,7 +31,7 @@ import org.skywalking.apm.collector.stream.worker.base.WorkerException;
*/
public
class
NodeReferenceRemoteWorker
extends
AbstractRemoteWorker
<
NodeReference
,
NodeReference
>
{
public
NodeReferenceRemoteWorker
(
ModuleManager
moduleManager
)
{
NodeReferenceRemoteWorker
(
ModuleManager
moduleManager
)
{
super
(
moduleManager
);
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/service/ServiceEntrySpanListener.java
浏览文件 @
eaa02545
...
...
@@ -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
<
ServiceEntry
>
graph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
TraceStreamGraph
.
SERVICE_ENTRY_GRAPH_ID
,
ServiceEntry
.
class
);
graph
.
start
(
serviceEntry
);
}
...
...
apm-collector/apm-collector-agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/worker/trace/serviceref/ServiceReferenceSpanListener.java
浏览文件 @
eaa02545
...
...
@@ -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
<
ServiceReference
>
graph
=
GraphManager
.
INSTANCE
.
createIfAbsent
(
TraceStreamGraph
.
SERVICE_REFERENCE_GRAPH_ID
,
ServiceReference
.
class
);
graph
.
start
(
serviceReference
);
...
...
apm-collector/apm-collector-boot/src/main/resources/application.yml
浏览文件 @
eaa02545
...
...
@@ -5,8 +5,12 @@
naming
:
jetty
:
host
:
localhost
port
:
1
0
800
port
:
1
2
800
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
apm-collector/apm-collector-boot/src/main/resources/log4j2.xml
浏览文件 @
eaa02545
...
...
@@ -17,7 +17,7 @@
~ Project repository: https://github.com/OpenSkywalking/skywalking
-->
<Configuration
status=
"
debug
"
>
<Configuration
status=
"
info
"
>
<Appenders>
<Console
name=
"Console"
target=
"SYSTEM_OUT"
>
<PatternLayout
charset=
"UTF-8"
pattern=
"%d - %c -%-4r [%t] %-5p %x - %m%n"
/>
...
...
@@ -29,7 +29,7 @@
<logger
name=
"org.skywalking.apm.collector.agent.grpc.handler.JVMMetricsServiceHandler"
level=
"INFO"
/>
<logger
name=
"org.skywalking.apm.collector.stream.timer.PersistenceTimer"
level=
"INFO"
/>
<logger
name=
"io.grpc.netty"
level=
"INFO"
/>
<Root
level=
"
debug
"
>
<Root
level=
"
info
"
>
<AppenderRef
ref=
"Console"
/>
</Root>
</Loggers>
...
...
apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml
浏览文件 @
eaa02545
...
...
@@ -36,5 +36,10 @@
<artifactId>
collector-cache-define
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<version>
19.0
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ApplicationCacheGuavaService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
String
,
Integer
>
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
);
}
...
...
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/InstanceCacheGuavaService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
String
,
Integer
>
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
);
}
...
...
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceIdCacheGuavaService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
String
,
Integer
>
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
);
}
...
...
apm-collector/apm-collector-cache/collector-cache-guava-provider/src/main/java/org/skywalking/apm/collector/cache/guava/service/ServiceNameCacheGuavaService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
Integer
,
String
>
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
);
}
...
...
apm-collector/apm-collector-component/client-component/pom.xml
浏览文件 @
eaa02545
...
...
@@ -32,6 +32,34 @@
<artifactId>
snakeyaml
</artifactId>
<groupId>
org.yaml
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-common
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-transport
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-codec
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-codec-http
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-buffer
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-handler
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
<exclusion>
<artifactId>
netty-resolver
</artifactId>
<groupId>
io.netty
</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
...
...
@@ -50,9 +78,15 @@
</exclusions>
</dependency>
<dependency>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-core
</artifactId>
<version>
1.4.0
</version>
<groupId>
org.skywalking
</groupId>
<artifactId>
apm-network
</artifactId>
<version>
${project.version}
</version>
<exclusions>
<exclusion>
<artifactId>
guava
</artifactId>
<groupId>
com.google.guava
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
apm-collector/apm-collector-component/server-component/pom.xml
浏览文件 @
eaa02545
...
...
@@ -21,6 +21,12 @@
<groupId>
org.skywalking
</groupId>
<artifactId>
apm-network
</artifactId>
<version>
${project.version}
</version>
<exclusions>
<exclusion>
<artifactId>
guava
</artifactId>
<groupId>
com.google.guava
</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.eclipse.jetty
</groupId>
...
...
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/c
onfig/SystemConfig
.java
→
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/c
ache/Collection
.java
浏览文件 @
eaa02545
...
...
@@ -16,11 +16,28 @@
* Project repository: https://github.com/OpenSkywalking/skywalking
*/
package
org.skywalking.apm.collector.core.c
onfig
;
package
org.skywalking.apm.collector.core.c
ache
;
/**
* @author peng-yongsheng
*/
public
class
SystemConfig
{
public
static
String
DATA_PATH
=
"../data"
;
public
interface
Collection
<
Data
>
{
void
reading
();
boolean
isReading
();
void
writing
();
boolean
isWriting
();
void
clear
();
int
size
();
void
finishReading
();
void
finishWriting
();
Data
collection
();
}
apm-collector/apm-collector-
stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data
/Window.java
→
apm-collector/apm-collector-
core/src/main/java/org/skywalking/apm/collector/core/cache
/Window.java
浏览文件 @
eaa02545
...
...
@@ -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
<
WindowCollection
extends
Collection
>
{
private
AtomicInteger
windowSwitch
=
new
AtomicInteger
(
0
);
private
Data
Collection
pointer
;
private
Window
Collection
pointer
;
private
Data
Collection
windowDataA
;
private
Data
Collection
windowDataB
;
private
Window
Collection
windowDataA
;
private
Window
Collection
windowDataB
;
p
ublic
Window
()
{
windowDataA
=
new
DataCollection
();
windowDataB
=
new
DataCollection
();
pointer
=
windowDataA
;
p
rotected
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
Data
Collection
getCurrentAndWriting
()
{
protected
Window
Collection
getCurrentAndWriting
()
{
if
(
pointer
==
windowDataA
)
{
windowDataA
.
writing
();
return
windowDataA
;
...
...
@@ -65,11 +67,11 @@ public abstract class Window {
}
}
protected
Data
Collection
getCurrent
()
{
protected
Window
Collection
getCurrent
()
{
return
pointer
;
}
public
Data
Collection
getLast
()
{
public
Window
Collection
getLast
()
{
if
(
pointer
==
windowDataA
)
{
return
windowDataB
;
}
else
{
...
...
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/data/Data.java
浏览文件 @
eaa02545
...
...
@@ -183,6 +183,7 @@ public abstract class Data extends EndOfBatchQueueMessage {
for
(
Boolean
dataBoolean
:
dataBooleans
)
{
dataStr
.
append
(
dataBoolean
).
append
(
","
);
}
dataStr
.
append
(
"]"
);
return
dataStr
.
toString
();
}
}
apm-collector/apm-collector-core/src/main/resources/application-default.yml
浏览文件 @
eaa02545
...
...
@@ -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
...
...
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteException.java
0 → 100644
浏览文件 @
eaa02545
/*
* 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
);
}
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/RemoteModule.java
浏览文件 @
eaa02545
...
...
@@ -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
[]
{
RemoteSe
rverService
.
class
,
RemoteSend
erService
.
class
};
return
new
Class
[]
{
RemoteSe
nderService
.
class
,
RemoteDataRegist
erService
.
class
};
}
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/CommonRemoteDataRegisterService.java
0 → 100644
浏览文件 @
eaa02545
/*
* 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
<
Class
<?
extends
Data
>,
Integer
>
dataClassMapping
;
private
final
Map
<
Integer
,
RemoteDataInstanceCreator
>
dataInstanceCreatorMapping
;
public
CommonRemoteDataRegisterService
()
{
this
.
id
=
1
;
this
.
dataClassMapping
=
new
HashMap
<>();
this
.
dataInstanceCreatorMapping
=
new
HashMap
<>();
}
@Override
public
void
register
(
Class
<?
extends
Data
>
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
<?
extends
Data
>
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
);
}
}
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClient.java
浏览文件 @
eaa02545
...
...
@@ -26,7 +26,7 @@ import org.skywalking.apm.collector.core.data.Data;
public
interface
RemoteClient
extends
Comparable
<
RemoteClient
>
{
String
getAddress
();
void
send
(
int
graphId
,
int
nodeId
,
Data
data
);
void
push
(
int
graphId
,
int
nodeId
,
Data
data
);
boolean
equals
(
String
address
);
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteClientService.java
浏览文件 @
eaa02545
...
...
@@ -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
);
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/
DataReceiv
er.java
→
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/
RemoteDataIDGett
er.java
浏览文件 @
eaa02545
...
...
@@ -23,8 +23,6 @@ import org.skywalking.apm.collector.core.data.Data;
/**
* @author peng-yongsheng
*/
public
interface
DataReceiver
<
Output
extends
Data
>
{
Output
output
(
int
graphId
,
int
nodeId
);
void
receive
(
Output
data
);
public
interface
RemoteDataIDGetter
{
Integer
getRemoteDataId
(
Class
<?
extends
Data
>
dataClass
)
throws
RemoteDataMappingIdNotFoundException
;
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/Remote
ServerService
.java
→
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/Remote
DataInstanceCreatorGetter
.java
浏览文件 @
eaa02545
...
...
@@ -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
;
}
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/
DataReceiverRegisterListener
.java
→
apm-collector/apm-collector-remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/
RemoteDataInstanceCreatorNotFoundException
.java
浏览文件 @
eaa02545
...
...
@@ -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
);
}
}
apm-collector/apm-collector-
agent-stream/collector-agent-stream-provider/src/main/java/org/skywalking/apm/collector/agent/stream/buffer/SegmentBufferConfig
.java
→
apm-collector/apm-collector-
remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataMappingIdNotFoundException
.java
浏览文件 @
eaa02545
...
...
@@ -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
);
}
}
apm-collector/apm-collector-
core/src/main/java/org/skywalking/apm/collector/core/config/SystemConfigParser
.java
→
apm-collector/apm-collector-
remote/collector-remote-define/src/main/java/org/skywalking/apm/collector/remote/service/RemoteDataRegisterService
.java
浏览文件 @
eaa02545
...
...
@@ -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
<?
extends
Data
>
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
extends
Data
>
{
RemoteData
createInstance
(
String
id
);
}
}
apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml
浏览文件 @
eaa02545
...
...
@@ -41,6 +41,11 @@
<artifactId>
collector-grpc-manager-define
</artifactId>
<version>
${project.version}
</version>
</dependency>
<dependency>
<groupId>
org.skywalking
</groupId>
<artifactId>
apm-datacarrier
</artifactId>
<version>
${project.version}
</version>
</dependency>
</dependencies>
<build>
...
...
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/RemoteModuleGRPCProvider.java
浏览文件 @
eaa02545
...
...
@@ -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.GRPCRemoteServ
erService
;
import
org.skywalking.apm.collector.remote.service.
DataReceiverRegisterListener
;
import
org.skywalking.apm.collector.remote.
service.CommonRemoteDataRegist
erService
;
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
);
remote
SenderService
=
new
GRPCRemoteSenderService
(
host
,
port
);
this
.
registerServiceImplementation
(
RemoteServerService
.
class
,
new
GRPCRemoteServerService
(
listener
)
);
remote
DataRegisterService
=
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
));
...
...
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/handler/RemoteCommonServiceHandler.java
浏览文件 @
eaa02545
...
...
@@ -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
listen
er
;
private
final
RemoteDataInstanceCreatorGetter
instanceCreatorGett
er
;
private
final
GRPCRemoteDeserializeService
service
;
public
RemoteCommonServiceHandler
(
DataReceiverRegisterListener
listen
er
)
{
this
.
listener
=
listen
er
;
public
RemoteCommonServiceHandler
(
RemoteDataInstanceCreatorGetter
instanceCreatorGett
er
)
{
this
.
instanceCreatorGetter
=
instanceCreatorGett
er
;
this
.
service
=
new
GRPCRemoteDeserializeService
();
}
@SuppressWarnings
(
"unchecked"
)
@Override
public
StreamObserver
<
RemoteMessage
>
call
(
StreamObserver
<
Empty
>
responseObserver
)
{
return
new
StreamObserver
<
RemoteMessage
>()
{
@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
();
}
};
...
...
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClient.java
浏览文件 @
eaa02545
...
...
@@ -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
Logger
logger
=
LoggerFactory
.
getLogger
(
GRPCRemoteClient
.
class
);
private
final
GRPCRemoteSerializeService
service
;
private
final
StreamObserver
<
RemoteMessage
>
streamObserver
;
private
final
GRPCClient
client
;
private
final
DataCarrier
<
RemoteMessage
>
carrier
;
private
final
String
address
;
private
final
RemoteDataIDGetter
remoteDataIDGetter
;
public
GRPCRemoteClient
(
String
host
,
int
port
,
StreamObserver
<
RemoteMessage
>
streamObserver
)
{
this
.
address
=
host
+
":"
+
String
.
valueOf
(
port
);
this
.
streamObserver
=
streamObserver
;
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
));
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
<
RemoteMessage
>
{
@Override
public
void
init
()
{
}
@Override
public
void
consume
(
List
<
RemoteMessage
>
remoteMessages
)
{
StreamObserver
<
RemoteMessage
>
streamObserver
=
createStreamObserver
();
for
(
RemoteMessage
remoteMessage
:
remoteMessages
)
{
streamObserver
.
onNext
(
remoteMessage
);
}
streamObserver
.
onCompleted
();
}
@Override
public
void
onError
(
List
<
RemoteMessage
>
remoteMessages
,
Throwable
t
)
{
logger
.
error
(
t
.
getMessage
(),
t
);
}
@Override
public
void
onExit
()
{
}
}
private
StreamObserver
<
RemoteMessage
>
createStreamObserver
()
{
RemoteCommonServiceGrpc
.
RemoteCommonServiceStub
stub
=
RemoteCommonServiceGrpc
.
newStub
(
client
.
getChannel
());
StreamStatus
status
=
new
StreamStatus
(
false
);
return
stub
.
call
(
new
StreamObserver
<
Empty
>()
{
@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
;
}
}
streamObserver
.
onNext
(
builder
.
build
());
/**
* 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
)
{
...
...
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteClientService.java
浏览文件 @
eaa02545
...
...
@@ -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
<
RemoteMessage
>
streamObserver
=
createStreamObserver
(
stub
);
return
new
GRPCRemoteClient
(
host
,
port
,
streamObserver
);
}
private
StreamObserver
<
RemoteMessage
>
createStreamObserver
(
RemoteCommonServiceGrpc
.
RemoteCommonServiceStub
stub
)
{
StreamStatus
status
=
new
StreamStatus
(
false
);
return
stub
.
call
(
new
StreamObserver
<
Empty
>()
{
@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
);
}
}
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteDeserializeService.java
浏览文件 @
eaa02545
...
...
@@ -43,8 +43,5 @@ public class GRPCRemoteDeserializeService implements RemoteDeserializeService<Re
for
(
int
i
=
0
;
i
<
remoteData
.
getDataDoublesCount
();
i
++)
{
data
.
setDataDouble
(
i
,
remoteData
.
getDataDoubles
(
i
));
}
for
(
int
i
=
0
;
i
<
remoteData
.
getDataBytesCount
();
i
++)
{
data
.
setDataBytes
(
i
,
remoteData
.
getDataBytes
(
i
).
toByteArray
());
}
}
}
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSenderService.java
浏览文件 @
eaa02545
...
...
@@ -30,6 +30,7 @@ import org.skywalking.apm.collector.remote.grpc.service.selector.ForeverFirstSel
import
org.skywalking.apm.collector.remote.grpc.service.selector.HashCodeSelector
;
import
org.skywalking.apm.collector.remote.grpc.service.selector.RollingSelector
;
import
org.skywalking.apm.collector.remote.service.RemoteClient
;
import
org.skywalking.apm.collector.remote.service.RemoteDataIDGetter
;
import
org.skywalking.apm.collector.remote.service.RemoteSenderService
;
import
org.skywalking.apm.collector.remote.service.Selector
;
...
...
@@ -38,13 +39,15 @@ import org.skywalking.apm.collector.remote.service.Selector;
*/
public
class
GRPCRemoteSenderService
extends
ClusterModuleListener
implements
RemoteSenderService
{
p
ublic
static
final
String
PATH
=
"/"
+
RemoteModule
.
NAME
+
"/"
+
RemoteModuleGRPCProvider
.
NAME
;
p
rivate
static
final
String
PATH
=
"/"
+
RemoteModule
.
NAME
+
"/"
+
RemoteModuleGRPCProvider
.
NAME
;
private
final
GRPCRemoteClientService
service
;
private
List
<
RemoteClient
>
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
);
...
...
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSerializeService.java
浏览文件 @
eaa02545
...
...
@@ -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<Remote
@Override
public
RemoteData
.
Builder
serialize
(
Data
data
)
{
RemoteData
.
Builder
builder
=
RemoteData
.
newBuilder
();
for
(
int
i
=
0
;
i
<
data
.
getDataStringsCount
();
i
++)
{
builder
.
setDataStrings
(
i
,
data
.
getDataString
(
i
));
builder
.
addDataStrings
(
data
.
getDataString
(
i
));
}
for
(
int
i
=
0
;
i
<
data
.
getDataIntegersCount
();
i
++)
{
builder
.
setDataIntegers
(
i
,
data
.
getDataInteger
(
i
));
builder
.
addDataIntegers
(
data
.
getDataInteger
(
i
));
}
for
(
int
i
=
0
;
i
<
data
.
getDataLongsCount
();
i
++)
{
builder
.
setDataLongs
(
i
,
data
.
getDataLong
(
i
));
builder
.
addDataLongs
(
data
.
getDataLong
(
i
));
}
for
(
int
i
=
0
;
i
<
data
.
getDataBooleansCount
();
i
++)
{
builder
.
setDataBooleans
(
i
,
data
.
getDataBoolean
(
i
));
builder
.
addDataBooleans
(
data
.
getDataBoolean
(
i
));
}
for
(
int
i
=
0
;
i
<
data
.
getDataDoublesCount
();
i
++)
{
builder
.
setDataDoubles
(
i
,
data
.
getDataDouble
(
i
));
builder
.
addDataDoubles
(
data
.
getDataDouble
(
i
));
}
for
(
int
i
=
0
;
i
<
data
.
getDataBytesCount
();
i
++)
{
builder
.
setDataBytes
(
i
,
ByteString
.
copyFrom
(
data
.
getDataBytes
(
i
)));
// builder.addDataBytes(
ByteString.copyFrom(data.getDataBytes(i)));
}
return
builder
;
}
...
...
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/skywalking/apm/collector/remote/grpc/service/GRPCRemoteServerService.java
已删除
100644 → 0
浏览文件 @
f3e85ef6
package
org.skywalking.apm.collector.remote.grpc.service
;
import
org.skywalking.apm.collector.remote.service.DataReceiver
;
import
org.skywalking.apm.collector.remote.service.DataReceiverRegisterListener
;
import
org.skywalking.apm.collector.remote.service.RemoteServerService
;
/**
* @author peng-yongsheng
*/
public
class
GRPCRemoteServerService
implements
RemoteServerService
{
private
DataReceiverRegisterListener
listener
;
public
GRPCRemoteServerService
(
DataReceiverRegisterListener
listener
)
{
this
.
listener
=
listener
;
}
@Override
public
void
registerReceiver
(
DataReceiver
receiver
)
{
listener
.
setDataReceiver
(
receiver
);
}
}
apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/proto/RemoteCommonService.proto
浏览文件 @
eaa02545
...
...
@@ -11,7 +11,8 @@ service RemoteCommonService {
message
RemoteMessage
{
int32
graphId
=
1
;
int32
nodeId
=
2
;
RemoteData
remoteData
=
3
;
int32
remoteDataId
=
3
;
RemoteData
remoteData
=
4
;
}
message
RemoteData
{
...
...
@@ -19,8 +20,8 @@ message RemoteData {
repeated
int64
dataLongs
=
2
;
repeated
double
dataDoubles
=
3
;
repeated
int32
dataIntegers
=
4
;
repeated
bytes
dataBytes
=
5
;
repeated
bool
dataBooleans
=
6
;
//
repeated bytes dataBytes = 5;
repeated
bool
dataBooleans
=
5
;
}
message
Empty
{
...
...
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorker.java
浏览文件 @
eaa02545
...
...
@@ -38,17 +38,4 @@ public abstract class AbstractRemoteWorker<INPUT extends Data, OUTPUT extends Da
}
public
abstract
Selector
selector
();
/**
* This method use for message producer to call for send message.
*
* @param message The persistence data or metric data.
* @throws Exception The Exception happen in {@link #onWork(Object)} )}
*/
public
final
void
allocateJob
(
INPUT
message
)
{
try
{
onWork
(
message
);
}
catch
(
WorkerException
e
)
{
}
}
}
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/AbstractRemoteWorkerProvider.java
浏览文件 @
eaa02545
...
...
@@ -45,9 +45,8 @@ public abstract class AbstractRemoteWorkerProvider<INPUT extends Data, OUTPUT ex
/**
* Create the worker instance into akka system, the akka system will control the cluster worker life cycle.
*
* @return The created worker reference. See {@link RemoteWorkerRef}
* @throws ProviderNotFoundException This worker instance attempted to find a provider which use to create another
* worker instance, when the worker provider not find then Throw this Exception.
* @return The created worker reference. See {@link RemoteWorkerRef} worker instance, when the worker provider not
* find then Throw this Exception.
*/
@Override
final
public
RemoteWorkerRef
create
(
WorkerCreateListener
workerCreateListener
)
{
WORKER_TYPE
remoteWorker
=
workerInstance
(
getModuleManager
());
...
...
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/base/RemoteWorkerRef.java
浏览文件 @
eaa02545
...
...
@@ -34,7 +34,7 @@ public class RemoteWorkerRef<INPUT extends Data, OUTPUT extends Data> extends Wo
private
final
RemoteSenderService
remoteSenderService
;
private
final
int
graphId
;
public
RemoteWorkerRef
(
AbstractRemoteWorker
<
INPUT
,
OUTPUT
>
remoteWorker
,
RemoteSenderService
remoteSenderService
,
RemoteWorkerRef
(
AbstractRemoteWorker
<
INPUT
,
OUTPUT
>
remoteWorker
,
RemoteSenderService
remoteSenderService
,
int
graphId
)
{
super
(
remoteWorker
);
this
.
remoteWorker
=
remoteWorker
;
...
...
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/AggregationWorker.java
浏览文件 @
eaa02545
...
...
@@ -63,7 +63,7 @@ public abstract class AggregationWorker<INPUT extends Data, OUTPUT extends Data>
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<INPUT extends Data, OUTPUT extends Data>
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
);
}
...
...
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/PersistenceWorker.java
浏览文件 @
eaa02545
...
...
@@ -86,8 +86,8 @@ public abstract class PersistenceWorker<INPUT extends Data, OUTPUT extends Data>
}
}
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<INPUT extends Data, OUTPUT extends Data>
if
(
ObjectUtils
.
isNotEmpty
(
dbData
))
{
dbData
.
mergeData
(
data
);
try
{
updateBatchCollection
.
add
(
persistenceDAO
().
prepareBatchUpdate
(
data
));
updateBatchCollection
.
add
(
persistenceDAO
().
prepareBatchUpdate
(
d
bD
ata
));
}
catch
(
Throwable
t
)
{
logger
.
error
(
t
.
getMessage
(),
t
);
}
...
...
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCache.java
浏览文件 @
eaa02545
...
...
@@ -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
<
DataCollection
>
{
private
DataCollection
lockedDataCollection
;
@Override
public
DataCollection
collectionInstance
()
{
return
new
DataCollection
();
}
public
boolean
containsKey
(
String
id
)
{
return
lockedDataCollection
.
containsKey
(
id
);
}
...
...
apm-collector/apm-collector-stream/src/main/java/org/skywalking/apm/collector/stream/worker/impl/data/DataCollection.java
浏览文件 @
eaa02545
...
...
@@ -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
<
Map
<
String
,
Data
>>
{
private
Map
<
String
,
Data
>
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
<
String
,
Data
>
asMap
()
{
public
Map
<
String
,
Data
>
collection
()
{
return
data
;
}
}
apm-collector/pom.xml
浏览文件 @
eaa02545
...
...
@@ -70,11 +70,6 @@
<artifactId>
log4j-core
</artifactId>
<version>
2.9.0
</version>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<version>
22.0
</version>
</dependency>
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-slf4j-impl
</artifactId>
...
...
apm-commons/apm-datacarrier/src/main/java/org/skywalking/apm/commons/datacarrier/consumer/ConsumerThread.java
浏览文件 @
eaa02545
...
...
@@ -91,12 +91,14 @@ public class ConsumerThread<T> 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
;
}
...
...
apm-network/pom.xml
浏览文件 @
eaa02545
...
...
@@ -31,8 +31,7 @@
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<grpc.version>
1.4.0
</grpc.version>
<netty.version>
4.1.12.Final
</netty.version>
<grpc.version>
1.7.0
</grpc.version>
<compiler.version>
1.6
</compiler.version>
</properties>
...
...
@@ -41,16 +40,6 @@
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-netty
</artifactId>
<version>
${grpc.version}
</version>
<exclusions>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-http2
</artifactId>
</exclusion>
<exclusion>
<groupId>
io.netty
</groupId>
<artifactId>
netty-handler-proxy
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
io.grpc
</groupId>
...
...
@@ -62,16 +51,6 @@
<artifactId>
grpc-stub
</artifactId>
<version>
${grpc.version}
</version>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-codec-http2
</artifactId>
<version>
${netty.version}
</version>
</dependency>
<dependency>
<groupId>
io.netty
</groupId>
<artifactId>
netty-handler-proxy
</artifactId>
<version>
${netty.version}
</version>
</dependency>
</dependencies>
<build>
...
...
@@ -104,7 +83,7 @@
<protocArtifact>
com.google.protobuf:protoc:3.3.0:exe:${os.detected.classifier}
</protocArtifact>
<pluginId>
grpc-java
</pluginId>
<pluginArtifact>
io.grpc:protoc-gen-grpc-java:1.
4
.0:exe:${os.detected.classifier}
<pluginArtifact>
io.grpc:protoc-gen-grpc-java:1.
7
.0:exe:${os.detected.classifier}
</pluginArtifact>
</configuration>
<executions>
...
...
apm-sniffer/apm-agent-core/pom.xml
浏览文件 @
eaa02545
...
...
@@ -35,7 +35,7 @@
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<jetty.version>
9.4.2.v20170220
</jetty.version>
<grpc.version>
1.
4
.0
</grpc.version>
<grpc.version>
1.
7
.0
</grpc.version>
<bytebuddy.version>
1.7.6
</bytebuddy.version>
<shade.package>
org.skywalking.apm.dependencies
</shade.package>
...
...
@@ -105,7 +105,7 @@
<dependency>
<groupId>
io.grpc
</groupId>
<artifactId>
grpc-testing
</artifactId>
<version>
1.4.0
</version>
<version>
${grpc.version}
</version>
<exclusions>
<exclusion>
<artifactId>
mockito-core
</artifactId>
...
...
apm-sniffer/apm-sdk-plugin/pom.xml
浏览文件 @
eaa02545
...
...
@@ -164,9 +164,12 @@
<if>
<equals
arg1=
"${project.packaging}"
arg2=
"jar"
/>
<then>
<mkdir
dir=
"${project.build.directory}${sdk.plugin.related.dir}/../../../../packages/skywalking-agent/plugins"
/>
<copy
file=
"${project.build.directory}/${project.artifactId}-${project.version}.jar"
tofile=
"${project.build.directory}${sdk.plugin.related.dir}/../../../../packages/skywalking-agent/plugins/${project.artifactId}-${project.version}.jar"
overwrite=
"true"
/>
<mkdir
dir=
"${project.build.directory}${sdk.plugin.related.dir}/../../../../packages/skywalking-agent/plugins"
/>
<copy
file=
"${project.build.directory}/${project.artifactId}-${project.version}.jar"
tofile=
"${project.build.directory}${sdk.plugin.related.dir}/../../../../packages/skywalking-agent/plugins/${project.artifactId}-${project.version}.jar"
overwrite=
"true"
/>
</then>
</if>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录