Performance monitoring in
DevOps world
Taavi Koosaar, Solidify
Solidifys processer för
mjukvaruutveckling låter dig som
utvecklingschef, IT-chef eller
affärsutvecklare fokusera på rätt saker.
Resultatet är mer programvara, av
bättre kvalitet, snabbare och till lägre
kostnad.
About …
Taavi Koosaar
DevOps Consultant, Solidify AB
taavik@solidify.se
@melborp | linkedin.com/in/taavik
Microsoft MVP – Visual Studio ALM
Microsoft ALM Ranger
Agenda
• Application Performance Management (APM) importance in DevOps
• Application Insights
– Get started in Dev or Ops
– Monitor how your ”Application” is doing
– Detect, Diagnose and Investigate
– Build, Measure, Learn
Before we begin … quizbox challange
• bit.ly/quizbox
APM importance in DevOps
Backlog
Requirements
Plan
Develop + test Release
Monitor + learn
What is application insights?
Telemetry is collected at each
tier: server applications and
browser1
Telemetry arrives in the
Application Insights service in the
cloud where it is processed &
stored
Get a 360° view of the application
including availability, performance
and usage patterns
3
2
Sources of Telemetry
1
Outside-in monitoring
URL pings and web tests from 16
global points of presence
Observed user behavior
How is the application being used?2
Developer traces and events
Whatever the developer would like to
send to Application Insights
3
Observed application behavior
No coding required – service dependencies,
queries, response time, exceptions, logs, etc.
4
Infrastructure performance
System performance counters5
Platforms and Features
• https://azure.microsoft.com/en-us/documentation/articles/app-insights-platforms/
• https://github.com/search?q=org%3AMicrosoft+applicationinsight
Docker Java / J2EE
Client side (JS)
ASP.NET .NET Core
nodejs
Windows Service
WCF
Azure Cloud Services
PHP
Python
Ruby
Usage
monitoring
Proactive
detection
Instrument
existing app
Availability
monitoring
Performance
Server
and Client
Diagnostics
and Exceptions
Custom metrices
Custom Events
Application Map
Web Tests
Performance Tests
Analytics
Api Access
Metrics Explorer
Status Monitor
Get Started - Instrumentation
• Add SDK to application
– NuGet package
– Java Eclipse plugin, maven, gradle, …
– Npm
– …
• Existing application using
– IIS Status Monitor
– Azure App Service Extension
– HttpFilter for Java
– …
Monitor - Dashboards
Monitor – using Azure dashboards
• You can create and share dashboards within organization
– Limit access to dashboard
– Shared dashboards become resources
– Shared dashboards can show graphs from Analytics
• You can pin things to your dashboards
• You can have many dashboards
Monitor - Dashboards
Monitor – Live Metrices Stream
Monitor - Availability & Alerts
• Use simple or multi-step web tests for
availability
• Run from 16 locations
Detect - Proactive detection & alert rules
• Intelligent APM – will identify anomalies and alert on that
• Configure thresholds and alerts
• Create work items based on dependency failures and exceptions
– But only the ones critical and confirmed, not for every
Detect & Triage – Application Map
Triage: Analytics
• It is the big data service that ingests and makes data close to real time
available
• You can create SQL like custom queries and instantly visualize them
• You can pin the query to published Azure Dashboard
• This is a great tool to triage and understand the impact of something
(response time slow) on users or other aspects
Investigate: Use Failures & Performance blades
Build, Measure, Learn
Custom Events
• Capture user behavior using
application insights tracing
and (custom) events
• Have meaningful custom events
that are valuable business
functionalities
• Use it to evaluate experimental
features
Release Annotations & VSTS Dashboard
• You can bring application insights information
to VSTS Dashboard as well
• You correlate your releases with application
insights and create a marker
Old Pricing
New Pricing
Tons of things i didnt cover
• You can connect Application Insight data to PowerBI
• You continuous export data to e.g. Redshift in amazon using alooma
• Performance Testing
• Preview features
– Analytics diagnoses sudden changes in your data
– Application Insights Map - Multiple server components from different AI resources within
the same resource group
– Application Insights Profiler
Application Insights Profiler
• The app you want to profile is an ASP.NET application running as an Azure
Web App.
– Azure WebJobs and ASP.NET Core Apps are currently NOT supported.
• Application Insights SDK 2.2 Beta or later is enabled on your web app.
• The Web App Service Plan must be Basic tier or above.
– Note that App Service needs to be AlwaysOn, which can cause deployment failures with
ARM templates
• https://github.com/Microsoft/ApplicationInsights-Home/blob/master/app-
insights-profiler-preview.md
Getting started
• Easiest to add the nuget package to your project
– Microsoft.ApplicationInsights
• Instrument existing applications using Status Monitor, Azure AI extenion,
HttpFilter
– IIS, ASP.NET, Java, ACS
• If you dont have a project to play with – take one from Azure Samples
– https://azure.microsoft.com/en-us/documentation/samples/
• Or go to Get Started on the Application Insight resource in Azure Portal
Thank you!
Taavi Koosaar, taavik@solidify.se
/in/taavik | @melborp

