func DisableAutoStart() Option {
	return func(args *reporter) {
		args.autoStart = false
	}
}
DisableAutoStart prevents the Reporter from automatically reporting when created.
package reporting
import (
	"fmt"
	"log"
	"os"
	"reflect"
	"strconv"
	"strings"
	"sync"
	"sync/atomic"
	"time"
	metrics "github.com/rcrowley/go-metrics"
	"github.com/wavefronthq/wavefront-sdk-go/application"
	"github.com/wavefronthq/wavefront-sdk-go/histogram"
	wf "github.com/wavefronthq/wavefront-sdk-go/senders"
)
type WavefrontMetricsReporter interface {
	Start()
	Close()
	Report()
	ErrorsCount() int64
	RegisterMetric(name string, metric interface{}, tags map[string]string) error
	GetMetric(name string, tags map[string]string) interface{}
	GetOrRegisterMetric(name string, i interface{}, tags map[string]string) interface{}
	UnregisterMetric(name string, tags map[string]string)
}
type reporter struct {
	sender        wf.Sender
	application   application.Tags
	source        string
	prefix        string
	addSuffix     bool
	interval      time.Duration
	ticker        *time.Ticker
	percentiles   []float64               
	durationUnit  time.Duration           
	metrics       map[string]interface{}  
	errors        chan error
	start         chan bool
	close         chan bool
	errorsCount   int64
	errorDebug    bool
	autoStart     bool
	mux           sync.Mutex
	registry      metrics.Registry
	runtimeMetric bool  
}
type Option func(*reporter)
func LogErrors(debug bool) Option {
	return func(args *reporter) {
		args.errorDebug = debug
	}
}
func Source(source string) Option {
	return func(args *reporter) {
		args.source = source
	}
}
func Interval(interval time.Duration) Option {
	return func(args *reporter) {
		args.interval = interval
	}
}