Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize evictedQueue implementation and use #2556

Merged
merged 4 commits into from
Jan 27, 2022

Conversation

MrAlias
Copy link
Contributor

@MrAlias MrAlias commented Jan 26, 2022

Taken from performance improvements identified in #2402.

  • Avoid unnecessary allocations in the recordingSpan by using an evictedQueue type instead of a pointer to one.
  • Lazy allocate the evictedQueue queue to prevent unnecessary operations for spans without any use of the queue.
  • Document the evictedQueue

Testing Performance

This looks to avoid 4 allocations for spans that do not add events or links and includes memory/allocation improvements for those that do.

cd sdk/trace && go test -bench=.

goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/sdk/trace
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
BenchmarkAttributesMapToKeyValue-8         	  397270	      2850 ns/op
BenchmarkSpanProcessor-8                   	   98577	     11676 ns/op	   10352 B/op	      65 allocs/op
BenchmarkSpanProcessorVerboseLogging-8     	   94104	     12617 ns/op	   11496 B/op	      71 allocs/op
BenchmarkStartEndSpan/AlwaysSample-8       	 1582981	       779.1 ns/op	     624 B/op	       5 allocs/op
BenchmarkStartEndSpan/NeverSample-8        	 4077541	       289.7 ns/op	     128 B/op	       2 allocs/op
BenchmarkSpanWithAttributes_4/AlwaysSample-8         	  701468	      1652 ns/op	    1536 B/op	      15 allocs/op
BenchmarkSpanWithAttributes_4/NeverSample-8          	 2698389	       461.1 ns/op	     384 B/op	       3 allocs/op
BenchmarkSpanWithAttributes_8/AlwaysSample-8         	  415170	      2697 ns/op	    2240 B/op	      23 allocs/op
BenchmarkSpanWithAttributes_8/NeverSample-8          	 1877380	       629.1 ns/op	     640 B/op	       3 allocs/op
BenchmarkSpanWithAttributes_all/AlwaysSample-8       	  569984	      1877 ns/op	    1712 B/op	      17 allocs/op
BenchmarkSpanWithAttributes_all/NeverSample-8        	 2605310	       493.1 ns/op	     448 B/op	       3 allocs/op
BenchmarkSpanWithAttributes_all_2x/AlwaysSample-8    	  357108	      3231 ns/op	    3012 B/op	      28 allocs/op
BenchmarkSpanWithAttributes_all_2x/NeverSample-8     	 1982054	       632.0 ns/op	     768 B/op	       3 allocs/op
BenchmarkSpanWithEvents_4/AlwaysSample-8             	  762336	      1542 ns/op	    1056 B/op	      12 allocs/op
BenchmarkSpanWithEvents_4/NeverSample-8              	 4106401	       292.6 ns/op	     128 B/op	       2 allocs/op
BenchmarkSpanWithEvents_8/AlwaysSample-8             	  531265	      2231 ns/op	    1504 B/op	      17 allocs/op
BenchmarkSpanWithEvents_8/NeverSample-8              	 3971354	       303.8 ns/op	     128 B/op	       2 allocs/op
BenchmarkSpanWithEvents_WithStackTrace/AlwaysSample-8         	 1000000	      1043 ns/op	     736 B/op	       8 allocs/op
BenchmarkSpanWithEvents_WithStackTrace/NeverSample-8          	 3605416	       327.2 ns/op	     144 B/op	       3 allocs/op
BenchmarkSpanWithEvents_WithTimestamp/AlwaysSample-8          	 1000000	      1018 ns/op	     760 B/op	       9 allocs/op
BenchmarkSpanWithEvents_WithTimestamp/NeverSample-8           	 3178768	       393.5 ns/op	     168 B/op	       4 allocs/op
BenchmarkTraceID_DotString-8                                  	15191973	        75.54 ns/op
BenchmarkSpanID_DotString-8                                   	20735128	        57.35 ns/op
PASS

Reference: main branch benchmarks

goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/sdk/trace
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
BenchmarkAttributesMapToKeyValue-8         	  398217	      2914 ns/op
BenchmarkSpanProcessor-8                   	   88304	     13970 ns/op	   12592 B/op	     105 allocs/op
BenchmarkSpanProcessorVerboseLogging-8     	   83248	     13659 ns/op	   13736 B/op	     111 allocs/op
BenchmarkStartEndSpan/AlwaysSample-8       	 1000000	      1000 ns/op	     848 B/op	       9 allocs/op
BenchmarkStartEndSpan/NeverSample-8        	 3449281	       368.1 ns/op	     224 B/op	       3 allocs/op
BenchmarkSpanWithAttributes_4/AlwaysSample-8         	  626064	      1811 ns/op	    1760 B/op	      19 allocs/op
BenchmarkSpanWithAttributes_4/NeverSample-8          	 2442355	       486.2 ns/op	     480 B/op	       4 allocs/op
BenchmarkSpanWithAttributes_8/AlwaysSample-8         	  449365	      2646 ns/op	    2464 B/op	      27 allocs/op
BenchmarkSpanWithAttributes_8/NeverSample-8          	 1877700	       631.6 ns/op	     736 B/op	       4 allocs/op
BenchmarkSpanWithAttributes_all/AlwaysSample-8       	  585984	      1931 ns/op	    1936 B/op	      21 allocs/op
BenchmarkSpanWithAttributes_all/NeverSample-8        	 2300470	       513.6 ns/op	     544 B/op	       4 allocs/op
BenchmarkSpanWithAttributes_all_2x/AlwaysSample-8    	  333524	      3456 ns/op	    3236 B/op	      32 allocs/op
BenchmarkSpanWithAttributes_all_2x/NeverSample-8     	 1729068	       696.2 ns/op	     864 B/op	       4 allocs/op
BenchmarkSpanWithEvents_4/AlwaysSample-8             	  577074	      1978 ns/op	    1536 B/op	      20 allocs/op
BenchmarkSpanWithEvents_4/NeverSample-8              	 3241960	       374.9 ns/op	     224 B/op	       3 allocs/op
BenchmarkSpanWithEvents_8/AlwaysSample-8             	  363082	      3137 ns/op	    2240 B/op	      29 allocs/op
BenchmarkSpanWithEvents_8/NeverSample-8              	 2901153	       384.8 ns/op	     224 B/op	       3 allocs/op
BenchmarkSpanWithEvents_WithStackTrace/AlwaysSample-8         	  866670	      1420 ns/op	    1024 B/op	      13 allocs/op
BenchmarkSpanWithEvents_WithStackTrace/NeverSample-8          	 2716603	       437.5 ns/op	     240 B/op	       4 allocs/op
BenchmarkSpanWithEvents_WithTimestamp/AlwaysSample-8          	  971718	      1337 ns/op	    1048 B/op	      14 allocs/op
BenchmarkSpanWithEvents_WithTimestamp/NeverSample-8           	 2532778	       484.3 ns/op	     264 B/op	       5 allocs/op
BenchmarkTraceID_DotString-8                                  	14741889	        80.00 ns/op
BenchmarkSpanID_DotString-8                                   	19892643	        58.77 ns/op
PASS

Avoid unnecessary allocations in the recordingSpan by using an
evictedQueue type instead of a pointer to one.

Lazy allocate the evictedQueue queue to prevent unnecessary operations
for spans without any use of the queue.

Document the evictedQueue
@MrAlias MrAlias added the Skip Changelog PRs that do not require a CHANGELOG.md entry label Jan 26, 2022
@codecov
Copy link

codecov bot commented Jan 26, 2022

Codecov Report

Merging #2556 (f204295) into main (310c7be) will decrease coverage by 0.0%.
The diff coverage is 100.0%.

Impacted file tree graph

@@           Coverage Diff           @@
##            main   #2556     +/-   ##
=======================================
- Coverage   76.0%   76.0%   -0.1%     
=======================================
  Files        173     173             
  Lines      12073   12071      -2     
=======================================
- Hits        9176    9174      -2     
  Misses      2652    2652             
  Partials     245     245             
Impacted Files Coverage Δ
sdk/trace/span.go 82.0% <ø> (ø)
sdk/trace/evictedqueue.go 100.0% <100.0%> (ø)

@MadVikingGod
Copy link
Contributor

I ran the branch through benchstat to give a more detailed view of the differences. It looks great!

