SlideShare a Scribd company logo
Fluent Diagnostics Dec 11
Windows Azure Diagnostics

        Andy Cross
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
Example Log Usage
• Application:
  – Error: Cannot save Order
• Service:
  – Error: IO Exception
• OS:
  – Error: Disk is full
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
What you need
• Hosted Service:
  – Compute capacity within Windows Azure


• Storage Account:
  – Storage capacity within Windows Azure
     • Table
     • Blobs
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
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)
Configuration
• Set options on types
  – Directories
  – Logs
  – Performance Counters

• Storage Options
  – Some types allow a configurable destination

• Transfer Period
• Maximum Buffer Size
Transfer
• Two distinct methods of transfer
  – Same underlying result


• On Demand Transfer

• Scheduled Transfer
Output formats

Type                        Description           Destination
Trace                       With Trace Listener   Table WADLogsTable
IIS Logs                    W3svc format          Blob
Windows Event Logs                                Table WADWindowsEventLogsTable
Windows Performance                               Table WADPerformanceCountersTable
Counters
Custom Logs                 File based            Blob
Crash Dump                                        Blob
Diagnostic Infrastructure   Metalog               Table WADDiagnosticInfrastructureLogsTable
Log
Methodologies
• .net Tracing
  – Add Trace Listener




  – Configure WAD
  – View Result:
Logging per Instance
• Logs on Instance Basis:
  – RoleInstance:
     • deployment(526).MultipleTraceSources.Host_IN_0
  – DeploymentId.Role.Instance


• Allows for per instance diagnosis
Configure Windows Azure Diagnostics

• Setup Storage Account

• Create Role Instance Diagnostics Manager

• Get and update a configuration from Manager

• Set Current Configuration
Example Code
Extended Code
Verbosity
• Code is building XML WADCFG
  – Structure based on XML Schema


• Not necessarily intuitive
Fluent Diagnostics
• Attempts to curtail verbosity
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
Change at Runtime
• WAPPSCmdlets




            PowerShell cmdlets available at wappowershell.codeplex.com
                              Example courtesy of michaelwasham.com
Diagnostics Lifecycle
Scenario A

          Diagnostics A                                          Diagnostics A




OnStart                   Run   Redeploy          OnStop   OnStart               Run



                                       Diagnostics B
Diagnostics Lifecycle
Scenario B
           Diagnostics A                                   Diagnostics A




                                   Change
 OnStart                   Run    Instance       OnStart                   Run
                                    Count


                                 Diagnostics B
Diagnostics Lifecycle
• Why do we see this behaviour?
  – Increase Instance Count
  – New Instance added by Fabric
  – Instance goes through OnStart!
Fluent Diagnostics
• Allows you to use programmatic approach still
  – Uses Marker XML
  – Prevents further updates for a deployment
Diagnostics Lifecycle
Fluent Diagnostics Scenario B
           Diagnostics A         Marker File Added                        Diagnostics A




                                         Change
 OnStart                   Run          Instance                OnStart                   Run
                                          Count


                                                     Diagnostics B
How to view Diagnostics
• Raw in Tables, as shown before.
• Cerebrata Azure Diagnostics Manager
Q&A
• Many thanks.
• Check out my blog:
     http://blog.bareweb.eu

• Questions and Answers session

More Related Content

PPTX
Effectiveness and code optimization in Java
PDF
Running & Monitoring Docker at Scale
PDF
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
PDF
QA speed up story
PPTX
CodeFest 2014. Christopher Bennage — Semantic Logging. Avoiding the log chaos
PDF
September 2010 - Arquillian
PDF
Inside Solr 5 - Bangalore Solr/Lucene Meetup
ODP
Services (in Japanese)
Effectiveness and code optimization in Java
Running & Monitoring Docker at Scale
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
QA speed up story
CodeFest 2014. Christopher Bennage — Semantic Logging. Avoiding the log chaos
September 2010 - Arquillian
Inside Solr 5 - Bangalore Solr/Lucene Meetup
Services (in Japanese)

Viewers also liked (6)

PDF
Decreto 278-2013 Un golpe fiscal-Tributario
PDF
Vergelijking Gentle Teaching, Methode Heijkoop
PPTX
Service Management Dec 11
PPT
B&S Secret Santa
DOC
วิชาการท่องเที่ยว(ต่างประเทศ)
Decreto 278-2013 Un golpe fiscal-Tributario
Vergelijking Gentle Teaching, Methode Heijkoop
Service Management Dec 11
B&S Secret Santa
วิชาการท่องเที่ยว(ต่างประเทศ)
Ad

Similar to Fluent Diagnostics Dec 11 (20)

