From Matrix Platform
NOTE: this article is not yet complete; full article coming soon.
This framework focuses on extended run-time tracing and monitoring of the application operation; it also provides WinForms GUI controls that query and filter the diagnostic data during the actual application run; full integration with nLog supported.
The diagnostics GUI component allows to see diagnostics information of the operation of the platform. Messages for common events (like a component starting, a file loaded etc) as well as errors and warnings are available trough it.
The component allows to filter the items shown by type, by originating module as well as to search for by string.
The Diagnostics system of the Platform allows to view, in run time, the separate events that happen during operation.
The Platform applies two main support systems to monitor its own operation:
- System Monitor
The SystemMonitor class allows to provide operations like verifying a value, reporting an error etc. This is the main support class component. It allows to report, in a managed structured and controlled way, any occurrences our of the ordinary. It is used to cover important cases like a part of the system not properly functioning at run-time or a resource accessibility problem. It also serves as an "early warning" system, to notify when the normal operation of the application is somehow disturbed. All the events that come to the system monitor system are available trough the Diagnostics component as a result of a Tracer output (unless explicitly filtered out of it or Tracer is disabled). Also in "Full Diagnostics Mode" important events are shown as pop-up messages, to allow for easy run-time error detection during testing. See the SystemMonitor class for more information (inside the CommonSupport project).
Allows an automated uniform way of reporting and monitoring events that happen inside the application. The output can be filtered also can be stored in different locations. Used as the general centralized output system. It takes care of reporting any system events to the user (be it trough some run-time user interface, like the Diagnostics Component, traced to a file for later analysis or consumed by external "event sink"). Tracer can be used to trace out not only system messages, but also ones generated by custom components or ones direct result of user actions. The tracer system allows application of "Trace filters" to filter out needed from unneeded events. some simple trace filters are applied at the Diagnostics Component. See Tracer and TracerHelper classes for more details on operation (both are inside the CommonSupport project).