Coverage Report

Created: 2026-01-02 11:50

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/root/doris/be/src/util/trace.h
Line
Count
Source
1
// Licensed to the Apache Software Foundation (ASF) under one
2
// or more contributor license agreements.  See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership.  The ASF licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License.  You may obtain a copy of the License at
8
//
9
//   http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied.  See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
#pragma once
18
19
#include <butil/macros.h>
20
21
// If this scope times out, make a simple trace.
22
// It will log the cost time only.
23
// Timeout is chrono duration struct, eg: 5ms, 100 * 1s.
24
#define SCOPED_SIMPLE_TRACE_IF_TIMEOUT(timeout) \
25
8.01M
    SCOPED_SIMPLE_TRACE_TO_STREAM_IF_TIMEOUT(timeout, LOG(WARNING))
26
27
// If this scope times out, then put simple trace to the stream.
28
// Timeout is chrono duration struct, eg: 5ms, 100 * 1s.
29
// For example:
30
//
31
//    std::string tag = "[foo]";
32
//    SCOPED_SIMPLE_TRACE_TO_STREAM_IF_TIMEOUT(5s, LOG(INFO) << tag);
33
//
34
#define SCOPED_SIMPLE_TRACE_TO_STREAM_IF_TIMEOUT(timeout, stream)                       \
35
8.01M
    using namespace std::chrono_literals;                                               \
36
8.01M
    auto VARNAME_LINENUM(scoped_simple_trace) = doris::MonotonicMicros();               \
37
8.01M
    Defer trace_defer = [&] {                                                           \
38
8.00M
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
8.00M
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
8.00M
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
8.00M
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
8.00M
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
8.00M
    };
compaction.cpp:_ZZN5doris15CompactionMixin14modify_rowsetsEvENK3$_1clEv
Line
Count
Source
37
6.12k
    Defer trace_defer = [&] {                                                           \
38
6.12k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
6.12k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
6.12k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
6.12k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
6.12k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
6.12k
    };
compaction.cpp:_ZZN5doris15CompactionMixin14modify_rowsetsEvENK3$_2clEv
Line
Count
Source
37
24.5k
    Defer trace_defer = [&] {                                                           \
38
24.5k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
24.5k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
24.5k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
24.5k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
24.5k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
24.5k
    };
Unexecuted instantiation: cold_data_compaction.cpp:_ZZN5doris18ColdDataCompaction14modify_rowsetsEvENK3$_0clEv
rowset.cpp:_ZZN5doris6Rowset11clear_cacheEvENK3$_0clEv
Line
Count
Source
37
1.56M
    Defer trace_defer = [&] {                                                           \
38
1.56M
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
1.56M
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
1.56M
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
1.56M
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
1.56M
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
1.56M
    };
rowset.cpp:_ZZN5doris6Rowset11clear_cacheEvENK3$_1clEv
Line
Count
Source
37
1.56M
    Defer trace_defer = [&] {                                                           \
38
1.56M
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
1.56M
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
1.56M
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
1.56M
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
1.56M
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
1.56M
    };
schema_change.cpp:_ZZN5doris15SchemaChangeJob24_do_process_alter_tabletERKNS_17TAlterTabletReqV2EENK3$_2clEv
Line
Count
Source
37
24.9k
    Defer trace_defer = [&] {                                                           \
38
24.9k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
24.9k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
24.9k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
24.9k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
24.9k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
24.9k
    };
schema_change.cpp:_ZZN5doris15SchemaChangeJob24_do_process_alter_tabletERKNS_17TAlterTabletReqV2EENK3$_3clEv
Line
Count
Source
37
22.5k
    Defer trace_defer = [&] {                                                           \
38
22.5k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
22.5k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
22.5k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
22.5k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
22.5k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
22.5k
    };
schema_change.cpp:_ZZZN5doris15SchemaChangeJob27_convert_historical_rowsetsERKNS_18SchemaChangeParamsEPlENK3$_0clEvENKUlvE_clEv
Line
Count
Source
37
24.9k
    Defer trace_defer = [&] {                                                           \
38
24.9k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
24.9k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
24.9k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
24.9k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
24.9k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
24.9k
    };
schema_change.cpp:_ZZN5doris15SchemaChangeJob33_calc_delete_bitmap_for_mow_tableElENK3$_0clEv
Line
Count
Source
37
2.26k
    Defer trace_defer = [&] {                                                           \
38
2.26k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
2.26k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
2.26k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
2.26k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
2.26k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
2.26k
    };
