This repository provides OpenTelemetry instrumentation for Go libraries using eBPF.
🚧 This project is currently work in progress.
OpenTelemetry Go Automatic Instrumentation is compatible with all 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, this repository will stop ensuring compatibility with these versions in the following manner:
- A minor release will be made to add support for the new supported release of Go.
- The following minor release will remove compatibility testing for the oldest (now archived upstream) version of Go. This, and future, releases may include features only supported by the currently supported versions of Go.
Currently, OpenTelemetry Go Automatic Instrumentation is tested for the following environments.
OS | Go Version | Architecture |
---|---|---|
Ubuntu | 1.22 | amd64 |
Ubuntu | 1.21 | amd64 |
Ubuntu | 1.20 | amd64 |
Automatic instrumentation should work on any Linux kernel above 4.4.
OpenTelemetry Go Automatic Instrumentation supports the arm64 architecture. However, there is no automated testing for this platform. Be sure to validate support on your own ARM based system.
Users of non-Linux operating systems can use the Docker images or create a virtual machine to compile and run OpenTelemetry Go Automatic Instrumentation.
See Getting started for setup, deployment, and configuration steps.
You can also try the Tutorial for a guide on setting up a sample Emojivoto application.
For technical and design info, see How it works.
See the contributing documentation.
OpenTelemetry Go Automatic Instrumentation is licensed under the terms of the Apache Software License version 2.0. See the license file for more details.
Third-party licesnes and copyright notices can be found in the LICENSES directory.