statsd.go
func New(opts ...Option) (*Client, error) {
	// The default configuration.
	conf := &config{
		Client: clientConfig{
			Rate: 1,
		},
		Conn: connConfig{
			Addr:        ":8125",
			FlushPeriod: 100 * time.Millisecond,
			// Worst-case scenario:
			// Ethernet MTU - IPv6 Header - TCP Header = 1500 - 40 - 20 = 1440
			MaxPacketSize: 1440,
			Network:       "udp",
		},
	}
	for _, o := range opts {
		o(conf)
	}

	conn, err := newConn(conf.Conn, conf.Client.Muted)
	c := &Client{
		conn:  conn,
		muted: conf.Client.Muted,
	}
	if err != nil {
		c.muted = true
		return c, err
	}
	c.rate = conf.Client.Rate
	c.prefix = conf.Client.Prefix
	c.tags = joinTags(conf.Conn.TagFormat, conf.Client.Tags)
	return c, nil
}
func New(opts ...Option) (*Client, error) {
	// The default configuration.
	conf := &config{
		Client: clientConfig{
			Rate: 1,
		},
		Conn: connConfig{
			Addr:        ":8125",
			FlushPeriod: 100 * time.Millisecond,
			// Worst-case scenario:
			// Ethernet MTU - IPv6 Header - TCP Header = 1500 - 40 - 20 = 1440
			MaxPacketSize: 1440,
			Network:       "udp",
		},
	}
	for _, o := range opts {
		o(conf)
	}

	conn, err := newConn(conf.Conn, conf.Client.Muted)
	c := &Client{
		conn:  conn,
		muted: conf.Client.Muted,
	}
	if err != nil {
		c.muted = true
		return c, err
	}
	c.rate = conf.Client.Rate
	c.prefix = conf.Client.Prefix
	c.tags = joinTags(conf.Conn.TagFormat, conf.Client.Tags)
	return c, nil
}
func New ( opts ... Option ) ( * Client , error ) { // The default configuration. conf := & config { Client : clientConfig { Rate : 1 , } , Conn : connConfig { Addr : " " , FlushPeriod : 100 * time . Millisecond , // Worst-case scenario: // Ethernet MTU - IPv6 Header - TCP Header = 1500 - 40 - 20 = 1440 MaxPacketSize : 1440 , Network : " " , } , } for _ , o := range opts { o ( conf ) } conn , err := newConn ( conf . Conn , conf . Client . Muted ) c := & Client { conn : conn , muted : conf . Client . Muted , } if err != nil { c . muted = true return c , err } c . rate = conf . Client . Rate c . prefix = conf . Client . Prefix c . tags = joinTags ( conf . Conn . TagFormat , conf . Client . Tags ) return c , nil }
// New returns a new Client.
New returns a new Client .