Skip to content

Conversation

@tigrannajaryan
Copy link
Collaborator

@tigrannajaryan tigrannajaryan commented Sep 24, 2025

Also include trace size in the charts.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR updates benchmark charts with new measurement data by refactoring the traces benchmark test and adding support for conditional attribute sorting based on a sorted parameter. The changes integrate a sorted flag into the span conversion process and reorganize test structure for better chart generation.

  • Added sorted parameter to span2span function to conditionally use MapSorted vs MapUnsorted for attributes
  • Restructured TestTracesMultipart to generate charts and moved it to end of file
  • Updated benchmark HTML with new chart IDs and measurement values

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
go/pdata/traces/otlp2stef.go Adds sorted parameter to span2span function for conditional attribute mapping
docs/benchmarks.html Updates chart IDs, measurement data, and adds new trace benchmark sections
benchmarks/size_test.go Refactors TestTracesMultipart for chart generation and moves to end of file
benchmarks/makefile Updates test pattern to include trace tests with longer benchmark time

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@github-actions
Copy link

github-actions bot commented Sep 24, 2025

Benchmark Result

Benchmark diff with base branch
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │     sec/op     │    sec/op     vs base              │
SerializeNative/STEF/serialize-4                     14.79m ±  3%   13.60m ±  2%  -8.03% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    37.65m ±  5%   37.14m ±  2%  -1.35% (p=0.004 n=6)
DeserializeNative/STEF/deser-4                       2.695m ±  2%   2.651m ±  2%       ~ (p=0.065 n=6)
DeserializeNative/STEFU/deser-4                      7.567m ±  1%   7.577m ±  1%       ~ (p=0.485 n=6)
SerializeFromPdata/STEF/serialize-4                  154.9m ±  5%   144.8m ±  5%  -6.52% (p=0.004 n=6)
SerializeFromPdata/STEFU/serialize-4                 37.95m ±  1%   37.53m ±  1%  -1.11% (p=0.026 n=6)
DeserializeToPdata/STEF/deserialize-4                43.69m ±  1%   43.45m ±  1%       ~ (p=0.240 n=6)
DeserializeToPdata/STEFU/deserialize-4               63.24m ±  1%   63.37m ±  1%       ~ (p=1.000 n=6)
STEFReaderRead-4                                     2.743m ±  1%   2.711m ±  1%  -1.18% (p=0.002 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4        3.799 ±  3%    3.723 ±  3%       ~ (p=0.394 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     79.78m ± 11%   74.18m ± 17%       ~ (p=0.485 n=6)
ReadSTEF-4                                           2.873m ±  1%   2.927m ±  2%  +1.90% (p=0.009 n=6)
ReadSTEFZ-4                                          4.806m ±  1%   4.742m ±  2%  -1.35% (p=0.041 n=6)
ReadSTEFZWriteSTEF-4                                 8.588m ±  1%   9.128m ±  1%  +6.29% (p=0.002 n=6)
geomean                                              23.75m         23.36m        -1.65%

                                                 │ bench-main.txt │           bench-new.txt            │
                                                 │   sec/point    │  sec/point    vs base              │
SerializeNative/STEF/serialize-4                     221.2n ±  3%   203.4n ±  2%  -8.00% (p=0.002 n=6)
SerializeNative/STEFU/serialize-4                    563.0n ±  5%   555.3n ±  2%  -1.36% (p=0.004 n=6)
DeserializeNative/STEF/deser-4                       40.30n ±  2%   39.64n ±  2%       ~ (p=0.065 n=6)
DeserializeNative/STEFU/deser-4                      113.1n ±  1%   113.3n ±  1%       ~ (p=0.457 n=6)
SerializeFromPdata/STEF/serialize-4                  2.317µ ±  5%   2.166µ ±  5%  -6.50% (p=0.004 n=6)
SerializeFromPdata/STEFU/serialize-4                 567.4n ±  1%   561.1n ±  1%  -1.11% (p=0.024 n=6)
DeserializeToPdata/STEF/deserialize-4                653.4n ±  1%   649.9n ±  1%       ~ (p=0.240 n=6)
DeserializeToPdata/STEFU/deserialize-4               945.8n ±  1%   947.7n ±  1%       ~ (p=1.000 n=6)
STEFReaderRead-4                                     41.02n ±  1%   40.54n ±  1%  -1.17% (p=0.002 n=6)
STEFSerializeMultipart/astronomy-otelmetrics-4       4.829µ ±  3%   4.732µ ±  3%       ~ (p=0.372 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4    101.39n ± 11%   94.28n ± 17%       ~ (p=0.485 n=6)
ReadSTEF-4                                           42.99n ±  1%   43.81n ±  2%  +1.90% (p=0.009 n=6)
ReadSTEFZ-4                                          71.94n ±  1%   70.96n ±  2%  -1.35% (p=0.041 n=6)
ReadSTEFZWriteSTEF-4                                 128.5n ±  1%   136.6n ±  1%  +6.34% (p=0.002 n=6)
geomean                                              249.8n         245.7n        -1.64%

                                                 │ bench-main.txt │            bench-new.txt             │
                                                 │      B/op      │     B/op      vs base                │
SerializeNative/STEF/serialize-4                     3.364Mi ± 0%   3.362Mi ± 0%       ~ (p=0.121 n=6)
SerializeNative/STEFU/serialize-4                    7.539Mi ± 0%   7.539Mi ± 0%  +0.00% (p=0.041 n=6)
DeserializeNative/STEF/deser-4                       934.2Ki ± 0%   934.2Ki ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/deser-4                      1.470Mi ± 0%   1.470Mi ± 0%       ~ (p=1.000 n=6)
SerializeFromPdata/STEF/serialize-4                  74.83Mi ± 0%   74.83Mi ± 0%       ~ (p=0.093 n=6)
SerializeFromPdata/STEFU/serialize-4                 7.539Mi ± 0%   7.539Mi ± 0%       ~ (p=0.855 n=6)
DeserializeToPdata/STEF/deserialize-4                29.91Mi ± 0%   29.91Mi ± 0%       ~ (p=0.716 n=6)
DeserializeToPdata/STEFU/deserialize-4               36.53Mi ± 0%   36.53Mi ± 0%       ~ (p=0.366 n=6)
STEFReaderRead-4                                     935.9Ki ± 0%   935.9Ki ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4       3.362Gi ± 0%   3.363Gi ± 0%       ~ (p=0.589 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4     20.40Mi ± 0%   20.40Mi ± 0%       ~ (p=1.000 n=6)
ReadSTEF-4                                           935.9Ki ± 0%   935.9Ki ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZ-4                                          10.27Mi ± 0%   10.27Mi ± 0%       ~ (p=0.065 n=6)
ReadSTEFZWriteSTEF-4                                 13.44Mi ± 0%   13.44Mi ± 0%       ~ (p=0.968 n=6)
geomean                                              10.38Mi        10.38Mi       -0.00%
¹ all samples are equal

                                                 │ bench-main.txt │            bench-new.txt            │
                                                 │   allocs/op    │  allocs/op   vs base                │
SerializeNative/STEF/serialize-4                      2.673k ± 0%   2.669k ± 0%       ~ (p=0.139 n=6)
SerializeNative/STEFU/serialize-4                      879.5 ± 0%    880.0 ± 0%       ~ (p=0.076 n=6)
DeserializeNative/STEF/deser-4                         465.0 ± 0%    465.0 ± 0%       ~ (p=1.000 n=6) ¹
DeserializeNative/STEFU/deser-4                        469.0 ± 0%    469.0 ± 0%       ~ (p=1.000 n=6) ¹
SerializeFromPdata/STEF/serialize-4                   134.7k ± 0%   134.7k ± 0%       ~ (p=0.312 n=6)
SerializeFromPdata/STEFU/serialize-4                   881.0 ± 0%    881.5 ± 0%       ~ (p=0.892 n=6)
DeserializeToPdata/STEF/deserialize-4                 622.5k ± 0%   622.5k ± 0%       ~ (p=1.000 n=6) ¹
DeserializeToPdata/STEFU/deserialize-4                811.2k ± 0%   811.2k ± 0%       ~ (p=1.000 n=6) ¹
STEFReaderRead-4                                       465.0 ± 0%    465.0 ± 0%       ~ (p=1.000 n=6) ¹
STEFSerializeMultipart/astronomy-otelmetrics-4        13.15M ± 0%   13.15M ± 0%       ~ (p=0.193 n=6)
STEFDeserializeMultipart/astronomy-otelmetrics-4      2.293k ± 0%   2.293k ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEF-4                                             465.0 ± 0%    465.0 ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZ-4                                            499.0 ± 0%    499.0 ± 0%       ~ (p=1.000 n=6) ¹
ReadSTEFZWriteSTEF-4                                  1.226k ± 0%   1.226k ± 0%       ~ (p=1.000 n=6)
geomean                                               6.195k        6.195k       -0.00%
¹ all samples are equal
Benchmark result
benchstat bench-new.txt
goos: linux
goarch: amd64
pkg: github.com/splunk/stef/benchmarks
cpu: AMD EPYC 7763 64-Core Processor                
                                                 │ bench-new.txt │
                                                 │    sec/op     │
SerializeNative/STEF/serialize-4                    13.60m ±  2%
SerializeNative/STEFU/serialize-4                   37.14m ±  2%
DeserializeNative/STEF/deser-4                      2.651m ±  2%
DeserializeNative/STEFU/deser-4                     7.577m ±  1%
SerializeFromPdata/STEF/serialize-4                 144.8m ±  5%
SerializeFromPdata/STEFU/serialize-4                37.53m ±  1%
DeserializeToPdata/STEF/deserialize-4               43.45m ±  1%
DeserializeToPdata/STEFU/deserialize-4              63.37m ±  1%
STEFReaderRead-4                                    2.711m ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4       3.723 ±  3%
STEFDeserializeMultipart/astronomy-otelmetrics-4    74.18m ± 17%
ReadSTEF-4                                          2.927m ±  2%
ReadSTEFZ-4                                         4.742m ±  2%
ReadSTEFZWriteSTEF-4                                9.128m ±  1%
geomean                                             23.36m

                                                 │ bench-new.txt │
                                                 │   sec/point   │
SerializeNative/STEF/serialize-4                    203.4n ±  2%
SerializeNative/STEFU/serialize-4                   555.3n ±  2%
DeserializeNative/STEF/deser-4                      39.64n ±  2%
DeserializeNative/STEFU/deser-4                     113.3n ±  1%
SerializeFromPdata/STEF/serialize-4                 2.166µ ±  5%
SerializeFromPdata/STEFU/serialize-4                561.1n ±  1%
DeserializeToPdata/STEF/deserialize-4               649.9n ±  1%
DeserializeToPdata/STEFU/deserialize-4              947.7n ±  1%
STEFReaderRead-4                                    40.54n ±  1%
STEFSerializeMultipart/astronomy-otelmetrics-4      4.732µ ±  3%
STEFDeserializeMultipart/astronomy-otelmetrics-4    94.28n ± 17%
ReadSTEF-4                                          43.81n ±  2%
ReadSTEFZ-4                                         70.96n ±  2%
ReadSTEFZWriteSTEF-4                                136.6n ±  1%
geomean                                             245.7n

                                                 │ bench-new.txt │
                                                 │     B/op      │
SerializeNative/STEF/serialize-4                    3.362Mi ± 0%
SerializeNative/STEFU/serialize-4                   7.539Mi ± 0%
DeserializeNative/STEF/deser-4                      934.2Ki ± 0%
DeserializeNative/STEFU/deser-4                     1.470Mi ± 0%
SerializeFromPdata/STEF/serialize-4                 74.83Mi ± 0%
SerializeFromPdata/STEFU/serialize-4                7.539Mi ± 0%
DeserializeToPdata/STEF/deserialize-4               29.91Mi ± 0%
DeserializeToPdata/STEFU/deserialize-4              36.53Mi ± 0%
STEFReaderRead-4                                    935.9Ki ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4      3.363Gi ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4    20.40Mi ± 0%
ReadSTEF-4                                          935.9Ki ± 0%
ReadSTEFZ-4                                         10.27Mi ± 0%
ReadSTEFZWriteSTEF-4                                13.44Mi ± 0%
geomean                                             10.38Mi

                                                 │ bench-new.txt │
                                                 │   allocs/op   │
SerializeNative/STEF/serialize-4                     2.669k ± 0%
SerializeNative/STEFU/serialize-4                     880.0 ± 0%
DeserializeNative/STEF/deser-4                        465.0 ± 0%
DeserializeNative/STEFU/deser-4                       469.0 ± 0%
SerializeFromPdata/STEF/serialize-4                  134.7k ± 0%
SerializeFromPdata/STEFU/serialize-4                  881.5 ± 0%
DeserializeToPdata/STEF/deserialize-4                622.5k ± 0%
DeserializeToPdata/STEFU/deserialize-4               811.2k ± 0%
STEFReaderRead-4                                      465.0 ± 0%
STEFSerializeMultipart/astronomy-otelmetrics-4       13.15M ± 0%
STEFDeserializeMultipart/astronomy-otelmetrics-4     2.293k ± 0%
ReadSTEF-4                                            465.0 ± 0%
ReadSTEFZ-4                                           499.0 ± 0%
ReadSTEFZWriteSTEF-4                                 1.226k ± 0%
geomean                                              6.195k

@tigrannajaryan tigrannajaryan force-pushed the tigran/updatecharts branch 2 times, most recently from 96c660a to 5e14c34 Compare September 24, 2025 19:01
Also include trace size in the charts.
@tigrannajaryan tigrannajaryan merged commit 0c5e2f1 into main Sep 25, 2025
11 checks passed
@tigrannajaryan tigrannajaryan deleted the tigran/updatecharts branch September 25, 2025 15:02
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.

2 participants