Documentation ¶
Overview ¶
Package nrawssdk instruments https://github.com/aws/aws-sdk-go-v2 requests.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func InstrumentHandlers ¶
InstrumentHandlers will add instrumentation to the given *aws.Handlers.
A Segment will be created for each out going request. The Transaction must be added to the `http.Request`'s Context in order for the segment to be recorded. For DynamoDB calls, these segments will be `newrelic.DatastoreSegment` type and for all others they will be `newrelic.ExternalSegment` type.
Additional attributes will be added to Transaction Trace Segments and Span Events: aws.region, aws.requestId, and aws.operation.
To add instrumentation to a Config and see segments created for each invocation that uses that Config, call InstrumentHandlers with the config's Handlers and add the current Transaction to the `http.Request`'s Context:
cfg, _ := external.LoadDefaultAWSConfig() cfg.Region = "us-west-2" // Add instrumentation to handlers nrawssdk.InstrumentHandlers(&cfg.Handlers) lambdaClient = lambda.New(cfg) req := lambdaClient.InvokeRequest(&lambda.InvokeInput{ ClientContext: aws.String("MyApp"), FunctionName: aws.String("Function"), InvocationType: lambda.InvocationTypeEvent, LogType: lambda.LogTypeTail, Payload: []byte("{}"), } // Add txn to http.Request's context ctx := newrelic.NewContext(req.Context(), txn) resp, err := req.Send(ctx)
To add instrumentation to a Request and see a segment created just for the individual request, call InstrumentHandlers with the `aws.Request`'s Handlers and add the current Transaction to the `http.Request`'s Context:
req := lambdaClient.InvokeRequest(&lambda.InvokeInput{ ClientContext: aws.String("MyApp"), FunctionName: aws.String("Function"), InvocationType: lambda.InvocationTypeEvent, LogType: lambda.LogTypeTail, Payload: []byte("{}"), } // Add instrumentation to handlers nrawssdk.InstrumentHandlers(&req.Handlers) // Add txn to http.Request's context ctx := newrelic.NewContext(req.Context(), txn) resp, err := req.Send(ctx)
Types ¶
This section is empty.