code: func NewListener(inner net.Listener, optFuncs ...listenerOpt) net.Listener {
  	opts := &listenerOpts{
  		name:       defaultName,
  		monitoring: true,
  		tracing:    false,
  	}
  	for _, f := range optFuncs {
  		f(opts)
  	}
  	if opts.monitoring {
  		preRegisterListenerMetrics(opts.name)
  	}
  	return &connTrackListener{
  		Listener: inner,
  		opts:     opts,
  	}
  }
docs: // NewListener returns the given listener wrapped in connection tracking listener.