Configuring Go Collector
After you install the Go Collector, you need to configure it to monitor your Go applications by specifying the necessary configuration settings.
Setting up the collector
For most use cases it is sufficient to just initialize the Instana Go Collector with instana.NewSensor() and leave the default configuration options in place. You can also pass in a configuration object when initializing the Instana Go collector:
sensor := instana.NewSensorWithTracer(
instana.NewTracerWithOptions(&instana.Options{
// ...
},
)
The instana.Options configuration object provides following fields to configure the collector:
-
Service- global service name that will be used to identify the program in the Instana backend -
AgentHost,AgentPort- default tolocalhost:42699, set the coordinates of the Instana proxy agent -
LogLevel- one ofError,Warn,InfoorDebug -
EnableAutoProfile- enables automatic continuous process profiling whentrue -
MaxBufferedSpans- the maximum number of spans to buffer -
ForceTransmissionStartingAt- the number of spans to collect before flushing the buffer to the agent -
MaxBufferedProfiles- the maximum number of profiles to buffer -
IncludeProfilerFrames- whether to include profiler calls into the profile or not -
Tracer- tracer-specific configuration used by all tracer instances
Most of these values can be also be set through the environment variables. The in-app configuration takes precedence over environment variables except for following settings:
-
INSTANA_SERVICE_NAMEallows to override the service name set in the code -
INSTANA_PROCESS_NAMEallows to override the name for the infrastructure entity that represents the Go process. -
INSTANA_DEBUGenables debug logs even if the app code configuration defines a higher logging level -
INSTANA_AUTO_PROFILEenables continuous profiling with AutoProfileā¢
Running in serverless environment
To use Instana Go Collector for monitoring a service running in a serverless environment, such as AWS Fargate or Google Cloud Run, make sure that you have INSTANA_ENDPOINT_URL and INSTANA_AGENT_KEY env variables set in your task definition. Note that the INSTANA_AGENT_HOST and INSTANA_AGENT_PORT env variables will be ignored in this case. Refer to the respective section of Instana documentation for detailed explanation on how to do this:
- Configuring AWS Fargate task definitions
- Configuring AWS Lambda functions
- Configuring Google Cloud Run services
- Configuring Microsoft Azure Functions
Services running in serverless environments don't use host agent to send metrics and trace data to Instana backend, therefore the usual way of configuring the in-app sensor via configuration.yaml file is not applicable. Instead, there is a set of environment variables that can optionally be configured in service task definition:
-
INSTANA_TIMEOUT -
INSTANA_SECRETS -
INSTANA_EXTRA_HTTP_HEADERS -
INSTANA_ENDPOINT_PROXY -
INSTANA_TAGS -
INSTANA_ZONE
Refer to the Serverless Monitoring section for more detailed description of these variables and their value format.
Kafka trace correlation headers
You can configure the format for Kafka trace correlation headers that are used by the Go tracer with the environment variable INSTANA_KAFKA_HEADER_FORMAT. Valid values are binary, string, or both.
Another alternative is to configure the Kafka trace correlation header format at the level of the Instana host agent.
For more information, see Kafka Header Migration.