I'm working on a "facade webservice" and I need to rethink part of it.
The context - my webservice (let's call it "FacadeWebservice") is an internal webservice developed to hide other webservices complexity from my system:
- My FacadeWebservice calls ExternalWebserviceA, ExternalWebserviceB and will soon need to call ExternalWebserviceC.
- ExternalWebserviceA, ExternalWebserviceB and ExternalWebserviceC are external webservices; they're subject to change and downtime.
Complexity is getting higher and higher, and I need to rethink the way I'm monitoring my FacadeWebservice and the external webservices. I need:
- a complete view of my application status (number of calls, error codes sent)
- a good idea of what's going on with external webservices (external webservices downtime, reponse codes received by my webservice - for example, one of them often go "technical error / readonly" for some time)
- basically, a simple view/tool that shows the overall status.
- service availability is pretty much covered (so I don't need apps like Nagios), I want to know what's going on at application level.
I was thinking about using JMX within my FacadeWebservice - this could provide me some ineresting graphs and statisics.
Is it the way to go? Or a good logging strategy is plenty enough for this task (even if external changes is a big part of my problem)?
Any advice or experience on the subject?