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.

Note: Trace continuity is not applicable to database and logging libraries.

HTTP

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

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.

Note: In this generic serverless agent setup, only traces are available, and not metrics. However, for specific serverless services, such as AWS Lambda or Fargate, Instana also collects metrics and correlates infrastructure.

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.

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.