[feature](tracing) Support query tracing to improve doris observability by introducing OpenTelemetry. (#10533)
The collection of query traces is implemented in fe and be, and the spans are exported to zipkin. DSIP: https://cwiki.apache.org/confluence/display/DORIS/DSIP-012%3A+Introduce+opentelemetry
This commit is contained in:
@ -213,6 +213,7 @@ Status VAnalyticEvalNode::prepare(RuntimeState* state) {
|
||||
}
|
||||
|
||||
Status VAnalyticEvalNode::open(RuntimeState* state) {
|
||||
START_AND_SCOPE_SPAN(state->get_tracer(), span, "VAnalyticEvalNode::open");
|
||||
SCOPED_TIMER(_runtime_profile->total_time_counter());
|
||||
SCOPED_SWITCH_TASK_THREAD_LOCAL_MEM_TRACKER(mem_tracker());
|
||||
RETURN_IF_ERROR(ExecNode::open(state));
|
||||
@ -233,6 +234,7 @@ Status VAnalyticEvalNode::close(RuntimeState* state) {
|
||||
if (is_closed()) {
|
||||
return Status::OK();
|
||||
}
|
||||
START_AND_SCOPE_SPAN(state->get_tracer(), span, "VAnalyticEvalNode::close");
|
||||
|
||||
VExpr::close(_partition_by_eq_expr_ctxs, state);
|
||||
VExpr::close(_order_by_eq_expr_ctxs, state);
|
||||
@ -248,6 +250,8 @@ Status VAnalyticEvalNode::get_next(RuntimeState* state, RowBatch* row_batch, boo
|
||||
}
|
||||
|
||||
Status VAnalyticEvalNode::get_next(RuntimeState* state, vectorized::Block* block, bool* eos) {
|
||||
INIT_AND_SCOPE_GET_NEXT_SPAN(state->get_tracer(), _get_next_span,
|
||||
"VAnalyticEvalNode::get_next");
|
||||
SCOPED_TIMER(_runtime_profile->total_time_counter());
|
||||
SCOPED_SWITCH_TASK_THREAD_LOCAL_EXISTED_MEM_TRACKER(mem_tracker());
|
||||
RETURN_IF_CANCELLED(state);
|
||||
@ -466,7 +470,8 @@ Status VAnalyticEvalNode::_fetch_next_block_data(RuntimeState* state) {
|
||||
Block block;
|
||||
RETURN_IF_CANCELLED(state);
|
||||
do {
|
||||
RETURN_IF_ERROR(_children[0]->get_next(state, &block, &_input_eos));
|
||||
RETURN_IF_ERROR_AND_CHECK_SPAN(_children[0]->get_next(state, &block, &_input_eos),
|
||||
_children[0]->get_next_span(), _input_eos);
|
||||
} while (!_input_eos && block.rows() == 0);
|
||||
|
||||
if (_input_eos && block.rows() == 0) {
|
||||
|
||||
Reference in New Issue
Block a user