func NewXRay()

in pkg/conn/xray_client.go [55:81]


func NewXRay(awsConfig *aws.Config, s *session.Session) XRay {
	x := xray.New(s, awsConfig)
	log.Debugf("Using Endpoint: %s", x.Endpoint)

	execEnv := os.Getenv("AWS_EXECUTION_ENV")
	if execEnv == "" {
		execEnv = "UNKNOWN"
	}

	osInformation := runtime.GOOS + "-" + runtime.GOARCH

	x.Handlers.Build.PushBackNamed(request.NamedHandler{
		Name: "tracing.XRayVersionUserAgentHandler",
		Fn:   request.MakeAddToUserAgentFreeFormHandler(agentPrefix + cfg.Version + execEnvPrefix + execEnv + osPrefix + osInformation),
	})

	x.Handlers.Sign.PushFrontNamed(request.NamedHandler{
		Name: "tracing.TimestampHandler",
		Fn: func(r *request.Request) {
			r.HTTPRequest.Header.Set("X-Amzn-Xray-Timestamp", strconv.FormatFloat(float64(time.Now().UnixNano())/float64(time.Second), 'f', 9, 64))
		},
	})

	return &XRayClient{
		xRay: x,
	}
}