Fluent Diagnostics Dec 11

Uploaded on

This is a London Windows Azure Group Presentation for December 11 on Diagnostics in Windows Azure

This is a London Windows Azure Group Presentation for December 11 on Diagnostics in Windows Azure

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • Centralised store in Storage


  • 1. Windows Azure Diagnostics Andy Cross
  • 2. Overview• Diagnostics in Windows Azure – Application Level – Service Level – Operating System Level • Things your application chooses to log App • Things logged by what runs your application Service • Things logged by OS container OS
  • 3. Example Log Usage• Application: – Error: Cannot save Order• Service: – Error: IO Exception• OS: – Error: Disk is full
  • 4. What’s special?• Familiar diagnostic challenges – Already solved on premises• Massively scalable – No request affinity – Unpredictable application topology• Where do the logs go?! – Centralised Logging approach
  • 5. What you need• Hosted Service: – Compute capacity within Windows Azure• Storage Account: – Storage capacity within Windows Azure • Table • Blobs
  • 6. Windows Azure Diagnostics My Azure Hosted Service App Worker Role Web Role Role Instances IN_0 IN_1 IN_0• Each Role – Configurable Diagnostics Monitor – Each Instance inherits configuration
  • 7. Example Trace Points• Application – .net application Tracing – custom • Files written via nLog, log4net etc – Windows Event Log• Service – IIS Logs – IIS Failed Request Logs – Azure Diagnostics Infrastructure Logs • Metalog – Performance Counters• Operating System – Windows Event Log – Custom (any known file log)
  • 8. Configuration• Set options on types – Directories – Logs – Performance Counters• Storage Options – Some types allow a configurable destination• Transfer Period• Maximum Buffer Size
  • 9. Transfer• Two distinct methods of transfer – Same underlying result• On Demand Transfer• Scheduled Transfer
  • 10. Output formatsType Description DestinationTrace With Trace Listener Table WADLogsTableIIS Logs W3svc format BlobWindows Event Logs Table WADWindowsEventLogsTableWindows Performance Table WADPerformanceCountersTableCountersCustom Logs File based BlobCrash Dump BlobDiagnostic Infrastructure Metalog Table WADDiagnosticInfrastructureLogsTableLog
  • 11. Methodologies• .net Tracing – Add Trace Listener – Configure WAD – View Result:
  • 12. Logging per Instance• Logs on Instance Basis: – RoleInstance: • deployment(526).MultipleTraceSources.Host_IN_0 – DeploymentId.Role.Instance• Allows for per instance diagnosis
  • 13. Configure Windows Azure Diagnostics• Setup Storage Account• Create Role Instance Diagnostics Manager• Get and update a configuration from Manager• Set Current Configuration
  • 14. Example Code
  • 15. Extended Code
  • 16. Verbosity• Code is building XML WADCFG – Structure based on XML Schema• Not necessarily intuitive
  • 17. Fluent Diagnostics• Attempts to curtail verbosity
  • 18. Windows Azure Role Lifecycle• Each Role runs – OnStart – Run – OnStop• Setup Diagnostics OnStart – always correct for that role• But if you change the config, another OnStart will undo your changes
  • 19. Change at Runtime• WAPPSCmdlets PowerShell cmdlets available at wappowershell.codeplex.com Example courtesy of michaelwasham.com
  • 20. Diagnostics LifecycleScenario A Diagnostics A Diagnostics AOnStart Run Redeploy OnStop OnStart Run Diagnostics B
  • 21. Diagnostics LifecycleScenario B Diagnostics A Diagnostics A Change OnStart Run Instance OnStart Run Count Diagnostics B
  • 22. Diagnostics Lifecycle• Why do we see this behaviour? – Increase Instance Count – New Instance added by Fabric – Instance goes through OnStart!
  • 23. Fluent Diagnostics• Allows you to use programmatic approach still – Uses Marker XML – Prevents further updates for a deployment
  • 24. Diagnostics LifecycleFluent Diagnostics Scenario B Diagnostics A Marker File Added Diagnostics A Change OnStart Run Instance OnStart Run Count Diagnostics B
  • 25. How to view Diagnostics• Raw in Tables, as shown before.• Cerebrata Azure Diagnostics Manager
  • 26. Q&A• Many thanks.• Check out my blog: http://blog.bareweb.eu• Questions and Answers session