• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Fluent Diagnostics Dec 11

Fluent Diagnostics Dec 11



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



Total Views
Views on SlideShare
Embed Views



1 Embed 5

http://www.linkedin.com 5



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • Centralised store in Storage

Fluent Diagnostics Dec 11 Fluent Diagnostics Dec 11 Presentation Transcript

  • 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 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
  • 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 LifecycleScenario A Diagnostics A Diagnostics AOnStart Run Redeploy OnStop OnStart Run Diagnostics B
  • Diagnostics LifecycleScenario 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 LifecycleFluent 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