code: 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
  }
docs: // New returns a new Client.