Collection of extensions for OpenTelemetry-Go.
Go to file
Damien Mathieu 59a2c1df41
Add otelhttp Handler.ServeHTTP and Transport.RoundTrip benchmarks (#5681)
This adds high-level benchmarks for `otelhttp.Handler.ServeHTTP` and
`otelhttp.Transport.RoundTrip`, as well as a benchmark comparison
without those wrappers.

Related: #5664.

Current results on my machine:

```
goos: darwin
goarch: arm64
pkg: go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/test
BenchmarkHandlerServeHTTP/without_the_otelhttp_handler-10               37971928                31.35 ns/op           28 B/op          0 allocs/op
BenchmarkHandlerServeHTTP/with_the_otelhttp_handler-10                    435142              2723 ns/op            5585 B/op         35 allocs/op
BenchmarkTransportRoundTrip/without_the_otelhttp_transport-10              11430            401735 ns/op           24436 B/op        117 allocs/op
BenchmarkTransportRoundTrip/with_the_otelhttp_transport-10                   278           4367998 ns/op            5416 B/op         85 allocs/op
PASS
ok      go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/test      10.056s
```

---------

Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
2024-05-30 13:14:13 -07:00
.github [chore] ensure codecov uses token (#5687) 2024-05-30 10:31:25 -07:00
bridges otelzap: Implement methods on `arrayEncoder` (#5652) 2024-05-29 07:27:59 -07:00
config chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 5315273 (#5672) 2024-05-28 14:18:17 -07:00
detectors fix(deps): update module github.com/aws/aws-sdk-go to v1.53.12 (#5684) 2024-05-30 11:00:30 -07:00
exporters/autoexport fix: OTEL_TRACES_EXPORTER typo (#5686) 2024-05-30 11:25:20 -07:00
instrgen chore(deps): update module github.com/go-logr/logr to v1.4.2 (#5627) 2024-05-21 14:04:07 -07:00
instrumentation Add otelhttp Handler.ServeHTTP and Transport.RoundTrip benchmarks (#5681) 2024-05-30 13:14:13 -07:00
internal Update all file license headers (#5189) 2024-03-01 14:26:35 -08:00
processors/baggage/baggagetrace chore(deps): update module github.com/go-logr/logr to v1.4.2 (#5627) 2024-05-21 14:04:07 -07:00
propagators chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 5315273 (#5672) 2024-05-28 14:18:17 -07:00
samplers fix(deps): update google.golang.org/genproto/googleapis/api digest to 5315273 (#5671) 2024-05-28 13:44:01 -07:00
tools fix(deps): update golang.org/x/tools digest to 2e977dd (#5689) 2024-05-30 11:18:11 -07:00
zpages chore(deps): update module github.com/go-logr/logr to v1.4.2 (#5627) 2024-05-21 14:04:07 -07:00
.gitattributes Create .gitattributes (#777) 2021-05-13 16:30:24 -07:00
.gitignore Add go.work to .gitignore (#3804) 2023-05-12 06:56:47 -07:00
.golangci.yml [chore] Add gosec via golangci-lint (#4452) 2023-10-21 09:14:23 +02:00
CHANGELOG.md Use more efficient `WithAttributeSet()` (#5664) 2024-05-29 09:16:13 -07:00
CODEOWNERS Add link to codeowners policy in codeowners file (#5680) 2024-05-30 08:53:46 -07:00
CONTRIBUTING.md Add code owner policy (#5555) 2024-05-14 13:01:08 -07:00
LICENSE Initial commit 2020-02-21 10:12:37 -08:00
Makefile [chore] Rebuild .tools as they can be outdated (#5603) 2024-05-20 23:34:02 +02:00
README.md processors/baggage: add baggage span processor (#5404) 2024-05-06 15:29:11 -07:00
RELEASING.md Add Verify OTel changes section to releasing file (#5527) 2024-05-08 15:40:19 -07:00
doc.go Update all file license headers (#5189) 2024-03-01 14:26:35 -08:00
go.mod Drop support for Go 1.20 (#5163) 2024-02-25 07:27:07 -08:00
go.sum Use tracer and meter test helpers from the OTEL repository instead of the internal ones (#414) 2020-11-20 09:00:12 -08:00
lychee.toml Add links checking actions (#5136) 2024-02-22 07:53:12 +01:00
renovate.json [chore] renovate: Ignore instrgen bumps (#5537) 2024-05-08 16:24:06 -07:00
version.go Release v1.27.0/v0.52.0/v0.21.0/v0.7.0/v0.2.0 (#5628) 2024-05-21 12:19:58 -07:00
versions.yaml Release v1.27.0/v0.52.0/v0.21.0/v0.7.0/v0.2.0 (#5628) 2024-05-21 12:19:58 -07:00

README.md

OpenTelemetry-Go Contrib

build_and_test codecov.io Docs Go Report Card Slack

Collection of 3rd-party packages for OpenTelemetry-Go.

Contents

  • Instrumentation: Packages providing OpenTelemetry instrumentation for 3rd-party libraries.
  • Propagators: Packages providing OpenTelemetry context propagators for 3rd-party propagation formats.
  • Detectors: Packages providing OpenTelemetry resource detectors for 3rd-party cloud computing environments.
  • Exporters: Packages providing OpenTelemetry exporters for 3rd-party export formats.
  • Samplers: Packages providing additional implementations of OpenTelemetry samplers.
  • Bridges: Packages providing adapters for 3rd-party instrumentation frameworks.
  • Processors: Packages providing additional implementations of OpenTelemetry processors.

Project Status

This project contains both stable and unstable modules. Refer to the module for its version or our versioning manifest.

Project versioning information and stability guarantees can be found in the versioning documentation.

Progress and status specific to this repository is tracked in our local project boards and milestones.

Compatibility

OpenTelemetry-Go Contrib ensures compatibility with the current supported versions of the Go language:

Each major Go release is supported until there are two newer major releases. For example, Go 1.5 was supported until the Go 1.7 release, and Go 1.6 was supported until the Go 1.8 release.

For versions of Go that are no longer supported upstream, opentelemetry-go-contrib will stop ensuring compatibility with these versions in the following manner:

  • A minor release of opentelemetry-go-contrib will be made to add support for the new supported release of Go.
  • The following minor release of opentelemetry-go-contrib will remove compatibility testing for the oldest (now archived upstream) version of Go. This, and future, releases of opentelemetry-go-contrib may include features only supported by the currently supported versions of Go.

This project is tested on the following systems.

OS Go Version Architecture
Ubuntu 1.22 amd64
Ubuntu 1.21 amd64
Ubuntu 1.22 386
Ubuntu 1.21 386
MacOS 1.22 amd64
MacOS 1.21 amd64
Windows 1.22 amd64
Windows 1.21 amd64
Windows 1.22 386
Windows 1.21 386

While this project should work for other systems, no compatibility guarantees are made for those systems currently.

Contributing

For information on how to contribute, consult the contributing guidelines