Randy Pagels Sr. Developer Technology Specialist DX Team (Developer Experience and Evangelism) Application Insights Availability, Performance and Usage
Dec 29, 2015
Randy PagelsSr. Developer Technology SpecialistDX Team (Developer Experience and Evangelism)
Application InsightsAvailability, Performance and Usage
Today we will coverUnderstanding Application Insights
Ensure your apps are available, performing & succeeding
Getting started with Application InsightsEasy onboarding with Visual Studio & Status Monitor
Solving problems with Application InsightsIdentify, triage & diagnose service failures & performance issues; Learn continuously
Bridge the gap between developers and operations
Monitoring tools for developers see CPU, network, memory, etc. Monitoring tools for Ops see performance and availability of custom production applications
Understanding Application Insights
Is my application Available, Performing, Succeeding
“By 2017, 94.5% of downloads will be for free apps; Less than 0.01% of consumer mobile apps will be considered a financial success” -Gartner
Competition is fierceUser retention requires constant improvements to your apps and services
Constant evolutionWeb services & mobile apps need to evolve rapidly to survive & grow
Continuous delivery is hereMost major services like Microsoft, Facebook, and others push update as often as every day(top teams update to production 72 times per day)
Success requires data-drive decision makingMaking effective choices about your backlog requires deep understanding of your users behaviors and habits
Building successful apps is hard
Production
Development Collaboration
BACKLOG
REQUIREMENTS
Modern Application LifecyclePlan
Develop + Test
Monitor + Learn
Release
Production
Development Collaboration
BACKLOG
REQUIREMENTS
Existing impedimentsPlan
Develop + Test
Monitor + Learn
Quickly detect and triage application issues
Actionable and contextual info to resolve incidents
Prioritize and validate investments based on real data
MTTD
MTTR
Continuous learning
Release
Tools and processes
Collaboration
1. Telemetry is collected at each tier: Mobile
applications, server applications and browser
2. Telemetry arrives to Application Insights service
where it is processed & stored
3. Get 360° view of the application covering
availability, performance & usage
ApplicationInsights
Application Insights
Telemetry for 360° view
platform
infrastructure
app
1
3
4
5
Outside-in monitoring
Developer-emitted traces and events
Observed application behavior
Infrastructure performance
URL pings and web tests from 8 global pointsof presence
Whatever the developer would like to sendto Application Insights
No coding required – service dependencies,queries, response time, exceptions, logs, etc.
System performance counters
2 Observed user behaviorHow is the application being used?
Demo
Application Insights portal tour
Getting Started with Application InsightsEasy onboarding with Visual Studio & Status Monitor
From Visual Studio 2013 Update 3 (or later)
Right-click on your project & select ‘Add Application Insights Telemetry’Add JS snippet to monitor web pages (if existing app)Deploy app or run locallyInstall Status Monitor for dependencies & perf countersAdd Web Tests if needed for Availability Monitoring
An application that is already deployed
Install Status Monitor on the serverAdd Web Tests if needed for Availability Monitoring
Getting started for ASP.NET apps
2 Options
Visual Studio project (new or existing)
App already installed on server
Demo
Get started with Application Insights
ASP.NET apps on Azure VMs & IIS serversHTML/JS websitesAzure websites
Supported Platforms
Windows & Windows Phone AppsiOS & Android apps.NET apps
Upcoming Support
Solving problems with Application Insights
Identify, triage & diagnose failures; Learn continuously
Identify & Triage issues: AvailabilityChallenges
• Visibility to application health?
• Visibility to application outages to minimize customer impact?
• Hard to get information to determine impact of issue?
Solutions• Reduce ‘Mean Time to Detect’
• Ensure service availability with 8 global points of presence
• URL ping tests and rich multi-step web tests
• Threshold based alerts on metrics and perf. counters
• Real time alerts via email
Diagnose & Solve problems: PerformanceChallenges
• Uncover root cause of production issues?
• Quickly resolve code problems detected in production?
Solutions• Reduce ‘Mean Time to Resolve’
• Identify issues with request rate & dependency response times
• Multi-dimensional analyses over custom & default metrics
• Drill through exceptions & failed requests with traces & runtime telemetry
Learn & Improve continuously: UsageChallenges
• Lack of information to prioritize future investments?
Solutions• Understand key adoption trends
• Prioritise investments & support specific client environments
• Custom event instrumentation & client page views
• Correlate usage with perf. telemetry for 360° view
Demo
Solve Problems & Learn Continuously
Implementing Common Scenarios with the SDK
Add Application Insights SDK
SDK Best PracticesAPI Collected by Default? When to Use
Track Page View Yes with JavaScript SDK Want to differentiate with SPA
Track Request Yes with Server SDK
Track Event No Business/Feature usage logging
Track Trace No System logging, treat like your event log
Track Exception Yes but only at HTTP Module with Server SDK
Only exceptions you care about
Track Metric No Performance counters, business metrics
Real World Examples
RoleGuidePowered by SMSG Readiness
Application Insights
Interesting Facts
• More than 95K Accounts & 220K Apps
• More than 11K apps actively using Application Insights
• More than 99% applications from outside Microsoft
• Key lifecycle piece of services like MS Game Studios, Visual Studio Online, MSDN, Office Apps, etc.
“Titanfall delivers an unparalleled multiplayer gaming experience, powered using Azure”• Uses data centers all over• The game figures out where you are• Where the closest Azure data center is• Spins up a server just for you – constantly available set of
servers• AI & NPCs(non-player characters) powered by server• More than 100,000 virtual machines deployed on launch day
...so there is no host advantage in this multiplayer game
Launched on March 11, 2014
Application Insights
monitoring coming …
Working with Exported Data
Used daily for tracking adoption, prioritizing investments and maintaining live site & data platformPipeline is instrumented to track overall business metrics and feature/usage workflowsUsed for Live Site to track availability & performance in real time and fix issues quickly Tremendously useful for providing the service successfully
How Application Insights uses itself?
In conclusion…
PerformanceAvailability
Services + Apps
The EndQuestions?