Skip to content

[TraceQL] Add trace level intrinsics#2503

Merged
joe-elliott merged 16 commits intografana:mainfrom
joe-elliott:new-intrinsics
May 25, 2023
Merged

[TraceQL] Add trace level intrinsics#2503
joe-elliott merged 16 commits intografana:mainfrom
joe-elliott:new-intrinsics

Conversation

@joe-elliott
Copy link
Copy Markdown
Collaborator

What this PR does:
This PR adds trace level intrinsics: traceDuration, rootServiceName and rootName.

Which issue(s) this PR fixes:
This is not quite the same as adding a scope but it does address the major needs in #1989

Checklist

  • Tests updated
  • Documentation added
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
@joe-elliott
Copy link
Copy Markdown
Collaborator Author

async iterator benchmarks are showing an unfortunate increase in memory usage:

name                                                old time/op    new time/op     delta
BackendBlockTraceQL/spanAttNameNoMatch-8              25.8ms ± 2%     26.5ms ± 2%   +2.64%  (p=0.016 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8               34.7ms ± 3%     35.1ms ± 5%     ~     (p=0.548 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                  627ms ±14%      449ms ± 2%  -28.48%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8         26.3ms ± 2%     22.2ms ± 2%  -15.46%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8            502ms ± 4%      396ms ± 2%  -21.10%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8    27.0ms ± 1%     23.2ms ± 2%  -14.16%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8       732ms ± 2%      607ms ± 1%  -17.12%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8          13.5ms ± 2%     11.5ms ± 2%  -14.65%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8           53.2ms ± 2%     40.8ms ± 2%  -23.19%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8              635ms ± 4%      490ms ± 2%  -22.80%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8     12.7ms ± 4%     11.0ms ± 3%  -13.53%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8        443ms ± 1%      369ms ± 8%  -16.68%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8                 6.83s ± 1%      6.70s ± 8%     ~     (p=0.841 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                  4.41s ± 1%      4.45s ± 1%     ~     (p=0.222 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8           13.5ms ± 2%     14.3ms ± 1%   +5.62%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8             4.69s ± 1%      4.71s ± 1%     ~     (p=0.690 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8               12.7ms ± 2%     13.4ms ± 1%   +5.57%  (p=0.016 n=4+5)

name                                                old speed      new speed       delta
BackendBlockTraceQL/spanAttNameNoMatch-8             506MB/s ± 2%    503MB/s ± 2%     ~     (p=0.548 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8              549MB/s ± 3%    549MB/s ± 5%     ~     (p=0.548 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8               29.7MB/s ± 3%   43.6MB/s ± 2%  +46.77%  (p=0.016 n=4+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8        457MB/s ± 2%    552MB/s ± 2%  +20.90%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8          314MB/s ± 3%    397MB/s ± 2%  +26.70%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8   445MB/s ± 1%    530MB/s ± 2%  +19.09%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8     215MB/s ± 2%    259MB/s ± 1%  +20.65%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8         427MB/s ± 2%    524MB/s ± 2%  +22.60%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8          394MB/s ± 2%    520MB/s ± 2%  +31.83%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8            314MB/s ± 4%    406MB/s ± 2%  +29.50%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8   89.1MB/s ± 4%  127.2MB/s ± 3%  +42.74%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8      387MB/s ± 1%    466MB/s ± 8%  +20.28%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8              9.02MB/s ± 1%   9.26MB/s ± 8%     ~     (p=0.841 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8               14.0MB/s ± 1%   13.9MB/s ± 1%     ~     (p=0.389 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8          426MB/s ± 2%    422MB/s ± 1%     ~     (p=0.222 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8          40.1MB/s ± 1%   40.0MB/s ± 1%     ~     (p=0.690 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8             85.7MB/s ±15%  104.1MB/s ± 1%  +21.50%  (p=0.008 n=5+5)

name                                                old MB_io/op   new MB_io/op    delta
BackendBlockTraceQL/spanAttNameNoMatch-8                13.0 ± 0%       13.3 ± 0%   +2.07%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8                 19.0 ± 0%       19.3 ± 0%   +1.42%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                   19.3 ± 0%       19.6 ± 0%   +1.40%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8           12.0 ± 0%       12.3 ± 0%   +2.17%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8              157 ± 0%        157 ± 0%     ~     (all equal)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8      12.0 ± 0%       12.3 ± 0%   +2.17%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8         157 ± 0%        157 ± 0%     ~     (all equal)
BackendBlockTraceQL/resourceAttNameNoMatch-8            5.75 ± 0%       6.01 ± 0%   +4.63%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8             21.0 ± 0%       21.2 ± 0%   +1.24%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8                199 ± 0%        199 ± 0%     ~     (all equal)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8       1.13 ± 0%       1.40 ± 0%  +23.52%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8          172 ± 0%        172 ± 0%     ~     (all equal)
BackendBlockTraceQL/mixedNameNoMatch-8                  61.6 ± 0%       61.9 ± 0%   +0.44%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                   61.6 ± 0%       61.9 ± 0%   +0.44%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8             5.75 ± 0%       6.01 ± 0%   +4.63%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8               188 ± 0%        188 ± 0%     ~     (all equal)
BackendBlockTraceQL/mixedValBothMatch-8                 1.13 ± 0%       1.40 ± 0%  +23.52%  (p=0.008 n=5+5)

name                                                old alloc/op   new alloc/op    delta
BackendBlockTraceQL/spanAttNameNoMatch-8              3.59MB ± 5%     5.18MB ± 5%  +44.20%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8               16.3MB ± 2%     16.7MB ± 1%   +2.74%  (p=0.016 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                 6.91MB ±15%     6.89MB ±21%     ~     (p=1.000 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8         4.02MB ± 5%     5.29MB ± 5%  +31.61%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8           25.6MB ±13%     23.0MB ±22%     ~     (p=0.222 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8    4.25MB ± 5%     5.79MB ± 2%  +36.26%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8      29.5MB ±12%     29.5MB ±11%     ~     (p=1.000 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8          3.20MB ± 4%     4.55MB ± 5%  +42.20%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8           32.7MB ± 0%     32.1MB ± 1%   -1.76%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8             59.3MB ± 7%     54.7MB ± 6%     ~     (p=0.095 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8     3.18MB ± 5%     4.53MB ± 3%  +42.16%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8       25.9MB ± 7%     26.1MB ± 6%     ~     (p=1.000 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8                48.6MB ± 7%     48.0MB ± 4%     ~     (p=0.841 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                 53.1MB ± 5%     51.1MB ± 5%     ~     (p=0.151 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8           3.17MB ± 4%     4.29MB ± 4%  +35.31%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8            73.7MB ±11%     60.5MB ± 5%  -17.86%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8               3.17MB ± 4%     4.38MB ± 3%  +38.22%  (p=0.008 n=5+5)

name                                                old allocs/op  new allocs/op   delta
BackendBlockTraceQL/spanAttNameNoMatch-8               45.2k ± 0%      54.3k ± 0%  +20.05%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8                45.7k ± 0%      54.7k ± 0%  +19.80%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                  61.8k ± 0%      70.8k ± 0%  +14.60%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8          45.3k ± 0%      54.4k ± 0%  +20.01%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8             877k ± 0%       848k ± 0%   -3.33%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8     49.7k ± 0%      58.8k ± 0%  +18.25%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8        915k ± 0%       886k ± 0%   -3.19%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8           44.8k ± 0%      53.9k ± 0%  +20.24%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8            45.8k ± 0%      54.8k ± 0%  +19.66%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8              1.28M ± 0%      1.25M ± 0%   -2.29%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8      44.3k ± 0%      53.4k ± 0%  +20.49%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8        1.17M ± 0%      1.11M ± 1%   -5.08%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8                 53.3k ± 0%      62.3k ± 0%  +16.86%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                   100k ± 0%       109k ± 0%   +8.86%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8            44.8k ± 0%      53.9k ± 0%  +20.23%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8              884k ± 0%       854k ± 0%   -3.33%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8                44.3k ± 0%      53.4k ± 0%  +20.48%  (p=0.008 n=5+5)

sync iterator benchmarks are seeing a small, but expected increase in memory usage:

name                                                old time/op    new time/op    delta
BackendBlockTraceQL/spanAttNameNoMatch-8              23.7ms ± 1%    26.3ms ±13%     ~     (p=0.151 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8               29.6ms ± 1%    28.9ms ± 1%   -2.39%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                  465ms ± 2%     430ms ± 2%   -7.57%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8         21.2ms ±10%    18.2ms ± 1%  -13.79%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8            410ms ± 1%     366ms ± 2%  -10.54%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8    22.3ms ± 1%    19.1ms ± 3%  -14.02%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8       621ms ± 1%     566ms ± 2%   -8.84%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8          11.1ms ± 1%     9.3ms ± 1%  -16.21%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8           40.3ms ± 1%    33.0ms ± 0%  -18.03%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8              628ms ± 0%     577ms ± 2%   -8.11%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8     10.5ms ± 1%     8.8ms ± 1%  -15.65%  (p=0.016 n=4+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8        223ms ± 3%     205ms ± 2%   -7.96%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8                 4.14s ± 3%     3.86s ± 3%   -6.94%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                  3.42s ± 3%     3.13s ± 2%   -8.40%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8           11.1ms ±13%     9.3ms ± 1%  -15.89%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8             3.16s ± 1%     3.27s ± 2%   +3.47%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8               9.71ms ± 1%    8.87ms ± 1%   -8.60%  (p=0.008 n=5+5)

name                                                old speed      new speed      delta
BackendBlockTraceQL/spanAttNameNoMatch-8             551MB/s ± 1%   509MB/s ±14%     ~     (p=0.151 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8              643MB/s ± 1%   668MB/s ± 1%   +3.88%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8               41.5MB/s ± 2%  45.5MB/s ± 2%   +9.68%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8        554MB/s ± 1%   672MB/s ± 1%  +21.41%  (p=0.016 n=4+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8          348MB/s ± 1%   389MB/s ± 2%  +11.79%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8   539MB/s ± 1%   641MB/s ± 3%  +18.89%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8     230MB/s ± 1%   252MB/s ± 2%   +9.74%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8         520MB/s ± 1%   649MB/s ± 1%  +24.86%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8          508MB/s ± 1%   628MB/s ± 0%  +23.58%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8            300MB/s ± 0%   326MB/s ± 2%   +8.84%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8    108MB/s ± 1%   158MB/s ± 1%  +46.43%  (p=0.016 n=4+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8      660MB/s ± 3%   717MB/s ± 2%   +8.62%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8              14.9MB/s ± 3%  16.1MB/s ± 3%   +7.96%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8               18.0MB/s ± 3%  19.8MB/s ± 2%   +9.62%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8          522MB/s ±12%   646MB/s ± 1%  +23.85%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8          55.0MB/s ± 1%  53.1MB/s ± 2%   -3.33%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8              117MB/s ± 1%   157MB/s ± 1%  +35.14%  (p=0.008 n=5+5)

name                                                old MB_io/op   new MB_io/op   delta
BackendBlockTraceQL/spanAttNameNoMatch-8                13.0 ± 0%      13.3 ± 0%   +2.07%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8                 19.0 ± 0%      19.3 ± 0%   +1.42%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                   19.3 ± 0%      19.6 ± 0%   +1.40%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8           12.0 ± 0%      12.3 ± 0%   +2.17%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8              143 ± 0%       143 ± 0%     ~     (all equal)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8      12.0 ± 0%      12.3 ± 0%   +2.17%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8         143 ± 0%       143 ± 0%     ~     (all equal)
BackendBlockTraceQL/resourceAttNameNoMatch-8            5.75 ± 0%      6.01 ± 0%   +4.63%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8             20.5 ± 0%      20.7 ± 0%   +1.27%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8                188 ± 0%       188 ± 0%     ~     (all equal)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8       1.13 ± 0%      1.40 ± 0%  +23.52%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8          147 ± 0%       147 ± 0%     ~     (all equal)
BackendBlockTraceQL/mixedNameNoMatch-8                  61.6 ± 0%      61.9 ± 0%   +0.44%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                   61.6 ± 0%      61.9 ± 0%   +0.44%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8             5.75 ± 0%      6.01 ± 0%   +4.63%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8               174 ± 0%       174 ± 0%     ~     (all equal)
BackendBlockTraceQL/mixedValBothMatch-8                 1.13 ± 0%      1.40 ± 0%  +23.52%  (p=0.008 n=5+5)

name                                                old alloc/op   new alloc/op   delta
BackendBlockTraceQL/spanAttNameNoMatch-8              3.47MB ± 5%    3.26MB ± 5%     ~     (p=0.056 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8               15.1MB ± 1%    14.5MB ± 1%   -3.78%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                 3.62MB ±33%    3.47MB ±15%     ~     (p=0.381 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8         3.92MB ± 3%    3.64MB ± 3%   -7.21%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8           7.04MB ±29%    7.06MB ±13%     ~     (p=0.690 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8    4.34MB ± 4%    4.07MB ± 3%   -6.32%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8      11.6MB ±19%    10.8MB ±16%     ~     (p=0.548 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8          3.23MB ± 2%    3.02MB ± 1%   -6.44%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValNoMatch-8           30.1MB ± 2%    28.8MB ± 1%   -4.27%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8             31.9MB ± 4%    31.5MB ± 4%     ~     (p=0.548 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8     3.22MB ± 4%    2.98MB ± 2%   -7.63%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8       6.15MB ±12%    6.59MB ± 7%     ~     (p=0.421 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8                43.9MB ± 9%    44.4MB ± 6%     ~     (p=0.548 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                 46.6MB ± 7%    46.3MB ±13%     ~     (p=0.841 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8           3.21MB ± 5%    3.04MB ± 2%   -5.34%  (p=0.016 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8            47.3MB ±13%    38.4MB ±10%  -18.84%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValBothMatch-8               3.17MB ± 3%    3.01MB ± 1%   -5.12%  (p=0.008 n=5+5)

name                                                old allocs/op  new allocs/op  delta
BackendBlockTraceQL/spanAttNameNoMatch-8               45.3k ± 0%     45.4k ± 0%   +0.32%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValNoMatch-8                45.6k ± 0%     45.7k ± 0%   +0.27%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttValMatch-8                  61.5k ± 0%     61.6k ± 0%   +0.23%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicNoMatch-8          45.4k ± 0%     45.5k ± 0%   +0.31%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicMatch-8            62.0k ± 0%     61.8k ± 0%   -0.33%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexNoMatch-8     49.8k ± 0%     49.9k ± 0%   +0.28%  (p=0.008 n=5+5)
BackendBlockTraceQL/spanAttIntrinsicRegexMatch-8        100k ± 0%      100k ± 0%   -0.20%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttNameNoMatch-8           44.9k ± 0%     45.0k ± 0%   +0.32%  (p=0.016 n=5+4)
BackendBlockTraceQL/resourceAttValNoMatch-8            45.6k ± 0%     45.7k ± 0%   +0.23%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttValMatch-8              63.7k ± 0%     63.4k ± 0%   -0.55%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicNoMatch-8      44.3k ± 0%     44.5k ± 0%   +0.32%  (p=0.008 n=5+5)
BackendBlockTraceQL/resourceAttIntrinsicMatch-8        60.0k ± 0%     59.7k ± 0%   -0.51%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedNameNoMatch-8                 53.6k ± 0%     53.7k ± 0%   +0.18%  (p=0.024 n=5+5)
BackendBlockTraceQL/mixedValNoMatch-8                   101k ± 0%      101k ± 0%     ~     (p=0.841 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchAnd-8            44.9k ± 0%     45.0k ± 0%   +0.32%  (p=0.008 n=5+5)
BackendBlockTraceQL/mixedValMixedMatchOr-8             68.6k ± 0%     68.4k ± 0%   -0.39%  (p=0.016 n=4+5)
BackendBlockTraceQL/mixedValBothMatch-8                44.3k ± 0%     44.5k ± 0%   +0.33%  (p=0.016 n=5+4)

Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
case columnPathDurationNanos:
finalSpanset.DurationNanos = e.Value.Uint64()
initAttrs()
traceAttrs[traceql.NewIntrinsic(traceql.IntrinsicTraceDuration)] = traceql.NewStaticDuration(time.Duration(finalSpanset.DurationNanos))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few thoughts on this:

  • This copies the trace-level attributes to the span even if they aren't part of the query, just retrieved as basic metadata. Do we need to do that?
  • This is likely the source of increased mem usage. The local map var could be a reusable buffer on the collector.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At the fetch layer can we tell the difference? My thought was this only really negatively impacts the second pass which is significantly less important than the first pass. I figured handling different cases would not be worth the code grossness.

Good call on the reusable map.

Comment thread docs/sources/tempo/traceql/_index.md Outdated
Copy link
Copy Markdown
Contributor

@knylander-grafana knylander-grafana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding docs. The updates look good. I've added a suggestion for admonition shortcodes.

joe-elliott and others added 3 commits May 24, 2023 13:31
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Co-authored-by: Kim Nylander <104772500+knylander-grafana@users.noreply.github.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
@joe-elliott joe-elliott requested a review from mdisibio May 25, 2023 12:27
Comment thread pkg/traceql/engine.go
attribute.Intrinsic == IntrinsicDuration ||
attribute.Intrinsic == IntrinsicTraceDuration ||
attribute.Intrinsic == IntrinsicTraceRootService ||
attribute.Intrinsic == IntrinsicTraceRootSpan {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Ah ok I missed this before. We could probably simplify the Span interface and put the intrinsics just in the map and not dedicated fields in the future.

@joe-elliott joe-elliott merged commit 991d722 into grafana:main May 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants