DEV333 Instrumenting Applications for Manageability with the Enterprise Instrumentation Framework David Keogh Program Manager Visual Studio Enterprise Tools Application Management Challenges For the Support Organization Application faults or issues often detected first by users Support staff need structured application information Often must parse error strings written to event log Most tracing solutions are not intended for production apps Distributed applications magnify these challenges Events fired from an application across multiple servers are hard to correlate Application Management Challenges For the Development Organization No unified instrumentation API Developers are forced to use different eventing, tracing or logging solutions at various points in the application Or more often, avoid instrumentation entirely Firing an event must be as simple and lowprofile as possible Developers often forced to determine event routing within code Enterprise Instrumentation Goals and Scenarios Significantly improve enterprise customers’ ability to monitor and troubleshoot applications built on the .NET Framework Integrate and unify disparate tracing, eventing and logging technologies Integrate with existing management tools and products Key Scenarios Application Monitoring and Error Management Local Diagnostic Tracing Distributed Request Tracing EIF Core Features Unified Instrumentation API Unified model for tracing, eventing and logging Leverages WMI Infrastructure (System.Management.Instrumentation) Structured WMI Event Schema Manageability-contract between dev, QA and support staff Configurable At-Source Event Filtering Fire via WMI, Event Log, Windows Event Trace Minimal cost for leaving instrumentation in production build High-speed Diagnostic Tracing Enables problem-management for production applications Enables tracing user “requests” along application businessprocesses or services What Questions can EIF Answer? What is the general health of the application? Are there unexpected errors or warnings being reported? What is happening inside specific business processes or application transactions? Given a specific error being logged, what happened before and after that event within the application? Is a particular application service taking too long to execute on average? demo Simple Instrumentation Single Application Server .NET Application Application Object Event Source Event Source Instrumentation API Event Filtering Event Schema WMI Event Trace Event Log WMI Subscriber Trace Log Event Log Trace Reader Configuration Application Object Distributed Servers Application Server Application Server Distributed .NET Application Event Source Event Source Event Source Event Routing Event Trace WMI Trace WMI Subscriber Log Event Routing Event Log Event Log Event Source WMI Event Trace Trace WMI Subscribers Log Trace Reader Trace Reader Management Server Management Suite Mgmt Event Repository SQL Trace Event Repository Event Log Event Log Standard Event Schema Distributed Request Tracing Enables tracing user requests through a distributed application Trace business services of the application Can flow across a distributed .NET application Tracing is only activated only specific execution path Events get tagged with request context Even if no tracing session is enabled Example: Errors subscribed to via WMI will have request-context Trace-log Aggregation and Analysis Trace-log aggregation not included with EIF Trace Log Reader API provides a starting point for aggregation and analysis demo Monitoring and Troubleshooting an Instrumented Application Extensibility and Automation Custom Event Schemas Can build custom event schemas which are fired instead of, or in addition to the standard Event Schema Custom Event Sinks Can build custom event sinks MSMQ, SQL Server (transacted logging), Additional eventing or logging mechanisms Configuration API Scriptable API for all configuration operations Trace-Log Reader API Scriptable API for reading trace-logs Summary Enterprise Instrumentation Framework Significantly improves enterprise customers’ ability to monitor and troubleshoot .NET applications Integrates and unifies disparate tracing, eventing and logging technologies Integrates with existing management tools and products via WMI and the Windows Event Log Provides a starting point for distributed trace-log aggregation and analysis Availability Available now for MSDN Enterprise and Universal Subscribers Community Resources Public newsgroup for EIF questions and discussions Microsoft.Public.VSNet.Enterprise.Tools Whitepapers coming soon! Community Resources Community Resources http://www.microsoft.com/communities/default.mspx Most Valuable Professional (MVP) http://www.mvp.support.microsoft.com/ Newsgroups Converse online with Microsoft Newsgroups, including Worldwide http://www.microsoft.com/communities/newsgroups/default.mspx User Groups Meet and learn with your peers http://www.microsoft.com/communities/usergroups/default.mspx evaluations © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.