Well, Java knows what resources are being used and by whom. It's just a matter of finding a way to make the JVM spill the beans, so to speak, and tell us about it too.
To get more detail on the leaking resources, you can use jmap to make a memory dump and use jhat to trawl through that to find objects that represent the resources that have been leaking.
First use the command line tools, though. More often than not it tells you everything you need to know. In your shoes I would probably run them hourly from a cron script and with some awk(1)
magic plot the various resource types in a spreadsheet.