tablet.cpp:_ZZN5doris6Tablet10add_rowsetESt10shared_ptrINS_6RowsetEEENK3$_0clEv
Line
Count
Source
37
586k
    Defer trace_defer = [&] {                                                           \
38
586k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
586k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
586k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
586k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
586k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
586k
    };
tablet.cpp:_ZZN5doris6Tablet14add_inc_rowsetERKSt10shared_ptrINS_6RowsetEEENK3$_0clEv
Line
Count
Source
37
650k
    Defer trace_defer = [&] {                                                           \
38
650k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
650k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
650k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
650k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
650k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
650k
    };
tablet.cpp:_ZZN5doris6Tablet27delete_expired_stale_rowsetEvENK3$_0clEv
Line
Count
Source
37
2.34M
    Defer trace_defer = [&] {                                                           \
38
2.34M
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
2.34M
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
2.34M
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
2.34M
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
2.34M
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
2.34M
    };
tablet.cpp:_ZZN5doris6Tablet26calculate_cumulative_pointEvENK3$_0clEv
Line
Count
Source
37
539k
    Defer trace_defer = [&] {                                                           \
38
539k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
539k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
539k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
539k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
539k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
539k
    };
tablet.cpp:_ZZN5doris6Tablet14_cooldown_dataESt10shared_ptrINS_6RowsetEEENK3$_1clEv
Line
Count
Source
37
9
    Defer trace_defer = [&] {                                                           \
38
9
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
9
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
9
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
9
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
9
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
9
    };
tablet.cpp:_ZZN5doris6Tablet14_cooldown_dataESt10shared_ptrINS_6RowsetEEENK3$_2clEv
Line
Count
Source
37
9
    Defer trace_defer = [&] {                                                           \
38
9
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
9
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
9
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
9
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
9
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
9
    };
Unexecuted instantiation: tablet.cpp:_ZZN5doris6Tablet23_follow_cooldowned_dataEvENK3$_0clEv
Unexecuted instantiation: tablet.cpp:_ZZN5doris6Tablet23_follow_cooldowned_dataEvENK3$_1clEv
Unexecuted instantiation: tablet.cpp:_ZZN5doris6Tablet25update_max_version_schemaERKSt10shared_ptrINS_12TabletSchemaEEENK3$_0clEv
tablet.cpp:_ZZN5doris6Tablet11clear_cacheEvENK3$_0clEv
Line
Count
Source
37
425k
    Defer trace_defer = [&] {                                                           \
38
425k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
425k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
425k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
425k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
425k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
425k
    };
full_compaction.cpp:_ZZN5doris14FullCompaction14modify_rowsetsEvENK3$_0clEv
Line
Count
Source
37
48
    Defer trace_defer = [&] {                                                           \
38
48
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
48
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
48
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
48
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
48
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
48
    };
tablet_manager.cpp:_ZZN5doris13TabletManager12_drop_tabletEllbbbENK3$_1clEv
Line
Count
Source
37
224k
    Defer trace_defer = [&] {                                                           \
38
224k
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
224k
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
224k
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
224k
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
224k
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
224k
    };
Unexecuted instantiation: engine_clone_task.cpp:_ZZN5doris15EngineCloneTask13_finish_cloneEPNS_6TabletERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEElbENK3$_2clEv
index_builder.cpp:_ZZN5doris12IndexBuilder14modify_rowsetsEPKNS_6Merger10StatisticsEENK3$_1clEv
Line
Count
Source
37
159
    Defer trace_defer = [&] {                                                           \
38
159
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
159
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
159
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
159
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
159
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
159
    };
pad_rowset_action.cpp:_ZZN5doris15PadRowsetAction11_pad_rowsetEPNS_6TabletERKNS_7VersionEENK3$_0clEv
Line
Count
Source
37
1
    Defer trace_defer = [&] {                                                           \
38
1
        auto VARNAME_LINENUM(timeout_us) =                                              \
39
1
                std::chrono::duration_cast<std::chrono::microseconds>(timeout).count(); \
40
1
        auto VARNAME_LINENUM(cost_us) =                                                 \
41
1
                doris::MonotonicMicros() - VARNAME_LINENUM(scoped_simple_trace);        \
42
1
        if (VARNAME_LINENUM(cost_us) >= VARNAME_LINENUM(timeout_us)) {                  \
43
0
            stream << "Simple trace cost(us): " << VARNAME_LINENUM(cost_us);            \
44
0
        }                                                                               \
45
1
    };