London Connected Systems User Group Feb 15 2011Instrument and Diagnose your BizTalk Solution in an efficient WaySaravana KumarBizTalk Server MVP since 2007http://www.biztalk247.com http://blogdoc.biztalk247.com http://firstname.lastname@example.org Twitter: @saravanamv
Current TechniquesFile based logging using Enterprise Library application block or similar framework
System.Diagnostics in conjunction with DebugViewer
Business Activity Monitoring (BAM)
Worst case we dont have any instrumentation in some areas and rely on Admin Console, Orchestration debugger and BizTalk tracking!!
Challenges in current solutionsFile based logging is not appropriate.
Due to .NET application domain principles, its 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 foldInstrument the solutionAdding traces to various part of the solutionOrchestration, Maps, Custom Components etcManage the instrumentation Starting, StoppingChanging the log levelDisabling certain parts of the instrumented code to reduce noiseAbility 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 ETWHighest possible performance
Low CPU utilization
Full operational flexibility Turn on and off at runtimeChange 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 InstrumentationStill there are challenges, BAM is not for just Business monitoring.BAM provides an infrastructure to instrument things
Using BAM for Instrumentation
SummaryIts hard to change old habitsUse techniques like unique transaction id to correlate systems.TraceManager Key methodsTraceIn, TraceOutTraceStartScope, TraceStopScopeTraceInfo, TraceWarning, TraceError