benchstat bench-main bench-branch 
name                                          old time/op    new time/op    delta
AttributesMapToKeyValue-4                       4.68µs ±55%    4.11µs ± 7%  -12.10%  (p=0.004 n=8+10)
SpanProcessor-4                                 22.3µs ±64%    17.7µs ± 6%  -20.65%  (p=0.001 n=9+10)
SpanProcessorVerboseLogging-4                   25.4µs ±71%    18.1µs ±11%  -28.72%  (p=0.000 n=10+10)
StartEndSpan/AlwaysSample-4                     1.27µs ±21%    1.06µs ± 3%  -16.72%  (p=0.000 n=8+8)
StartEndSpan/NeverSample-4                       441ns ±17%     429ns ± 7%     ~     (p=0.650 n=8+10)
SpanWithAttributes_4/AlwaysSample-4             3.05µs ±74%    2.26µs ±10%  -25.73%  (p=0.009 n=10+10)
SpanWithAttributes_4/NeverSample-4               821ns ±66%     608ns ± 5%     ~     (p=0.859 n=10+9)
SpanWithAttributes_8/AlwaysSample-4             4.65µs ±95%    3.39µs ±12%  -27.16%  (p=0.035 n=10+10)
SpanWithAttributes_8/NeverSample-4              1.09µs ±84%    0.81µs ± 7%     ~     (p=0.529 n=10+10)
SpanWithAttributes_all/AlwaysSample-4           3.55µs ±69%    2.37µs ± 6%  -33.25%  (p=0.000 n=10+9)
SpanWithAttributes_all/NeverSample-4             895ns ±74%     661ns ± 8%     ~     (p=0.123 n=10+10)
SpanWithAttributes_all_2x/AlwaysSample-4        5.05µs ±53%    4.28µs ± 6%  -15.37%  (p=0.031 n=9+9)
SpanWithAttributes_all_2x/NeverSample-4         1.17µs ±80%    0.88µs ±10%     ~     (p=0.123 n=10+10)
SpanWithEvents_4/AlwaysSample-4                 3.18µs ±62%    2.44µs ± 7%  -23.32%  (p=0.000 n=10+10)
SpanWithEvents_4/NeverSample-4                   495ns ±34%     429ns ±11%  -13.35%  (p=0.010 n=9+10)
SpanWithEvents_8/AlwaysSample-4                 4.93µs ±64%    3.63µs ± 5%  -26.51%  (p=0.000 n=10+10)
SpanWithEvents_8/NeverSample-4                   554ns ±49%     431ns ± 3%     ~     (p=0.053 n=10+9)
SpanWithEvents_WithStackTrace/AlwaysSample-4    2.27µs ±71%    1.46µs ±11%  -35.33%  (p=0.000 n=10+10)
SpanWithEvents_WithStackTrace/NeverSample-4      640ns ±69%     466ns ± 7%  -27.23%  (p=0.019 n=10+10)
SpanWithEvents_WithTimestamp/AlwaysSample-4     2.11µs ±72%    1.46µs ± 6%  -30.92%  (p=0.000 n=10+9)
SpanWithEvents_WithTimestamp/NeverSample-4       647ns ±57%     535ns ± 4%     ~     (p=0.053 n=10+9)
TraceID_DotString-4                              119ns ±78%     100ns ± 5%     ~     (p=0.781 n=10+10)
SpanID_DotString-4                              73.5ns ± 4%    70.3ns ± 5%   -4.36%  (p=0.012 n=8+10)

