I recommend Google Analytics. Just wireup to their
events logging tool. There are other solutions out there like Tea Leaf and WebTrekk, but many such solutions don't like dynamic client side generated pages like GWT.
For a working example see
http://code.google.com/p/gwt-examples/ and Google Analytics Integrated Application.
Since our company can't use GA, our team is just writing out own handler since we just want to collect discrete events like clicks and opening of certain sub-apps. The gist is to have a client side buffer collecting events and then relaying them back to the server at some interval (i.e. every 5s). You can see this in the GA tool, click the link 6 times fast and you'll only see one server post. Also note that rather than having the receiving the data via a servlet and storing it in the db, it is often better and faster to just point to a static empty file (i.e. empty.htm) and just add your data as GET params (i.e. empty.htm?evt=click&x=344&y=45). Then sum that information from the Apache with a cron task.
Sincerely,
Joseph