Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
d30a9202
M
milvus
项目概览
milvus
/
milvus
大约 1 年 前同步成功
通知
261
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d30a9202
编写于
8月 16, 2023
作者:
M
MrPresent-Han
提交者:
GitHub
8月 16, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add log trace for segcore(#26277) (#26339)
Signed-off-by:
N
MrPresent-Han
<
chun.han@zilliz.com
>
上级
f371ec03
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
65 addition
and
9 deletion
+65
-9
internal/core/src/common/Tracer.cpp
internal/core/src/common/Tracer.cpp
+39
-0
internal/core/src/common/Tracer.h
internal/core/src/common/Tracer.h
+13
-0
internal/core/src/segcore/segment_c.cpp
internal/core/src/segcore/segment_c.cpp
+7
-4
internal/proxy/task_insert.go
internal/proxy/task_insert.go
+2
-2
internal/querynodev2/tsafe/manager.go
internal/querynodev2/tsafe/manager.go
+4
-3
未找到文件。
internal/core/src/common/Tracer.cpp
浏览文件 @
d30a9202
...
@@ -34,6 +34,9 @@ namespace jaeger = opentelemetry::exporter::jaeger;
...
@@ -34,6 +34,9 @@ namespace jaeger = opentelemetry::exporter::jaeger;
namespace
ostream
=
opentelemetry
::
exporter
::
trace
;
namespace
ostream
=
opentelemetry
::
exporter
::
trace
;
namespace
otlp
=
opentelemetry
::
exporter
::
otlp
;
namespace
otlp
=
opentelemetry
::
exporter
::
otlp
;
static
const
int
trace_id_size
=
2
*
opentelemetry
::
trace
::
TraceId
::
kSize
;
static
bool
enable_trace
=
true
;
void
void
initTelementry
(
TraceConfig
*
config
)
{
initTelementry
(
TraceConfig
*
config
)
{
std
::
unique_ptr
<
opentelemetry
::
sdk
::
trace
::
SpanExporter
>
exporter
;
std
::
unique_ptr
<
opentelemetry
::
sdk
::
trace
::
SpanExporter
>
exporter
;
...
@@ -50,6 +53,7 @@ initTelementry(TraceConfig* config) {
...
@@ -50,6 +53,7 @@ initTelementry(TraceConfig* config) {
exporter
=
otlp
::
OtlpGrpcExporterFactory
::
Create
(
opts
);
exporter
=
otlp
::
OtlpGrpcExporterFactory
::
Create
(
opts
);
}
else
{
}
else
{
LOG_SEGCORE_INFO_
<<
"Empty Trace"
;
LOG_SEGCORE_INFO_
<<
"Empty Trace"
;
enable_trace
=
false
;
}
}
auto
processor
=
auto
processor
=
trace_sdk
::
BatchSpanProcessorFactory
::
Create
(
std
::
move
(
exporter
),
{});
trace_sdk
::
BatchSpanProcessorFactory
::
Create
(
std
::
move
(
exporter
),
{});
...
@@ -84,4 +88,39 @@ StartSpan(std::string name, TraceContext* parentCtx) {
...
@@ -84,4 +88,39 @@ StartSpan(std::string name, TraceContext* parentCtx) {
return
GetTracer
()
->
StartSpan
(
name
,
opts
);
return
GetTracer
()
->
StartSpan
(
name
,
opts
);
}
}
thread_local
std
::
shared_ptr
<
trace
::
Span
>
local_span
;
void
SetRootSpan
(
std
::
shared_ptr
<
trace
::
Span
>
span
)
{
if
(
enable_trace
)
{
local_span
=
span
;
}
}
void
CloseRootSpan
()
{
if
(
enable_trace
)
{
local_span
=
nullptr
;
}
}
std
::
shared_ptr
<
trace
::
Span
>
GetRootSpan
()
{
if
(
enable_trace
&&
local_span
!=
nullptr
)
{
return
local_span
;
}
return
nullptr
;
}
void
logTraceContext
(
const
std
::
string
&
extended_info
,
const
std
::
shared_ptr
<
trace
::
Span
>
span
)
{
if
(
enable_trace
&&
span
!=
nullptr
)
{
char
traceID
[
trace_id_size
];
span
->
GetContext
().
trace_id
().
ToLowerBase16
(
nostd
::
span
<
char
,
2
*
opentelemetry
::
trace
::
TraceId
::
kSize
>
{
&
traceID
[
0
],
trace_id_size
});
LOG_SEGCORE_INFO_
<<
extended_info
<<
", traceID:"
<<
traceID
;
}
}
}
// namespace milvus::tracer
}
// namespace milvus::tracer
internal/core/src/common/Tracer.h
浏览文件 @
d30a9202
...
@@ -42,4 +42,17 @@ GetTracer();
...
@@ -42,4 +42,17 @@ GetTracer();
std
::
shared_ptr
<
trace
::
Span
>
std
::
shared_ptr
<
trace
::
Span
>
StartSpan
(
std
::
string
name
,
TraceContext
*
ctx
=
nullptr
);
StartSpan
(
std
::
string
name
,
TraceContext
*
ctx
=
nullptr
);
void
logTraceContext
(
const
std
::
string
&
extended_info
,
std
::
shared_ptr
<
trace
::
Span
>
span
);
void
SetRootSpan
(
std
::
shared_ptr
<
trace
::
Span
>
span
);
void
CloseRootSpan
();
std
::
shared_ptr
<
trace
::
Span
>
GetRootSpan
();
}
// namespace milvus::tracer
}
// namespace milvus::tracer
internal/core/src/segcore/segment_c.cpp
浏览文件 @
d30a9202
...
@@ -78,9 +78,12 @@ Search(CSegmentInterface c_segment,
...
@@ -78,9 +78,12 @@ Search(CSegmentInterface c_segment,
c_placeholder_group
);
c_placeholder_group
);
auto
ctx
=
milvus
::
tracer
::
TraceContext
{
auto
ctx
=
milvus
::
tracer
::
TraceContext
{
c_trace
.
traceID
,
c_trace
.
spanID
,
c_trace
.
flag
};
c_trace
.
traceID
,
c_trace
.
spanID
,
c_trace
.
flag
};
auto
span
=
milvus
::
tracer
::
StartSpan
(
"SegCoreSearch"
,
&
ctx
);
auto
span
=
milvus
::
tracer
::
StartSpan
(
"SegcoreSearch"
,
&
ctx
);
milvus
::
tracer
::
logTraceContext
(
"SegCore_SegmentSearch_SegmentID:"
+
std
::
to_string
(
segment
->
get_segment_id
()),
span
);
milvus
::
tracer
::
SetRootSpan
(
span
);
auto
search_result
=
segment
->
Search
(
plan
,
phg_ptr
);
auto
search_result
=
segment
->
Search
(
plan
,
phg_ptr
);
if
(
!
milvus
::
PositivelyRelated
(
if
(
!
milvus
::
PositivelyRelated
(
plan
->
plan_node_
->
search_info_
.
metric_type_
))
{
plan
->
plan_node_
->
search_info_
.
metric_type_
))
{
...
@@ -89,8 +92,8 @@ Search(CSegmentInterface c_segment,
...
@@ -89,8 +92,8 @@ Search(CSegmentInterface c_segment,
}
}
}
}
*
result
=
search_result
.
release
();
*
result
=
search_result
.
release
();
span
->
End
();
span
->
End
();
milvus
::
tracer
::
CloseRootSpan
();
return
milvus
::
SuccessCStatus
();
return
milvus
::
SuccessCStatus
();
}
catch
(
std
::
exception
&
e
)
{
}
catch
(
std
::
exception
&
e
)
{
return
milvus
::
FailureCStatus
(
UnexpectedError
,
e
.
what
());
return
milvus
::
FailureCStatus
(
UnexpectedError
,
e
.
what
());
...
...
internal/proxy/task_insert.go
浏览文件 @
d30a9202
...
@@ -95,7 +95,7 @@ func (it *insertTask) OnEnqueue() error {
...
@@ -95,7 +95,7 @@ func (it *insertTask) OnEnqueue() error {
}
}
func
(
it
*
insertTask
)
PreExecute
(
ctx
context
.
Context
)
error
{
func
(
it
*
insertTask
)
PreExecute
(
ctx
context
.
Context
)
error
{
ctx
,
sp
:=
otel
.
Tracer
(
typeutil
.
ProxyRole
)
.
Start
(
ctx
,
"Insert-PreExecute"
)
ctx
,
sp
:=
otel
.
Tracer
(
typeutil
.
ProxyRole
)
.
Start
(
ctx
,
"
Proxy-
Insert-PreExecute"
)
defer
sp
.
End
()
defer
sp
.
End
()
it
.
result
=
&
milvuspb
.
MutationResult
{
it
.
result
=
&
milvuspb
.
MutationResult
{
...
@@ -212,7 +212,7 @@ func (it *insertTask) PreExecute(ctx context.Context) error {
...
@@ -212,7 +212,7 @@ func (it *insertTask) PreExecute(ctx context.Context) error {
}
}
func
(
it
*
insertTask
)
Execute
(
ctx
context
.
Context
)
error
{
func
(
it
*
insertTask
)
Execute
(
ctx
context
.
Context
)
error
{
ctx
,
sp
:=
otel
.
Tracer
(
typeutil
.
ProxyRole
)
.
Start
(
ctx
,
"Proxy-Insert-
Pre
Execute"
)
ctx
,
sp
:=
otel
.
Tracer
(
typeutil
.
ProxyRole
)
.
Start
(
ctx
,
"Proxy-Insert-Execute"
)
defer
sp
.
End
()
defer
sp
.
End
()
tr
:=
timerecord
.
NewTimeRecorder
(
fmt
.
Sprintf
(
"proxy execute insert %d"
,
it
.
ID
()))
tr
:=
timerecord
.
NewTimeRecorder
(
fmt
.
Sprintf
(
"proxy execute insert %d"
,
it
.
ID
()))
...
...
internal/querynodev2/tsafe/manager.go
浏览文件 @
d30a9202
...
@@ -20,10 +20,10 @@ import (
...
@@ -20,10 +20,10 @@ import (
"fmt"
"fmt"
"sync"
"sync"
"go.uber.org/zap"
"github.com/milvus-io/milvus/pkg/log"
"github.com/milvus-io/milvus/pkg/log"
"github.com/milvus-io/milvus/pkg/util/tsoutil"
.
"github.com/milvus-io/milvus/pkg/util/typeutil"
.
"github.com/milvus-io/milvus/pkg/util/typeutil"
"go.uber.org/zap"
)
)
// Manager is the interface for tsafe manager.
// Manager is the interface for tsafe manager.
...
@@ -58,8 +58,9 @@ func (t *tSafeManager) WatchChannel(channel string) Listener {
...
@@ -58,8 +58,9 @@ func (t *tSafeManager) WatchChannel(channel string) Listener {
}
}
func
(
t
*
tSafeManager
)
Add
(
vChannel
string
,
timestamp
uint64
)
{
func
(
t
*
tSafeManager
)
Add
(
vChannel
string
,
timestamp
uint64
)
{
ts
,
_
:=
tsoutil
.
ParseTS
(
timestamp
)
log
.
Info
(
"add tSafe done"
,
log
.
Info
(
"add tSafe done"
,
zap
.
String
(
"channel"
,
vChannel
))
zap
.
String
(
"channel"
,
vChannel
)
,
zap
.
Time
(
"timestamp"
,
ts
)
)
t
.
mu
.
Lock
()
t
.
mu
.
Lock
()
defer
t
.
mu
.
Unlock
()
defer
t
.
mu
.
Unlock
()
if
_
,
ok
:=
t
.
tSafes
[
vChannel
];
!
ok
{
if
_
,
ok
:=
t
.
tSafes
[
vChannel
];
!
ok
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录