Supported Go libraries and platforms
The Instana Go Collector packages support tracing for the following Go libraries and platforms.
To avoid adding unnecessary dependencies, Instana main GitHub module provides only instrumentation for packages that are a part of the Go standard library. Third-party package instrumentations are provided as separate modules found in Instrumentations and need to be added to go.mod separately.
Libraries
HTTP
The following table outlines the HTTP libraries that the Go Collector supports for tracing:
RPC
The following table outlines the RPC library that the Go Collector supports for tracing:
| Target library | Support policy | Target library version | Instrumentation package | Instrumentation package version | Trace continuity |
|---|---|---|---|---|---|
| google.golang.org/grpc | 45 days | 1.80.0 | github.com/instana/go-sensor/instrumentation/instagrpc | 1.61.0 | ✅ |
Databases
The following table outlines the database libraries that the Go Collector supports for tracing:
| Target library | Support policy | Target library version | Instrumentation package | Instrumentation package version | Trace continuity |
|---|---|---|---|---|---|
| database/sql | 0 day | go-sensor | 1.73.1 | ||
| go.mongodb.org/mongo-driver | 45 days | 2.5.0 | github.com/instana/go-sensor/instrumentation/instamongo | 2.19.0 | |
| jackc/pgx | 45 days | 5.9.1 | github.com/instana/go-sensor/instrumentation/instapgx | 2.27.1 | |
| go-redis | 45 days | 9.18.0 | github.com/instana/go-sensor/instrumentation/instaredis | 2.45.0 | |
| redigo | 45 days | 1.9.3 | github.com/instana/go-sensor/instrumentation/instaredigo | 0.40.0 | |
| gorm | 45 days | 1.31.0 | github.com/instana/go-sensor/instrumentation/instagorm | 1.39.0 | |
| gocb | 45 days | 2.12.1 | github.com/instana/go-sensor/instrumentation/instagocb | 1.33.2 | ✅ |
| azcosmos | 45 days | 1.4.2 | github.com/instana/go-sensor/instrumentation/instacosmos | 1.28.0 | ✅ |
Messaging
The following table outlines the messaging libraries that the Go Collector supports for tracing:
| Target library | Support policy | Target library version | Instrumentation package | Instrumentation package version | Trace continuity |
|---|---|---|---|---|---|
| cloud.google.com/go/pubsub | 45 days | 1.50.2 | github.com/instana/go-sensor/instrumentation/cloud.google.com/go/pubsub | 1.86.1 | ✅ |
| github.com/IBM/sarama | 45 days | 1.47.0 | github.com/instana/go-sensor/instrumentation/instasarama | 1.52.0 | ✅ |
| github.com/rabbitmq/amqp091-go | 45 days | 1.10.0 | github.com/instana/go-sensor/instrumentation/instaamqp091 | 0.39.0 | ✅ |
GraphQL
The following table outlines the GraphQL libraries that the Go Collector supports for tracing:
| Target library | Support policy | Target library version | Instrumentation package | Instrumentation package version | Trace continuity |
|---|---|---|---|---|---|
| graphql-go/graphql | 45 days | 0.8.1 | github.com/instana/go-sensor/instrumentation/instagraphql | 1.35.0 | ❌ |
Other
The following table outlines other libraries that the Go Collector supports for tracing:
| Target library | Support policy | Target library version | Instrumentation package | Instrumentation package version | Trace continuity |
|---|---|---|---|---|---|
| cloud.google.com/go/storage | 45 days | 1.62.0 | github.com/instana/go-sensor/instrumentation/cloud.google.com/go/storage | 1.86.1 | ❌ |
| github.com/aws/aws-sdk-go | 45 days | 1.55.8 | github.com/instana/go-sensor/instrumentation/instaawssdk | 1.52.0 | ✅ |
| github.com/aws/aws-lambda-go | 45 days | 1.54.0 | github.com/instana/go-sensor/instrumentation/instalambda | 1.53.0 | ✅ |
| github.com/sirupsen/logrus | 45 days | 1.9.4 | github.com/instana/go-sensor/instrumentation/instalogrus | 1.40.0 | ❌ |
| github.com/aws/aws-sdk-go-v2 | 45 days | 1.41.5 | github.com/instana/go-sensor/instrumentation/instaawsv2 | 0.48.4 | ✅ |
Platforms
The Go collector supports serverless mode, when instead of a host agent, it sends metrics and traces to the serverless acceptor endpoint. To switch collector into a serverless mode, set the INSTANA_ENDPOINT_URL environment variable to the serverless acceptor URL of your Instana installation and provide your agent key using the INSTANA_AGENT_KEY environment variable. For more information about the configuration options available in serverless mode, see Serverless Monitoring
Generic serverless agent
To monitor Go applications in a serverless environment, such as AWS Lambda, or on a server without a host agent, instrument the application with the Instana Go Tracer SDK, deploy it, and set the INSTANA_ENDPOINT_URL and INSTANA_AGENT_KEY environment variables.
For more information about particular serverless services, see the following list.
AWS Fargate
Instana Go collector automatically detects if a service is running on AWS Fargate when running in a serverless mode.
Google Cloud Run
Instana Go collector automatically detects if a service is running on Google Cloud Run when running in a serverless mode.
AWS Lambda
Instana Go Collector supports tracing AWS Lambda function written in Go starting from v1.23.0. Handlers need to be instrumented using the github.com/instana/go-sensor/tree/main/instrumentation/instalambda package in order to collect and send trace data. For more information, see AWS Lambda Go.
Azure Functions
Instana Go Collector supports the tracing of Azure Functions that are written in Go. Handlers need to be instrumented by using the github.com/instana/go-sensor/tree/main/instrumentation/instaazurefunction package to collect and send trace data. For more information, see Azure Functions Tracing for Go.
Azure Container Apps
The Instana Go Collector supports tracing of Go applications that are deployed in Azure Container Apps. To enable tracing, instrument your application with the Instana Go Tracer SDK, deploy it to Azure Container Apps, and ensure that the required environment variables are set. For more information, see Monitoring Azure Container Apps.
Kubernetes and OpenShift
If your Go application and the Instana agent run in a Kubernetes cluster, view the documentation on Kubernetes network access for information about the required configuration in this setup.
For more information about monitoring Go applications, see Monitoring Go.