I'm looking for some powerful j2ee servlet Filters that make it simpler to track, monitor, block, analyse etc. Java web applications and (Tomcat/Glassfish etc.) web servers.
I'm more of a programmer than a heavy-duty server administrator, so the reason I'm looking for a software solution is that I don't want to spread out configuration over routers and firewalls or offline log analyzers etc. Managing a whole system infrastructure like that easily gets out of application scope.
A good example of what I like is Opensymphony's clickstream. I add a few .jar files into my web-app and configure the filter and filter-params. However this project is quite tiny and hasn't been developed for years.
Ideally the projects that I am seeking for would be open source with non-GPL license, so I can poke around the source code and incorporate it freely into my own code base.
I would like to graph and analyse, real-time if possible:
- Rolling averages of clicks/accesses per minute/hour by remote host or session.
- The average duration to process and render certain pages and URLs to monitor possible regression or slowdown (simple enough to make yourself, but certainly there must be something ready made for this?)
- Block or redirect clients exceeding certain access thresholds or brute force access patterns (= simple automated firewalling, DDoS protection, bandwidth limiting... )
- I love graphs. Can we get some graphs of various things by plugging in a filter?
- Draw a map of geographic locations of current users... etc.
What sort of drop-in solutions exist that perform this type of analysis and monitoring of web apps? I would love to be directed to appropriate projects.