I'm extremely reluctant to add specific functionality to DBCP for this. One person's critical event will be another person's normal behaviour. The configuration options required to differentiate between the two could easily get out of hand.
My preferred approach is to expose the current state of the likely attributes of interest (e.g. number of active connections currently borrowed from pool and max connections available) and allow folks to use their monitoring solution of choice to monitor those attributes and generate alerts as necessary.
As of DBCP 2, the pool attributes are all exposed via JMX. On this basis, I am resolving this issue as fixed.
I am sure there is scope for improvement but any specific request to improve what is currently available via JMX should be made in a new Jira issue.