Skip to content

Releases: open-telemetry/opentelemetry-go-instrumentation

Release v1.12.0

10 Apr 14:32
v0.12.0-alpha
2874b92
Compare
Choose a tag to compare

Added

  • Support golang.org/x/net/http2@v0.23.0. (#744)
  • Support google.golang.org/grpc@v1.61.2. (#744)
  • Support google.golang.org/grpc@v1.62.2. (#744)
  • Support google.golang.org/grpc@v1.63.0. (#744)
  • Support google.golang.org/grpc@v1.63.1. (#761)
  • Support google.golang.org/grpc@v1.63.2. (#761)
  • Support Go v1.21.9. (#744)
  • Support Go v1.22.2. (#744)
  • Support golang.org/x/net/http2@v0.24.0. (#746)
  • Support go.opentelemetry.io/otel@v1.25.0. (#748)
  • Update project Go version used to build to 1.21 (#747)

Fixed

  • Handle Ctrl-C signal while searching for the target PID (#731)
  • Pass PID to UprobeOptions (#742)

New Contributors

  • @s4s7 made their first contribution in #736

Full Changelog: v0.11.0-alpha...v0.12.0-alpha

Release v0.11.0-alpha

28 Mar 19:15
v0.11.0-alpha
53b7621
Compare
Choose a tag to compare

Added

  • Test build using Go 1.22. (#672)
  • Base Dockerfile and build caching (#683)
  • Add server.address, server.port and network.protocol.version to HTTP client spans (#696)
  • Update http server attributes to latest semantic conventions (#708)

Fixed

  • Don't call manager.Close() when Analyze() fails. (#638)
  • Close proc file when done discovering PID. (#649)
  • Use debug packages to parse Go and modules' versions. (#653)
  • Clean up warn in otelglobal SetStatus() when grabbing the status code. (#675)
  • Reset proc offset after a failed iteration. (#681)
  • Avoid using runtime.NumCPU to get the number of CPUs on the system before remote mmap (#680)
  • Cleanup eBPF maps only when we stop using the memory (#682)
  • Fix start offset calculation in mmaped memory area (#738)

New Contributors

Full Changelog: v0.10.1-alpha...v0.11.0-alpha

Release v0.10.1-alpha

10 Jan 17:40
v0.10.1-alpha
0f23507
Compare
Choose a tag to compare

Added

  • Support version v0.20.0 of golang.org/x/net. (#587)
  • Support version v1.20.13 and v1.21.6 of Go. (#589)

Fixed

  • Log any failures to close running probes. (#586)

Full Changelog: v0.10.0-alpha...v0.10.1-alpha

Release v0.10.0-alpha

03 Jan 16:35
v0.10.0-alpha
cf64eab
Compare
Choose a tag to compare

Added

  • Add net.host.name, net.protocol.name, net.peer.name, and net.peer.port attributes to HTTP server spans. (#470
  • Support version v1.60.1 of google.golang.org/grpc. (#568)

Fixed

  • Correct the target probe argument positions for the v1.60.0 and greater versions of the google.golang.org/grpc server instrumentation. (#574, #576)
  • Do not instrument the OpenTelemetry default global implementation if the user has already set a delegate. (#569)

New Contributors

Full Changelog: v0.9.0-alpha...v0.10.0-alpha

Release v0.9.0-alpha

14 Dec 15:42
v0.9.0-alpha
d25d8d4
Compare
Choose a tag to compare

Added

  • The CLI flag global-impl is added.
    This flag, when used, enables the instrumentation of the OpenTelemetry default global implementation (https://pkg.go.dev/go.opentelemetry.io/otel).
    This means that all trace telemetry from this implementation that would normally be dropped will instead be recorded with the auto-instrumentation pipeline. ([#523]#523)
  • Add WithResourceAttributes InstrumentationOption to configure Instrumentation to add additional resource attributes. (#522)
  • Support versions v0.18.0 and v0.19.0 of golang.org/x/net. (#524)
  • Add the status code to HTTP client instrumentation. (#527)
  • Support versions v1.20.12, v1.21.4, and v1.21.5 of Go standard library. (#535)
  • Support version v1.60.0 of google.golang.org/grpc. (#555)

Changed

  • The instrumentation scope name for the database/sql instrumentation is now go.opentelemtry.io/auto/database/sql. (#507)
  • The instrumentation scope name for the gin instrumentation is now go.opentelemtry.io/auto/github.com/gin-gonic/gin. (#507)
  • The instrumentation scope name for the google.golang.org/grpc/client instrumentation is now go.opentelemtry.io/auto/google.golang.org/grpc. (#507)
  • The instrumentation scope name for the google.golang.org/grpc/server instrumentation is now go.opentelemtry.io/auto/google.golang.org/grpc. (#507)
  • The instrumentation scope name for the net/http/client instrumentation is now go.opentelemtry.io/auto/net/http. (#507)
  • The instrumentation scope name for the net/http/server instrumentation is now go.opentelemtry.io/auto/net/http. (#507)
  • The instrumentation for client.Do was changed to instrumentation for Transport.roundTrip. (#529)

Fixed

  • Support commit hash version for dependencies.
    If a dependency falls within a known version range used by instrumentation, and its offset structure has not changed, instrumentation will default to the known offset value instead of failing to run. (#503)

Release v0.8.0-alpha

14 Nov 20:21
v0.8.0-alpha
32e956f
Compare
Choose a tag to compare

Added

  • Add the WithEnv InstrumentationOption to configure Instrumentation to parse the environment. The Instrumentation will no longer by default parse the environment. This option needs to be used to enable environment parsing, and the order it is passed influences the environment precedence. All options passed before this one will be overridden if there are conflicts, and those passed after will override the environment. (#417)
  • Add the WithTraceExporter InstrumentationOption to configure the trace SpanExporter used by an Instrumentation. (#426)
  • Add HTTP status code attribute to net/http server instrumentation. (#428)
  • The instrumentation scope now includes the version of the auto-instrumentation project. (#442)
  • Add a new WithSampler method allowing end-users to provide their own implementation of OpenTelemetry sampler directly through the package API. (#468).
  • Add uprobes to execDC in order to instrument SQL DML. (#475)

Changed

  • Documentation no longer says that SYS_PTRACE capability is needed. (#388)
  • The NewInstrumentation no longer parses environment variables by default. Use the new WithEnv option to enable environment parsing. (#417)
  • NewInstrumentation now requires a context.Context as its first argument. This context is used in the instantiation of exporters. (#426)
  • Instrumentation now uses an OTLP over HTTP/protobuf exporter (changed from gRPC/protobuf). (#426)

Fixed

  • Parse Go versions that contain GOEXPERIMENT suffixes. (#389)
  • Include the schema URL for the semantic convention used in the exported resource. (#426)
  • Support Go module replace directives for the golang.org/x/net within the google.golang.org/grpc server instrumentation. (#450)

Removed

  • The deprecated go.opentelemetry.io/auto/examples/rolldice module is removed. (#423)

New Contributors

Full Changelog: v0.7.0-alpha...v0.8.0-alpha

Release v0.7.0-alpha

16 Oct 08:06
v0.7.0-alpha
8a11638
Compare
Choose a tag to compare

Added

  • Add WithServiceName config option for instrumentation. (#353)
  • Add WithPID config option for instrumentation. (#355)

Changed

  • Fix bug in the net/http server instrumentation which always created a new span context. (#266)
  • Fix runtime panic if OTEL_GO_AUTO_TARGET_EXE is not set. (#339)
  • Improve eBPF context propagation stability (#368)

Deprecated

  • The go.opentelemetry.io/auto/examples/rolldice module is deprecated.
    It will be moved into the go.opentelemetry.io/auto/examples module in the following release. (#304)

Removed

  • The deprecated go.opentelemetry.io/auto/offsets-tracker module is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/mux package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/test/e2e/gorillamux module is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/inject package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/errors package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/process package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/process/ptrace package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/opentelemetry package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/client package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/server package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gin-gonic/gin package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/mux package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpc package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpc/server package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/utils package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/context package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/allocator package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/bpffs package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/instrumentors/events package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/pkg/log package is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/test/e2e/gin module is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/test/e2e/gorillamux module is removed. (#302)
  • The deprecated go.opentelemetry.io/auto/test/e2e/nethttp module is removed. (#302)
  • The deprecated instrumentation support for github.com/gorilla/mux is removed. (#303)

Full Changelog: v0.3.0-alpha...v0.7.0-alpha

Release v0.3.0-alpha

13 Sep 14:35
171ae2d
Compare
Choose a tag to compare

This release has deprecated support for the github.com/gorilla/mux instrumentation.

Added

  • Add database/sql instrumentation (#240)
  • Support Go 1.21. (#264)

Changed

  • The function signature of "go.opentelemetry.io/auto/offsets-tracker/downloader".DownloadBinary has changed.
    It now has an additional flag indicating whether it'll build a dummy app for Go stdlib packages or not. ([#256]#256)
  • The function signature of "go.opentelemetry.io/auto/offsets-tracker/target".New has changed.
    It now accepts a flag to determine if the returned Data is from the Go stdlib or not. ([#256]#256)
  • Use UPROBE_RETURN to declare the common uprobe return logic (finding the corresponding context, setting up end time, and sending the event via perf buffer) ([#257]#257)
  • BASE_SPAN_PROPERTIES as common fields (start time, end time, SpanContext and ParentSpanContext) for all instrumentations events (consistent between C and Go structs). ([#257]#257)
  • Header guards in eBPF code. ([#257]#257)

Fixed

  • Fix context propagation across different goroutines. (#118)
  • The offset tracker can once again build binaries for the Go stdlib. ([#256]#256)

Deprecated

  • The go.opentelemetry.io/auto/offsets-tracker module is deprecated.
    It will be removed in the following release. (#281)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/mux package is deprecated.
    It will be removed in the following release. (#262)
  • The go.opentelemetry.io/auto/test/e2e/gorillamux module is deprecated.
    It will be removed in the following release. (#262)
  • The go.opentelemetry.io/auto/pkg/inject package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/errors package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/process package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/process/ptrace package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/opentelemetry package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/client package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/server package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gin-gonic/gin package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/mux package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpc package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpc/server package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/utils package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/context package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/allocator package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/bpffs package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/instrumentors/events package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/pkg/log package is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/test/e2e/gin module is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/test/e2e/gorillamux module is deprecated.
    It will be removed in the following release. (#282)
  • The go.opentelemetry.io/auto/test/e2e/nethttp module is deprecated.
    It will be removed in the following release. (#282)

New Contributors

Full Changelog: v0.2.2-alpha...v0.3.0-alpha

Release v0.2.2-alpha

12 Jul 15:41
v0.2.2-alpha
db172c2
Compare
Choose a tag to compare

Added

  • The net/http client instrumentor. (#91)
  • Context propagation to the net/http server instrumentation. (#92)
  • Simplified example of an HTTP service in go.opentelemtry.io/auto/examples/rolldice. (#195)

Changed

  • Upgrade OpenTelemetry semantic conventions to v1.18.0. (#162)
  • Remove the HTTP path from span names in net/http, gin-gonic/gin, and gorilla/mux instrumentations. (#161)
  • Update generated offsets. (#186)

New Contributors

Full Changelog: v0.2.1-alpha...v0.2.2-alpha

Release v0.2.1-alpha

15 May 16:30
v0.2.1-alpha
48d3c3f
Compare
Choose a tag to compare

What's Changed

Fixed

  • Fix gRPC instrumentation memory access issue on newer kernels. (#150)
  • Fix missing spans in gorillamux instrumentation. (#86)

Changed

  • Update HTTP span names to include method and route to match semantic conventions. (#143)
  • Add DockerHub to release destinations. (#152)

New Contributors

Full Changelog: v0.2.0-alpha...v0.2.1-alpha