120 likes | 213 Views
London Connected Systems User Group – Feb 15 2011. “Instrument and Diagnose your BizTalk Solution in an efficient Way”. Saravana Kumar BizTalk Server MVP since 2007. http://www.biztalk247.com http://blogdoc.biztalk247.com http://blogs.digitaldeposit.net/saravana/ saravana@hotmail.co.uk
E N D
London Connected Systems User Group – Feb 15 2011 “Instrument and Diagnose your BizTalk Solution in an efficient Way” Saravana Kumar BizTalk Server MVP since 2007 http://www.biztalk247.com http://blogdoc.biztalk247.com http://blogs.digitaldeposit.net/saravana/ saravana@hotmail.co.uk Twitter: @saravanamv
Current Techniques • File based logging using Enterprise Library application block or similar framework • System.Diagnostics in conjunction with DebugViewer • Business Activity Monitoring (BAM) • Worst case we don’t have any instrumentation in some areas and rely on Admin Console, Orchestration debugger and BizTalk tracking!!
Challenges in current solutions • File based logging is not appropriate. • Due to .NET application domain principles, it’s not easy to turn on and off logging without restarting the host instances. • Performance cost associated with keeping the logging on in production environment. • There is no capability to turn on and off specific areas of the application, without custom logic • BAM will require some infrastructure setup and not productive during development.
Instrumentation is two fold • Instrument the solution • Adding traces to various part of the solution • Orchestration, Maps, Custom Components etc • Manage the instrumentation • Starting, Stopping • Changing the log level • Disabling certain parts of the instrumented code to reduce noise • Ability to run continuously
Event Tracing for Windows (ETW) • Windows Kernel level instrumentation framework. • ETW is not new (first introduced in Windows 2000), but the concepts were hard to grasp and only used by people like device driver developers and most of the internal Microsoft products (Including BizTalk from 2004) • Thanks to Microsoft CAT (Customer Advisory team – BizTalk), who created a framework to abstract all the complex logic and provided some simple static methods and set of tools to manage the runtime.
Benefits of using ETW • Highest possible performance • Low CPU utilization • Full operational flexibility • Turn on and off at runtime • Change trace level • Safely enabled to run continuously • Light weight footprint on instrumented application. • Ability to turn on/off certain areas of logging at runtime
BAM for Instrumentation • Still there are challenges, • BAM is not for just “Business” monitoring. • BAM provides an infrastructure to instrument things
Summary • It’s hard to change old habits… • Use techniques like unique transaction id to correlate systems. • TraceManager Key methods • TraceIn, TraceOut • TraceStartScope, TraceStopScope • TraceInfo, TraceWarning, TraceError
References • http://code.msdn.microsoft.com/appfabriccat/Release/ProjectReleases.aspx?ReleaseId=4355 • http://btscatifcontroller.codeplex.com/ • http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2785c8bd-c10b-4961-b478-721973d6ccef&displaylang=en