260 likes | 467 Views
Debugging and troubleshooting Azure applications using Visual Studio. Boris Scholl Sr. Program Manager Visual Studio Azure Tools 3-547. Agenda. Overview Cloud Services Windows Azure Diagnostics IntelliTrace Profiling Windows Azure web sites Diagnostics Live Tracing
E N D
Debugging and troubleshooting Azure applications using Visual Studio Boris Scholl Sr. Program Manager Visual Studio Azure Tools 3-547
Agenda • Overview • Cloud Services • Windows Azure Diagnostics • IntelliTrace • Profiling • Windows Azure web sites • Diagnostics • Live Tracing • Visual Studio Developer Desktop • Summary
Overview • Common issues with Azure applications. • Environmental differences. • What works in the Azure Emulator does not work in Azure. • Performance issues. • Site loads slowly. • Computation takes a long time. • Logical issues in code. • My computation task returns a wrong result.
Cloud Services – Windows Azure diagnostics • What can I use Azure Diagnostics for? • Collects the following diagnostics information. • Windows event logs. • Performance counters. • Azure logs (trace logs, infrastructure logs). • IIS logs (IIS logs, failed requests logs). • Crash dumps. • Custom logs.
Cloud Services – Windows Azure diagnostics • How does it work in a developer scenario? Web/app.config Diagnostics.wadcfg Web/app.config Diagnostics.wadcfg wad-control-container
Cloud Services – Windows Azure diagnostics • What is the precedence of the configuration options? • Diagnostics monitor precedence for configuration. • BLOB storage • Code • Diagnostics.wadcfg • Default config
Note – Azure web role architecture • Keep in mind that there are two processes. MvcWebRole1 *.cspack WaIIShost.exe MvcWebRole1.dll MvcWebRole1.dll AppRoot Package w3wp.exe MvcWebRole1.dll MvcWebRole1.dll SiteRoot
Cloud Services – Windows Azure diagnostics • Azure diagnostics things to keep in mind! • Visual Studio includes the diagnostics agent by default. • If the diagnostics connection string is not changed the diagnostics data will be stored in the storage account used for publishing. • Failed requests need to be setup manually in web.config. • Need to add config file for RoleEnvironment diagnostics. • Redeploy required if changes are made to code or config. • You can avoid a full redeploy by using RoleInstanceDiagnosticManager. • Tracing strategy can be tested locally by using the storage emulator.
Cloud Services – IntelliTrace (Visual Studio Ultimate) • What is IntelliTrace ? • A debugging experience allowing you to rewind/replay program execution in the debugger. • Captures WaIIShost.exe and w3wp.exe events. • Great for chasing down logical errors. • Great for detecting missing assemblies*. • *We improved Visual Studio to detect missing assemblies during Build time. If missing assembly is detected we provide a Build warning.
Cloud Services – IntelliTrace Azure role instance IntelliTrace.exe User requests logs IntelliTrace agent Visual Studio *.itrace Polls queue every1 second Create Agent Q GetLogs, Q1 *.itrace Create Q1 and place request in agent Q Create Snapshot Upload to BLOB Pending Complete Upload to Visual Studio Azure storage = user storage account!
Cloud Services – Profiler (Visual Studio Pro) • What does the profiler do? • Instrumentation • Records how long every method takes to execute. • Useful when the app is slow/blocked waiting for another operation (call another service, database call etc.) • Impacts perf of application if many short running function. • Can create gigs of log files in minutes. • Sampling • Very lightweight. • Useful for identifying inefficient algorithms.
Cloud Services – Profiler (Visual Studio Pro) • What does the profiler do? • TIP (Premium+ feature) • Used in conjunction with instrumentation*. • Records ADO.NET database queries. • Resource contention data (concurrency) • Detects threads waiting for other threads. • Useful for detecting performance problems caused by lock contentions. • *Used to work with sampling on Windows 7
Cloud Services – IntelliTrace/profiler • Things to keep in mind/tricks. • Concurrency of agents • CLR agents cannot run concurrently. • Polling interval • Polling interval can be changed. • Add key <add key=" RequestPollInterval" value="00:00:10"/> to WindowsAzureDiagnosticsAgent.exe.config (C:\Program Files (x86)\Windows Azure Tools\Visual Studio 11.0\1.8\VsDiagnostics).
Azure web site – Diagnostics • Windows Azure web sites diagnostics options • Site diagnostics • Detailed error logging. • Failed request tracing. • Web server logging. • Application diagnostics • Produced by the web application itself. • Works similar to Cloud Service diagnostics. • Use System.Diagnostics.Trace class. • No configuration required.
Azure web site – Diagnostics • Windows Azure web sites can be enabled from the portal and Visual Studio Server Explorer • Diagnostics configuration • Logging level • Informational • Warning • Error • File system • Stores data on web site file system • Can be accessed by FTP or downloaded • Storage • Stores data in Windows Azure storage account • In WAWSAppLogTable (similar schema as WADLogs) • Streaming logs • Live stream to PowerShell Window, Command Line or Visual Studio
Azure BLOB Azure Table Storage Web site diagnostics architecture • How does it work in • a developer scenario? Web App Azure Drive Trace Listener Azure TableTraceListener Kudu Log streaming Streamed Logs WebSite Drive
Developer desktop preview in Azure • I need to debug and troubleshoot an application and I need to set up an environment quickly. • Developer desktop on Azure IaaS • Supports SharePoint, Web and SQL development. • Visual Studio 2013 Ultimate Preview pre-installed. • SharePoint 2013 pre-installed. • SQL Server 2012 Express pre-installed. • Scripts to configure the environment included. • Great for spinning up dev environments quickly. • Can be provisioned from portal or entirely through PowerShell with AD support.
Resources • http://www.windowsazure.com/en-us/develop/net/common-tasks/diagnostics/ • http://www.windowsazure.com/en-us/develop/net/best-practices/troubleshooting-web-sites/
Acer Iconia W3, Surface Pro, and Surface Type Cover Get your goodies Device distribution starts after sessions conclude today (approximately 6:00pm) in the Big Room, Hall D. If you choose not to pick up your devices tonight, distribution will continue for the duration of the conference at Registration in the North Lobby.
Required Slide *delete this box when your slide is finalized Your MS Tag will be inserted here during the final scrub. Evaluate this session • Scan this QR codeto evaluate this session and be automatically entered in a drawing to win a prize!