Atomia Performance Monitoring system
The upper part of the diagram represents the Atomia application system. It consists of a web application, two APIs and a database. Logging of communication between applications should be performed by the Performance Logging component. That component can be included into the application processing pipeline by changing only the configuration (without altering existing code). The Performance Logging component then inspects messages between applications, logs them and sends them to the message queue. Messages are picked up by the Performance Log Writer windows service and written to the Performance database.
It is important that the performance logging process has to be fast, hence the usage of message que and windows service for log storing. Performance data retrieval, processing and presenting is up using the Performance Control Panel. This is basicaly a web application which will be built in asp.net mvc framework.
Because of the relative simplicity of the whole project, web application can also be used as a RESTfull service. This feature of the Performance Control Panel (usage as a service) can be used to provide control over configuration of Performance Logging Component scattered throughout Atomia infrastructure. Configurations for each monitored application can be stored in the database and retrieved on demand by the Performance Logging Component. If for some reason these configurations are unavailable through the service then local configuration is used.
The Performance Monitoring Monitor can be switch on/off on demand, setting the application configuration.