PPTX
Inside Azure Diagnostics
PPTX
Inside Azure Diagnostics (DevLink 2014)
PPTX
Windows Azure Diagnostics
PPTX
Taking care of a cloud environment
PPTX
Building azure applications ireland
PPTX
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
PPTX
Microsoft Windows Azure - Diagnostics Presentation
PDF
Developing and deploying windows azure applications
PPTX
Building & managing wa app wely
PPTX
Building & Managing Windows Azure
PPTX
Introducing Windows Azure
PPTX
Azure presentation nnug dec 2010
PPTX
Windows Azure: Lessons From the Field
PPTX
Azure development
PDF
Building Real World Application with Azure
PPTX
Azure servicefabric
PPTX
Azure in Developer Perspective
PPTX
Service fabric overview
PDF
10 things ever architect should know about the Windows Azure Platform - ericnel
PPT
Windows Azure for .NET Developers
Inside Azure Diagnostics
Inside Azure Diagnostics (DevLink 2014)
Windows Azure Diagnostics
Taking care of a cloud environment
Building azure applications ireland
Building Real World Applications using Windows Azure - Scott Guthrie, 2nd Dec...
Microsoft Windows Azure - Diagnostics Presentation
Developing and deploying windows azure applications
Building & managing wa app wely
Building & Managing Windows Azure
Introducing Windows Azure
Azure presentation nnug dec 2010
Windows Azure: Lessons From the Field
Azure development
Building Real World Application with Azure
Azure servicefabric
Azure in Developer Perspective
Service fabric overview
10 things ever architect should know about the Windows Azure Platform - ericnel
Windows Azure for .NET Developers
Ad

Fluent Diagnostics Dec 11

  • 3. 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
  • 4. Example Log Usage • Application: – Error: Cannot save Order • Service: – Error: IO Exception • OS: – Error: Disk is full
  • 5. 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
  • 6. What you need • Hosted Service: – Compute capacity within Windows Azure • Storage Account: – Storage capacity within Windows Azure • Table • Blobs
  • 7. 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
  • 8. 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)
  • 9. Configuration • Set options on types – Directories – Logs – Performance Counters • Storage Options – Some types allow a configurable destination • Transfer Period • Maximum Buffer Size
  • 10. Transfer • Two distinct methods of transfer – Same underlying result • On Demand Transfer • Scheduled Transfer
  • 11. Output formats Type Description Destination Trace With Trace Listener Table WADLogsTable IIS Logs W3svc format Blob Windows Event Logs Table WADWindowsEventLogsTable Windows Performance Table WADPerformanceCountersTable Counters Custom Logs File based Blob Crash Dump Blob Diagnostic Infrastructure Metalog Table WADDiagnosticInfrastructureLogsTable Log
  • 12. Methodologies • .net Tracing – Add Trace Listener – Configure WAD – View Result:
  • 13. Logging per Instance • Logs on Instance Basis: – RoleInstance: • deployment(526).MultipleTraceSources.Host_IN_0 – DeploymentId.Role.Instance • Allows for per instance diagnosis
  • 14. Configure Windows Azure Diagnostics • Setup Storage Account • Create Role Instance Diagnostics Manager • Get and update a configuration from Manager • Set Current Configuration
  • 17. Verbosity • Code is building XML WADCFG – Structure based on XML Schema • Not necessarily intuitive
  • 18. Fluent Diagnostics • Attempts to curtail verbosity
  • 19. 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
  • 20. Change at Runtime • WAPPSCmdlets PowerShell cmdlets available at wappowershell.codeplex.com Example courtesy of michaelwasham.com
  • 21. Diagnostics Lifecycle Scenario A Diagnostics A Diagnostics A OnStart Run Redeploy OnStop OnStart Run Diagnostics B
  • 22. Diagnostics Lifecycle Scenario B Diagnostics A Diagnostics A Change OnStart Run Instance OnStart Run Count Diagnostics B
  • 23. Diagnostics Lifecycle • Why do we see this behaviour? – Increase Instance Count – New Instance added by Fabric – Instance goes through OnStart!
  • 24. Fluent Diagnostics • Allows you to use programmatic approach still – Uses Marker XML – Prevents further updates for a deployment
  • 25. Diagnostics Lifecycle Fluent Diagnostics Scenario B Diagnostics A Marker File Added Diagnostics A Change OnStart Run Instance OnStart Run Count Diagnostics B
  • 26. How to view Diagnostics • Raw in Tables, as shown before. • Cerebrata Azure Diagnostics Manager
  • 27. Q&A • Many thanks. • Check out my blog: http://blog.bareweb.eu • Questions and Answers session

Editor's Notes

  • #7: Centralised store in Storage