name                                          old alloc/op   new alloc/op   delta
SpanProcessor-4                                 12.6kB ± 0%    12.3kB ± 0%   -2.53%  (p=0.000 n=9+10)
SpanProcessorVerboseLogging-4                   13.7kB ± 0%    13.4kB ± 0%   -2.33%  (p=0.000 n=8+9)
StartEndSpan/AlwaysSample-4                       848B ± 0%      816B ± 0%   -3.77%  (p=0.000 n=10+10)
StartEndSpan/NeverSample-4                        224B ± 0%      224B ± 0%     ~     (all equal)
SpanWithAttributes_4/AlwaysSample-4             1.76kB ± 0%    1.73kB ± 0%   -1.82%  (p=0.000 n=10+10)
SpanWithAttributes_4/NeverSample-4                480B ± 0%      480B ± 0%     ~     (all equal)
SpanWithAttributes_8/AlwaysSample-4             2.46kB ± 0%    2.43kB ± 0%   -1.30%  (p=0.000 n=10+10)
SpanWithAttributes_8/NeverSample-4                736B ± 0%      736B ± 0%     ~     (all equal)
SpanWithAttributes_all/AlwaysSample-4           1.94kB ± 0%    1.90kB ± 0%   -1.65%  (p=0.000 n=10+10)
SpanWithAttributes_all/NeverSample-4              544B ± 0%      544B ± 0%     ~     (all equal)
SpanWithAttributes_all_2x/AlwaysSample-4        3.24kB ± 0%    3.20kB ± 0%   -0.99%  (p=0.000 n=10+10)
SpanWithAttributes_all_2x/NeverSample-4           864B ± 0%      864B ± 0%     ~     (all equal)
SpanWithEvents_4/AlwaysSample-4                 1.54kB ± 0%    1.50kB ± 0%   -2.08%  (p=0.000 n=10+10)
SpanWithEvents_4/NeverSample-4                    224B ± 0%      224B ± 0%     ~     (all equal)
SpanWithEvents_8/AlwaysSample-4                 2.24kB ± 0%    2.21kB ± 0%   -1.43%  (p=0.000 n=10+10)
SpanWithEvents_8/NeverSample-4                    224B ± 0%      224B ± 0%     ~     (all equal)
SpanWithEvents_WithStackTrace/AlwaysSample-4    1.02kB ± 0%    0.99kB ± 0%   -3.12%  (p=0.000 n=10+10)
SpanWithEvents_WithStackTrace/NeverSample-4       240B ± 0%      240B ± 0%     ~     (all equal)
SpanWithEvents_WithTimestamp/AlwaysSample-4     1.05kB ± 0%    1.02kB ± 0%   -3.05%  (p=0.000 n=10+10)
SpanWithEvents_WithTimestamp/NeverSample-4        264B ± 0%      264B ± 0%     ~     (all equal)

name                                          old allocs/op  new allocs/op  delta
SpanProcessor-4                                    105 ± 0%        85 ± 0%  -19.05%  (p=0.000 n=10+10)
SpanProcessorVerboseLogging-4                      111 ± 1%        92 ± 1%  -17.86%  (p=0.000 n=10+10)
StartEndSpan/AlwaysSample-4                       9.00 ± 0%      7.00 ± 0%  -22.22%  (p=0.000 n=10+10)
StartEndSpan/NeverSample-4                        3.00 ± 0%      3.00 ± 0%     ~     (all equal)
SpanWithAttributes_4/AlwaysSample-4               19.0 ± 0%      17.0 ± 0%  -10.53%  (p=0.000 n=10+10)
SpanWithAttributes_4/NeverSample-4                4.00 ± 0%      4.00 ± 0%     ~     (all equal)
SpanWithAttributes_8/AlwaysSample-4               27.0 ± 0%      25.0 ± 0%   -7.41%  (p=0.000 n=10+10)
SpanWithAttributes_8/NeverSample-4                4.00 ± 0%      4.00 ± 0%     ~     (all equal)
SpanWithAttributes_all/AlwaysSample-4             21.0 ± 0%      19.0 ± 0%   -9.52%  (p=0.000 n=10+10)
SpanWithAttributes_all/NeverSample-4              4.00 ± 0%      4.00 ± 0%     ~     (all equal)
SpanWithAttributes_all_2x/AlwaysSample-4          32.0 ± 0%      30.0 ± 0%   -6.25%  (p=0.000 n=10+10)
SpanWithAttributes_all_2x/NeverSample-4           4.00 ± 0%      4.00 ± 0%     ~     (all equal)
SpanWithEvents_4/AlwaysSample-4                   20.0 ± 0%      18.0 ± 0%  -10.00%  (p=0.000 n=10+10)
SpanWithEvents_4/NeverSample-4                    3.00 ± 0%      3.00 ± 0%     ~     (all equal)
SpanWithEvents_8/AlwaysSample-4                   29.0 ± 0%      27.0 ± 0%   -6.90%  (p=0.000 n=10+10)
SpanWithEvents_8/NeverSample-4                    3.00 ± 0%      3.00 ± 0%     ~     (all equal)
SpanWithEvents_WithStackTrace/AlwaysSample-4      13.0 ± 0%      11.0 ± 0%  -15.38%  (p=0.000 n=10+10)
SpanWithEvents_WithStackTrace/NeverSample-4       4.00 ± 0%      4.00 ± 0%     ~     (all equal)
SpanWithEvents_WithTimestamp/AlwaysSample-4       14.0 ± 0%      12.0 ± 0%  -14.29%  (p=0.000 n=10+10)
SpanWithEvents_WithTimestamp/NeverSample-4        5.00 ± 0%      5.00 ± 0%     ~     (all equal)

