func WithOutput(w io.Writer) Option {
	return optionFunc(func(c *config) {
		c.output = w
	})
}
WithOutput - optional writer for error messages
package aws
import (
	"context"
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"net/http"
	"os"
	"regexp"
	"sync"
	"time"
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/xray"
	"github.com/aws/aws-sdk-go/service/xray/xrayiface"
	"go.opencensus.io/trace"
)
type OnExport struct {
	TraceID string
}
const (
	defaultInterval = time.Second
	maxBufferSize = 50
)
type config struct {
	region     string                 
	output     io.Writer              
	api        xrayiface.XRayAPI      
	onExport   func(export OnExport)  
	origin     origin                 
	name       string                 
	service    *service               
	interval   time.Duration          
	bufferSize int                    
	blacklist  []*regexp.Regexp
}
type Option interface {
	apply(c *config)
}
type optionFunc func(c *config)
func (fn optionFunc) apply(c *config) {
	fn(c)
}
func WithServiceName(name string) Option {
	return optionFunc(func(c *config) {
		c.name = name
	})
}
func WithRegion(region string) Option {
	return optionFunc(func(c *config) {
		c.region = region
	})
}