You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2026-06-03 18:35:08 +02:00
88d3fedf1a
Do not allocate a return function from `ExportSpans` to the heap. Use
the added `ExportOp` type instead.
### Benchmarks
#### `stdouttrace`
```terminal
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/exporters/stdout/stdouttrace
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
│ main.bmark.results │ stdouttrace-optimize-end.bmark.results │
│ sec/op │ sec/op vs base │
ExporterExportSpans/Observability-8 23.37µ ± 2% 22.79µ ± 3% -2.50% (p=0.025 n=10)
ExporterExportSpans/NoObservability-8 23.07µ ± 7% 22.29µ ± 1% -3.38% (p=0.000 n=10)
geomean 23.22µ 22.54µ -2.94%
│ main.bmark.results │ stdouttrace-optimize-end.bmark.results │
│ B/op │ B/op vs base │
ExporterExportSpans/Observability-8 4.253Ki ± 0% 4.190Ki ± 0% -1.47% (p=0.000 n=10)
ExporterExportSpans/NoObservability-8 3.975Ki ± 0% 3.975Ki ± 0% ~ (p=0.474 n=10)
geomean 4.111Ki 4.081Ki -0.74%
│ main.bmark.results │ stdouttrace-optimize-end.bmark.results │
│ allocs/op │ allocs/op vs base │
ExporterExportSpans/Observability-8 67.00 ± 0% 66.00 ± 0% -1.49% (p=0.000 n=10)
ExporterExportSpans/NoObservability-8 64.00 ± 0% 64.00 ± 0% ~ (p=1.000 n=10) ¹
geomean 65.48 64.99 -0.75%
¹ all samples are equal
```
#### `stdouttrace/internal/observ`
```terminal
goos: linux
goarch: amd64
pkg: go.opentelemetry.io/otel/exporters/stdout/stdouttrace/internal/observ
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
│ main.bmark.results │ stdouttrace-optimize-end.bmark.results │
│ sec/op │ sec/op vs base │
InstrumentationExportSpans/NoError-8 197.9n ± 7% 153.3n ± 5% -22.51% (p=0.000 n=10)
InstrumentationExportSpans/PartialError-8 754.4n ± 6% 663.2n ± 6% -12.08% (p=0.001 n=10)
InstrumentationExportSpans/FullError-8 772.8n ± 4% 669.2n ± 4% -13.39% (p=0.000 n=10)
geomean 486.8n 408.3n -16.13%
│ main.bmark.results │ stdouttrace-optimize-end.bmark.results │
│ B/op │ B/op vs base │
InstrumentationExportSpans/NoError-8 64.00 ± 0% 0.00 ± 0% -100.00% (p=0.000 n=10)
InstrumentationExportSpans/PartialError-8 280.0 ± 0% 216.0 ± 0% -22.86% (p=0.000 n=10)
InstrumentationExportSpans/FullError-8 280.0 ± 0% 216.0 ± 0% -22.86% (p=0.000 n=10)
geomean 171.2 ? ¹ ²
¹ summaries must be >0 to compute geomean
² ratios must be >0 to compute geomean
│ main.bmark.results │ stdouttrace-optimize-end.bmark.results │
│ allocs/op │ allocs/op vs base │
InstrumentationExportSpans/NoError-8 1.000 ± 0% 0.000 ± 0% -100.00% (p=0.000 n=10)
InstrumentationExportSpans/PartialError-8 3.000 ± 0% 2.000 ± 0% -33.33% (p=0.000 n=10)
InstrumentationExportSpans/FullError-8 3.000 ± 0% 2.000 ± 0% -33.33% (p=0.000 n=10)
geomean 2.080 ? ¹ ²
¹ summaries must be >0 to compute geomean
² ratios must be >0 to compute geomean
```
OpenTelemetry Exporters
Once the OpenTelemetry SDK has created and processed telemetry, it needs to be exported. This package contains exporters for this purpose.
Exporter Packages
The following exporter packages are provided with the following OpenTelemetry signal support.
See the OpenTelemetry registry for 3rd-party exporters compatible with this project.