Performance monitoring in a DevOps World

  • 1.
    Performance monitoring in DevOpsworld Taavi Koosaar, Solidify
  • 2.
    Solidifys processer för mjukvaruutvecklinglåter dig som utvecklingschef, IT-chef eller affärsutvecklare fokusera på rätt saker. Resultatet är mer programvara, av bättre kvalitet, snabbare och till lägre kostnad.
  • 3.
    About … Taavi Koosaar DevOpsConsultant, Solidify AB taavik@solidify.se @melborp | linkedin.com/in/taavik Microsoft MVP – Visual Studio ALM Microsoft ALM Ranger
  • 4.
    Agenda • Application PerformanceManagement (APM) importance in DevOps • Application Insights – Get started in Dev or Ops – Monitor how your ”Application” is doing – Detect, Diagnose and Investigate – Build, Measure, Learn
  • 5.
    Before we begin… quizbox challange • bit.ly/quizbox
  • 6.
    APM importance inDevOps Backlog Requirements Plan Develop + test Release Monitor + learn
  • 7.
    What is applicationinsights? Telemetry is collected at each tier: server applications and browser1 Telemetry arrives in the Application Insights service in the cloud where it is processed & stored Get a 360° view of the application including availability, performance and usage patterns 3 2
  • 8.
    Sources of Telemetry 1 Outside-inmonitoring URL pings and web tests from 16 global points of presence Observed user behavior How is the application being used?2 Developer traces and events Whatever the developer would like to send to Application Insights 3 Observed application behavior No coding required – service dependencies, queries, response time, exceptions, logs, etc. 4 Infrastructure performance System performance counters5
  • 9.
    Platforms and Features •https://azure.microsoft.com/en-us/documentation/articles/app-insights-platforms/ • https://github.com/search?q=org%3AMicrosoft+applicationinsight Docker Java / J2EE Client side (JS) ASP.NET .NET Core nodejs Windows Service WCF Azure Cloud Services PHP Python Ruby Usage monitoring Proactive detection Instrument existing app Availability monitoring Performance Server and Client Diagnostics and Exceptions Custom metrices Custom Events Application Map Web Tests Performance Tests Analytics Api Access Metrics Explorer Status Monitor
  • 10.
    Get Started -Instrumentation • Add SDK to application – NuGet package – Java Eclipse plugin, maven, gradle, … – Npm – … • Existing application using – IIS Status Monitor – Azure App Service Extension – HttpFilter for Java – …
  • 12.
  • 13.
    Monitor – usingAzure dashboards • You can create and share dashboards within organization – Limit access to dashboard – Shared dashboards become resources – Shared dashboards can show graphs from Analytics • You can pin things to your dashboards • You can have many dashboards
  • 14.
  • 15.
    Monitor – LiveMetrices Stream
  • 16.
    Monitor - Availability& Alerts • Use simple or multi-step web tests for availability • Run from 16 locations
  • 17.
    Detect - Proactivedetection & alert rules • Intelligent APM – will identify anomalies and alert on that • Configure thresholds and alerts • Create work items based on dependency failures and exceptions – But only the ones critical and confirmed, not for every
  • 18.
    Detect & Triage– Application Map
  • 19.
    Triage: Analytics • Itis the big data service that ingests and makes data close to real time available • You can create SQL like custom queries and instantly visualize them • You can pin the query to published Azure Dashboard • This is a great tool to triage and understand the impact of something (response time slow) on users or other aspects
  • 20.
    Investigate: Use Failures& Performance blades
  • 21.
  • 22.
    Custom Events • Captureuser behavior using application insights tracing and (custom) events • Have meaningful custom events that are valuable business functionalities • Use it to evaluate experimental features
  • 24.
    Release Annotations &VSTS Dashboard • You can bring application insights information to VSTS Dashboard as well • You correlate your releases with application insights and create a marker
  • 25.
  • 26.
  • 27.
    Tons of thingsi didnt cover • You can connect Application Insight data to PowerBI • You continuous export data to e.g. Redshift in amazon using alooma • Performance Testing • Preview features – Analytics diagnoses sudden changes in your data – Application Insights Map - Multiple server components from different AI resources within the same resource group – Application Insights Profiler
  • 28.
    Application Insights Profiler •The app you want to profile is an ASP.NET application running as an Azure Web App. – Azure WebJobs and ASP.NET Core Apps are currently NOT supported. • Application Insights SDK 2.2 Beta or later is enabled on your web app. • The Web App Service Plan must be Basic tier or above. – Note that App Service needs to be AlwaysOn, which can cause deployment failures with ARM templates • https://github.com/Microsoft/ApplicationInsights-Home/blob/master/app- insights-profiler-preview.md
  • 29.
    Getting started • Easiestto add the nuget package to your project – Microsoft.ApplicationInsights • Instrument existing applications using Status Monitor, Azure AI extenion, HttpFilter – IIS, ASP.NET, Java, ACS • If you dont have a project to play with – take one from Azure Samples – https://azure.microsoft.com/en-us/documentation/samples/ • Or go to Get Started on the Application Insight resource in Azure Portal
  • 30.
    Thank you! Taavi Koosaar,taavik@solidify.se /in/taavik | @melborp