Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿信在这里
SkyWalking
提交
6b5045ae
S
SkyWalking
项目概览
阿信在这里
/
SkyWalking
与 Fork 源项目一致
Fork自
山不在高_有仙则灵 / SkyWalking
通知
1
Star
0
Fork
0
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
6b5045ae
编写于
9月 03, 2017
作者:
P
pengys5
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Segment no entry span that will save a error service reference data
上级
752d1930
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
41 deletion
+45
-41
apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/ServiceReferenceSpanListener.java
...tream/worker/serviceref/ServiceReferenceSpanListener.java
+45
-41
未找到文件。
apm-collector/apm-collector-agentstream/src/main/java/org/skywalking/apm/collector/agentstream/worker/serviceref/ServiceReferenceSpanListener.java
浏览文件 @
6b5045ae
...
...
@@ -36,6 +36,7 @@ public class ServiceReferenceSpanListener implements FirstSpanListener, EntrySpa
private
long
endTime
=
0
;
private
boolean
isError
=
false
;
private
long
timeBucket
;
private
boolean
hasEntry
=
false
;
@Override
public
void
parseFirst
(
SpanObject
spanObject
,
int
applicationId
,
int
applicationInstanceId
,
String
segmentId
)
{
...
...
@@ -58,6 +59,7 @@ public class ServiceReferenceSpanListener implements FirstSpanListener, EntrySpa
startTime
=
spanObject
.
getStartTime
();
endTime
=
spanObject
.
getEndTime
();
isError
=
spanObject
.
getIsError
();
this
.
hasEntry
=
true
;
}
@Override
...
...
@@ -96,65 +98,67 @@ public class ServiceReferenceSpanListener implements FirstSpanListener, EntrySpa
@Override
public
void
build
()
{
logger
.
debug
(
"service reference listener build"
);
StreamModuleContext
context
=
(
StreamModuleContext
)
CollectorContextHelper
.
INSTANCE
.
getContext
(
StreamModuleGroupDefine
.
GROUP_NAME
);
if
(
hasEntry
)
{
StreamModuleContext
context
=
(
StreamModuleContext
)
CollectorContextHelper
.
INSTANCE
.
getContext
(
StreamModuleGroupDefine
.
GROUP_NAME
);
if
(
referenceServices
.
size
()
>
0
)
{
referenceServices
.
forEach
(
reference
->
{
ServiceReferenceDataDefine
.
ServiceReference
serviceReference
=
new
ServiceReferenceDataDefine
.
ServiceReference
();
int
entryServiceId
=
reference
.
getEntryServiceId
();
String
entryServiceName
=
buildServiceName
(
reference
.
getEntryApplicationInstanceId
(),
reference
.
getEntryServiceId
(),
reference
.
getEntryServiceName
());
int
frontServiceId
=
reference
.
getParentServiceId
();
String
frontServiceName
=
buildServiceName
(
reference
.
getParentApplicationInstanceId
(),
reference
.
getParentServiceId
(),
reference
.
getParentServiceName
());
int
behindServiceId
=
serviceId
;
String
behindServiceName
=
serviceName
;
calculateCost
(
serviceReference
,
startTime
,
endTime
,
isError
);
logger
.
debug
(
"has reference, entryServiceId: {}, entryServiceName: {}"
,
entryServiceId
,
entryServiceName
);
sendToAggregationWorker
(
context
,
serviceReference
,
entryServiceId
,
entryServiceName
,
frontServiceId
,
frontServiceName
,
behindServiceId
,
behindServiceName
);
});
}
else
{
ServiceReferenceDataDefine
.
ServiceReference
serviceReference
=
new
ServiceReferenceDataDefine
.
ServiceReference
();
int
entryServiceId
=
serviceId
;
String
entryServiceName
=
serviceName
;
int
frontServiceId
=
Const
.
NONE_SERVICE_ID
;
String
frontServiceName
=
Const
.
EMPTY_STRING
;
int
behindServiceId
=
serviceId
;
String
behindServiceName
=
serviceName
;
calculateCost
(
serviceReference
,
startTime
,
endTime
,
isError
);
sendToAggregationWorker
(
context
,
serviceReference
,
entryServiceId
,
entryServiceName
,
frontServiceId
,
frontServiceName
,
behindServiceId
,
behindServiceName
);
}
exitServiceRefs
.
forEach
(
serviceReference
->
{
if
(
referenceServices
.
size
()
>
0
)
{
referenceServices
.
forEach
(
reference
->
{
ServiceReferenceDataDefine
.
ServiceReference
serviceReference
=
new
ServiceReferenceDataDefine
.
ServiceReference
();
int
entryServiceId
=
reference
.
getEntryServiceId
();
String
entryServiceName
=
buildServiceName
(
reference
.
getEntryApplicationInstanceId
(),
reference
.
getEntryServiceId
(),
reference
.
getEntryServiceName
());
int
frontServiceId
=
reference
.
getParentServiceId
();
String
frontServiceName
=
buildServiceName
(
reference
.
getParentApplicationInstanceId
(),
reference
.
getParentServiceId
(),
reference
.
getParentServiceName
());
int
behindServiceId
=
serviceReference
.
getBehindServiceId
();
String
behindServiceName
=
serviceReference
.
getBehindServiceName
();
int
behindServiceId
=
serviceId
;
String
behindServiceName
=
serviceName
;
calculateCost
(
serviceReference
,
startTime
,
endTime
,
isError
);
logger
.
debug
(
"has reference, entryServiceId: {}, entryServiceName: {}"
,
entryServiceId
,
entryServiceName
);
sendToAggregationWorker
(
context
,
serviceReference
,
entryServiceId
,
entryServiceName
,
frontServiceId
,
frontServiceName
,
behindServiceId
,
behindServiceName
);
});
}
else
{
ServiceReferenceDataDefine
.
ServiceReference
serviceReference
=
new
ServiceReferenceDataDefine
.
ServiceReference
();
int
entryServiceId
=
serviceId
;
String
entryServiceName
=
serviceName
;
int
frontServiceId
=
serviceId
;
String
frontServiceName
=
serviceName
;
int
frontServiceId
=
Const
.
NONE_SERVICE_ID
;
String
frontServiceName
=
Const
.
EMPTY_STRING
;
int
behindServiceId
=
serviceReference
.
getBehindServiceId
();
String
behindServiceName
=
serviceReference
.
getBehindServiceName
();
int
behindServiceId
=
serviceId
;
String
behindServiceName
=
serviceName
;
calculateCost
(
serviceReference
,
startTime
,
endTime
,
isError
);
sendToAggregationWorker
(
context
,
serviceReference
,
entryServiceId
,
entryServiceName
,
frontServiceId
,
frontServiceName
,
behindServiceId
,
behindServiceName
);
}
});
exitServiceRefs
.
forEach
(
serviceReference
->
{
if
(
referenceServices
.
size
()
>
0
)
{
referenceServices
.
forEach
(
reference
->
{
int
entryServiceId
=
reference
.
getEntryServiceId
();
String
entryServiceName
=
buildServiceName
(
reference
.
getEntryApplicationInstanceId
(),
reference
.
getEntryServiceId
(),
reference
.
getEntryServiceName
());
int
frontServiceId
=
reference
.
getParentServiceId
();
String
frontServiceName
=
buildServiceName
(
reference
.
getParentApplicationInstanceId
(),
reference
.
getParentServiceId
(),
reference
.
getParentServiceName
());
int
behindServiceId
=
serviceReference
.
getBehindServiceId
();
String
behindServiceName
=
serviceReference
.
getBehindServiceName
();
sendToAggregationWorker
(
context
,
serviceReference
,
entryServiceId
,
entryServiceName
,
frontServiceId
,
frontServiceName
,
behindServiceId
,
behindServiceName
);
});
}
else
{
int
entryServiceId
=
serviceId
;
String
entryServiceName
=
serviceName
;
int
frontServiceId
=
serviceId
;
String
frontServiceName
=
serviceName
;
int
behindServiceId
=
serviceReference
.
getBehindServiceId
();
String
behindServiceName
=
serviceReference
.
getBehindServiceName
();
sendToAggregationWorker
(
context
,
serviceReference
,
entryServiceId
,
entryServiceName
,
frontServiceId
,
frontServiceName
,
behindServiceId
,
behindServiceName
);
}
});
}
}
private
void
sendToAggregationWorker
(
StreamModuleContext
context
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录