@MrAlias MrAlias merged commit d3bb038 into open-telemetry:main Jan 27, 2022
@MrAlias MrAlias deleted the evictedqueue branch January 27, 2022 21:55
MrAlias added a commit that referenced this pull request Mar 21, 2022
* Allow setting the Sampler via environment variables (#2305)

* Add changelog entry.

* Replace t.Setenv with internaltest/SetEnvVariables for Go <= 1.6.

* Handle the lack of a sampler argument without logging errors.

* Add additional test cases and error checks.

* Refactor documentation.

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>

* emitBatchOverhead should only be used for splitting spans into batches (#2512)

* emitBatchOverhead should only be used for splitting spans into batches (#2503)

* limit max packet size parameter

* Add additional errors types, simplify abstractions and error handling

* Make error comparisons less fragile.

* Fix typo in jaeger example (#2524)

* Fix some typos in docs for Go libraries (#2520)

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Fix getting-started.md Run function (#2527)

* Fix getting-started.md Run function, it assigns this new context to a variable shared between connections in to accept loop. Thus creating a growing chain of contexts. so every calculate fibonacci request, all spans in a trace.

* add a comment explaining the reason for that new variable

* update example fib

* Bump github.com/google/go-cmp from 0.5.6 to 0.5.7 across the project (#2545)

* update go-cmp to 0.5.7

* fixes go.sums

Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>

* Un-escape url coding when parsing baggage. (#2529)

* un-escape url coding when parsing baggage.

* Added changelog

Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Bump go.opentelemetry.io/proto/otlp from 0.11.0 to 0.12.0 (#2546)

* Update go.opentelemetry.io/proto/otlp to v0.12.0

* Changelog

* Update CHANGELOG.md

Fix's md linting

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Remove unused sdk/internal/santize (#2549)

* Add links to code examples and docs (#2551)

* Bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 in /exporters/prometheus (#2541)

* Bump github.com/prometheus/client_golang in /exporters/prometheus

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](prometheus/client_golang@v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* go mod tidy

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>

* Optimize evictedQueue implementation and use (#2556)

* Optimize evictedQueue impl and use

Avoid unnecessary allocations in the recordingSpan by using an
evictedQueue type instead of a pointer to one.

Lazy allocate the evictedQueue queue to prevent unnecessary operations
for spans without any use of the queue.

Document the evictedQueue

* Fix grammar

* Add env support for batch span processor (#2515)

* Add env support for batch span processor

* Update changelog

* lint

* Bump golang.org/x/tools from 0.1.8 to 0.1.9 in /internal/tools (#2566)

* Bump golang.org/x/tools from 0.1.8 to 0.1.9 in /internal/tools

Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.1.8 to 0.1.9.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](golang/tools@v0.1.8...v0.1.9)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Auto-fix go.sum changes in dependent modules

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>

* Bump github.com/golangci/golangci-lint from 1.43.0 to 1.44.0 in /internal/tools (#2567)

* Bump github.com/golangci/golangci-lint in /internal/tools

Bumps [github.com/golangci/golangci-lint](https://github.com/golangci/golangci-lint) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/golangci/golangci-lint/releases)
- [Changelog](https://github.com/golangci/golangci-lint/blob/master/CHANGELOG.md)
- [Commits](golangci/golangci-lint@v1.43.0...v1.44.0)

---
updated-dependencies:
- dependency-name: github.com/golangci/golangci-lint
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Auto-fix go.sum changes in dependent modules

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>

* Bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 in /exporters/prometheus (#2570)

* Bump github.com/prometheus/client_golang in /exporters/prometheus

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
- [Commits](prometheus/client_golang@v1.12.0...v1.12.1)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Auto-fix go.sum changes in dependent modules

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>

* Fix TestBackoffRetry in otlp/internal/retry package (#2562)

* Fix TestBackoffRetry in otlp retry pkg

The delay of the retry is within two times a randomization factor (the
back-off time is delay * random number within [1 - factor, 1 + factor].
This means the waitFunc in TestBackoffRetry needs to check the delay is
within an appropriate delta, not equal to configure initial delay.

* Fix delta value

* Fix delta

Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>

* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /exporters/otlp/otlptrace (#2568)

* Bump google.golang.org/grpc in /exporters/otlp/otlptrace

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.43.0...v1.44.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Auto-fix go.sum changes in dependent modules

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>

* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /example/otel-collector (#2565)

* Bump google.golang.org/grpc in /example/otel-collector

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.43.0...v1.44.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Auto-fix go.sum changes in dependent modules

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>

* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /exporters/otlp/otlpmetric (#2572)

* Bump google.golang.org/grpc in /exporters/otlp/otlpmetric

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.43.0...v1.44.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Auto-fix go.sum changes in dependent modules

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: MrAlias <MrAlias@users.noreply.github.com>

* Change Options to accept type not pointer (#2558)

* Change trace options to accept type not pointer

Add benchmark to show allocation improvement.

* Update CONTRIBUTING.md guidelines

* Update all Option iface

* Fix grammar in CONTRIBUTING

* Do not store TracerProvider or Tracer fields in SDK recordingSpan (#2575)

* Do not store TracerProvider fields in span

Instead of keeping a reference to the span's Tracer, and therefore also
it's TracerProvider, and the associated resource and spanLimits just
keep the reference to the Tracer. Refer to the TracerProvider fields
when needed instead.

* Make span refer to the inst lib via the Tracer

Instead of holding a field in the span, refer to the field in the parent
Tracer.

* [website_docs] fix page meta-links (#2580)

Contributes to open-telemetry/opentelemetry.io#1096

/cc @cartermp @austinlparker

* Validate members once, in `NewMember` (#2522)

* use NewMember, or specify if the member is not validated when creating new ones

* expect members to already be validated when creating a new package

* add changelog entry

* add an isEmpty field to member and property for quick validation

* rename isEmpty to hasData

So by default, an empty struct really is marked as having no data

* Update baggage/baggage_test.go

Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>

* don't validate the member in parseMember, we alredy ran that validation

We also don't want to use NewMember, as that runs the property
validation again, making the benchmark quite slower

* move changelog entry to the fixed section

* provide the member/property data when returning an invalid error

Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>

* Fix link to Zipkin exporter (#2581)

Currently it is linked to the old package that was moved.

* Unexport EnvBatchSpanProcessor* constants (#2583)

* Move BSP env support to internal

* Use pkg name

* Update env test

* Use internal/env in sdk/trace

* Avoid an extra allocation in applyTracerProviderEnvConfigs.

* Add additional errors for ratio > 1.0.

* Add test cases for ratio > 1.0.

* Update CHANGELOG.md

Co-authored-by: Joshua MacDonald <jmacd@users.noreply.github.com>
Co-authored-by: jaychung <ken8203@gmail.com>
Co-authored-by: Ben Wells <b.v.wells@gmail.com>
Co-authored-by: Jeremy Kaplan <jeremy@stytch.com>
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
Co-authored-by: thinkgo <49174849+thinkgos@users.noreply.github.com>
Co-authored-by: Aaron Clawson <Aaron.Clawson@gmail.com>
Co-authored-by: Aaron Clawson <MadVikingGod@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tyler Yahn <codingalias@gmail.com>
Co-authored-by: Chao Weng <19381524+sincejune@users.noreply.github.com>
Co-authored-by: Patrice Chalin <chalin@users.noreply.github.com>
Co-authored-by: Damien Mathieu <42@dmathieu.com>
@pellared pellared added this to the untracked milestone Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants