Go
Go Automatic Instrumentation
Supported Versions
Odigos uses the official opentelemetry-go-instrumentation OpenTelemetry Auto Instrumentation using eBPF, thus it supports the same golang versions as this project.
- Go runtime versions 1.17 and above are supported.
Odigos enterprise data collection is done using eBPF, so Odigos requires, at minimum, platforms that have underlying Linux kernel versions of 5.4.0.
Traces
Odigos will automatically instrument your golang services to record and collect spans for distributed tracing, by utilizing the OpenTelemetry go official auto Instrumentation Libraries.
Instrumentation Libraries
The following go modules will be auto instrumented by Odigos:
HTTP Frameworks
github.com/gin-gonic/gin
HTTP web framework ⭐️net/http
go standard library for http server and clientPlease note that in order for thehttp.route
parameter to be properly extracted by Go auto instrumentation, you should use Go 1.22 or above and declare a template handler as described in this article.
HTTP Clients
net/http
go standard library for http server and client
Database Clients, ORMs, and data access libraries
github.com/gocql/gocql
⭐️ versions>= v1.0.0
. database client library for Apache Cassandragithub.com/elastic/go-elasticsearch/v8
⭐️ versions >= v8.0.0database/sql
go standard library for SQL database access
Messaging Systems Clients
github.com/rabbitmq/amqp091-go
⭐️ versions>= v1.4.0
. messaging client for RabbitMQgithub.com/segmentio/kafka-go
versions>= v0.4.1
. messaging client for Apache Kafkagithub.com/apache/pulsar-client-go
⭐️ versions>= v0.12.0
. messaging client for Apache Pulsargithub.com/IBM/sarama
⭐️ versions>= v1.40.0
. messaging client for Apache Kafka
RPC (Remote Procedure Call)
google.golang.org/grpc
versions>= v1.14.0
. rpc client and server for gRPC framework
Please note that modules marked with ⭐️ are available in Odigos pro only.