pradeep kumar c support escalation engineer windows azure diagnostics logging and monitoring in the...
TRANSCRIPT
1
Pradeep Kumar CSupport Escalation Engineer
Windows Azure Diagnostics Logging and Monitoring in the Cloud
Agenda• WAD overview & Architecture• How to Enable WAD• Storage Considerations• Common Diagnostic Tasks• Issues & Troubleshooting• Q&A
WAD overview & Architecture
4
Diagnostics: Single Server vs. the Cloud
CloudDynamic Environment
Distributed, scaled-out data
Single ServerStatic Environment
Local Access FeasibleAll in one TS sessionData & tools co-locatedIn-Place Changes
5
Windows Azure Diagnostics
Reason for Diagnostics in Azure1. Save diagnostic data that would be lost during a reimaging of the
instance (an Azure Cloud Service is stateless)2. Provide a central repository for diagnostics from multiple role
instances
Diagnostic Strategy• Spend time considering a diagnostic strategy for your Azure application i.e. do want to record, errors, deployment status, monitor performance• How will diagnostics setting be changed once deployed?• Consider cost of logging, both performance wise and financially• How will you access diagnostic information?
6
WAD overview• SDK Component provides distributed
monitoring & data Collection• Supports standard diagnostic APIs• Cloud – Friendly
• Manage Multiple role instances centrally
• Scalable• Build on Windows Azure Storage & used by scale-out/Scale-in
Windows Azure Platform feature
• Developer in control• What to Collect & When to collect
How to Enable WAD
8
Configuring Diagnostics• Enable Programmatically :
using DiagnosticMonitor.Start()
• Enable Diagnostic with : Configuration (diagnostic.wadcfg)
• Enable Diagnostic with Windows Azure SDK 2.0 via Visual Studio
9
Diagnostic Monitor (Role Startup)
DiagnosticMonitorConfiguration dc =DiagnosticMonitor.GetDefaultInitialConfiguration();
dc.WindowsEventLog.DataSources.Add("Application!*");dc.WindowsEventLog. ScheduledTransferLogLevelFilter = LogLevel.Error;dc.WindowsEventLog.ScheduledTransferPeriod = System.TimeSpan.FromMinutes(5.0);// add other sources
DiagnosticMonitor.Start("DiagnosticsConnectionString", dc);
10
Diagnostic Monitor (diagnostics.wadcfg)<DiagnosticInfrastructureLogs bufferQuotaInMB="512" scheduledTransferLogLevelFilter="Verbose" scheduledTransferPeriod="PT1S" /> <Logs bufferQuotaInMB="1024" scheduledTransferLogLevelFilter="Verbose" scheduledTransferPeriod="PT1S" />
<WindowsEventLog bufferQuotaInMB="512" scheduledTransferLogLevelFilter="Verbose" scheduledTransferPeriod="PT5M"> <DataSource name="Application!*" /> </WindowsEventLog>
</DiagnosticMonitorConfiguration>
11
Diagnostic Monitor (SDK 2.0)
12
Diagnostic Monitor (SDK 2.0)
13
Role Instance
How Does It Work (in a nutshell)?• Role Instance Starts• Diagnostic Monitor Starts• Monitor is configured
• Imperatively at Start time• Remotely any time via configuration file• Configuration is saved in Storage
• Monitor buffers data locally• User can set a quota (FIFO)
• Initiates transfer to Azure storage from local buffer
14
Diagnostic Data Locations
Windows Event Logs WADWindowsEventLogsTable
Performance Counters WADPerformanceCountersTable
Windows Azure Logs WADLogsTable
Diagnostic Infrastructure Logs WADDiagnosticInfrastructureLogsTable
IIS Logs wad-iis-logfiles
IIS Failed Request Logs wad-iis-failedreqlogfiles
Crash Dumps wad-crash-dumps
Custom File Based Logs (must be configured)
15
D E M O
Storage Considerations
17
Storage Considerations
• Set up a separate Diagnostic Storage account
• Choose only required Diagnostic data • Use an affinity group• Periodically copy and clear the Diagnostic
Data from Storage• Be aware of cost of logging, both physical
and bandwidth
Common Diagnostic Tasks
19
Scenarios for using WAD
• Monitoring application performance• CPU and memory usage• Requests to application
• Troubleshooting and Debugging issues• Errors or exceptions in code
• Capacity planning • Identify need for more compute resource
20
Role Instance
Remote Configuration
Poll Interval
21
RoleInstanceDiagnosticManager (anytime)• CloudStorageAccount storage = CloudStorageAccount.Parse(…);
• RoleInstanceDiagnosticManager rdm = new • RoleInstanceDiagnosticManager(storage, DeploymentId,
• RoleName, RoleInstanceId);
• DiagnosticMonitorConfiguration config = rdm.GetCurrentConfiguration();
• dc.WindowsEventLog.DataSources.Add("Application!*");• dc.WindowsEventLog. ScheduledTransferLogLevelFilter = • LogLevel.Error;• dc.WindowsEventLog.ScheduledTransferPeriod = • TimeSpan.FromMinutes(5.0);• // add other sources
• rdm.SetCurrentConfiguration(config);
22
Diagnostic Monitor (SDK 2.0)
23
D E M O
Issues & Troubleshooting
25
Troubleshooting issues with WADScenario
Logs no longer or never copied to Azure Storage• Could be all logs configured• Specific logs• All instances of a role or specific ones
26
Troubleshooting issues with WADTroubleshooting steps
• Check WAD configuration • RDP onto instance to check WAD processes• Locally check WAD configuration • Ensure logs actually exist• Raise a support case
27
Troubleshooting issues with WADIssue Identified
• WAD correctly configured• No logs present to be copied i.e. IIS stopped and
therefore no new IIS logs• Custom logs missing due to an exception in custom
code• WAD incorrectly configured• OverallQuotaInMb same size or larger than
DiagnosticsStore for sizeInMb
Referenceshttp://msdn.microsoft.com/en-us/library/windowsazure/hh771389.aspx
http://www.windowsazure.com/en-us/pricing/details/storage/
http://msdn.microsoft.com/en-us/library/gg432992.aspx
http://msdn.microsoft.com/en-us/library/dn205075.aspx
http://msdn.microsoft.com/en-us/library/windowsazure/hh411551.aspx
http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspx
http://msdn.microsoft.com/en-us/library/windowsazure/gg433048.aspx
Summary
Consider WAD requirements • Logging level• What to log• Financial cost of using WAD
Decide how to monitor logs or alter• Use Visual Studio or third party storage viewer
Raise a support case, we are here to help
30
Questions
Visit CIE Blog, Join the Webinar - Windows Azure Diagnostics - Logging and Monitoring in the Cloud on August 6th at 3PM IST (UTC +5:30)
For additional questions / feedback
© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted
to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.