| System Shepherd, Software plus Services, Microsoft, agent-based monitoring | 6 Jul 2009 |
|
| Backend Processing Component Instrumentation by Jerry Champlin | Comment (0) |
For most applications created in the Software-plus-Services paradigm, agent-based monitoring with very low resource consumption is the most reliable and extensible approach available to enable efficient instrumentation. Further, the most efficient instrumentation approach is to use a scalable template-based architecture such as used by System Shepherd®. This method allows for the creation of a class of infrastructure monitoring templates, which may be reused many times over. This methodology provides the ability to capture "one-off" metrics on specific devices while allowing configuration inheritance from the master template to take care of the rest. This will save significant time and resources allowing for a seamless and consistent migration from pre-production environments into production. When looking at designing application backend components, it is important to take instrumentation into account from the onset of development.
A lot of valuable data is available in standard monitoring configuration templates for most products via WMI or PERFLIB including MSMQ and .NET application component stack metrics. Many of the metrics exposed by WMI are counters which can be useful in their raw format for troubleshooting longevity related problems. However, they are often most valuable when converted to rate based metrics which should be inherent in the monitoring solution.
Many of the most important metrics are not available through standard WMI counters. Some application developers choose to create custom WMI counters. The article "Powerful Instrumentation Options in .NET Let You Build Manageable Apps with Confidence" serves as an excellent starting point for creating application specific counters. These counters can then be monitored via custom templates and thresholds within the monitoring solution. An alternate approach, which some development teams find easier to implement, is to log performance metrics and application events to a file. The monitoring solution should also be able to watch these files on a continuous basis and translate the metrics and events into rates using frequency based log analysis. What custom parameters of an application should be monitored?
