SlideShare a Scribd company logo
#DOH17
2
Application Insights
Power is nothing without control
Roberto Albano
MVP Visual Studio and Development Technologies
Community Lead @ dotNETpodcast.com
@dancerjude
roberto@dotnetpodcast.com
3
Organizer & sponsors
GetLatestVersion.it
4
Agenda
• Cos’è Application Insights
• Azure dashboard
• Codice
• Conclusioni
5
La Potenza…
6
Telemetria
(da Wikipedia, l'enciclopedia libera)
La Telemetria è una tecnologia informatica che permette la
misurazione e la trascrizione di Informazioni di interesse al
progettista di sistema o all'operatore.
La parola deriva dalle radici greche (tele = lontano, e metron = misura).
7
Perché abbiamo bisogno della telemetria
• È dura creare software di successo
• Le scelte di business dipendono dai dati a disposizione
• Perché è sempre meglio sapere che non sapere
8
WAS or APM? Just Telemetry!
...in realtà sembra che sia…
• Web Analytics Software (WAS)
• ad esempio Google Analytics, Piwik, StatCounter…
• Application Performance Management (APM)
• secondo la documentazione Microsoft
9
Cos’è Application Insights
Tre parole per spiegare tutto:
• Telemetry
• Cloud
• Developers
Quali applicazioni possiamo monitorare
Applicazioni / Servizi Web
• Asp.Net
• Java
• altre (es PHP, Ruby, ecc.)
N.B. Le applicazioni Web non devono per forza risiedere su Azure!
Cos’è Application Insights
• Un servizio di analisi dei dati che consente di monitorare
l'applicazione attiva.
• Consente di rilevare e diagnosticare problemi di prestazioni
• Aiuta a capire ciò che gli utenti effettivamente fanno con
l'applicazione.
• Pensato per aiutare gli sviluppatori a migliorare prestazioni e
facilità di utilizzo
Cosa possiamo fare con Application Insights
• Verificare la disponibilità
• Misurare le prestazioni
• Capire le modalità di utilizzo
Cosa ci serve per poter partire
Subscription su Azure:
• Abbonamento
• Pay as you go
• Sottoscrizioni MSDN (sviluppo e test)
Le metriche
• Una metrica è l’indicatore della nostra misurazione
• Composta da un insieme di «data point»
• Una metrica per ogni aspetto da monitorare
• Telemetria: una o più metriche
Tipologie di metriche
• Misurazioni (performance e disponibilità)
• Tracciatura (gestione errori e bug solving)
• Conteggio di eventi (utilizzo applicazioni)
Metriche di misurazione (esempi)
• Tempi di invio della richiesta
• Tempi di risposta del server
• Tempi di caricamento della response
• Tempi di caricamento della pagina nel browser
Metriche di tracciatura (esempi)esempi)
• Numero di richieste errate dal client al server
• Numero di eccezioni sul server
• Numero di eccezioni nel browser
Metriche di conteggio eventi (esempi) (esempi)
• Numero di pagine visitate
• Tipologia di device
• Geolocation di provenienza
Altre caratteristiche
• Possibilità di molteplici ambienti
gestire stage diversi (es. sviluppo, collaudo, produzione)
• Application Insights Analytics
strumento per «query» custom (con esportazione dati)
• Dati e Report
esportazione dati automatizzata (funzionalità a pagamento)
Altre caratteristiche
• Application Map
diagramma delle dipendenze tra i componenti (e relativi indicatori)
• Smart Detection
avvisi automatici per potenziali problemi alla web application (no configuration)
• Application Profiler
diagnostica su app service (solo su web app ospitate su Azure)
Altre caratteristiche
• Utilizzabile da PowerBI
senza necessità di export
• Accesso da REST API
accesso dati
Azure Dashboard
Demo
Application Insights Analytics
• Un potente strumento messo a disposizione più di un anno fa
• Esegue «query» su enormi quantità di dati in pochi secondi
• Usa un suo linguaggio proprietario
• Consente l’export dei dati ottenuti
Application Insights Analytics
Application Insights Analytics
Alcuni esempi di query:
requests
| limit 5
requests
| limit 5
| project timestamp, url
ultime 5 richieste (tutti i campi)
ultime 5 richieste (solo due campi)
Application Insights Analytics
Alcuni esempi di query:
richieste nelle ultime 24 ore
richieste a partire da una data
requests
| where timestamp >= ago(24h)
requests
| where timestamp >= datetime(2017-01-01)
Application Insights Analytics
Rappresentazione del risultato:
Application Insights Analytics
Demo
Application Insights Profiler
• Introdotto pochi mesi fa
• Consente di diagnosticare problemi di performance in Azure
• Calcola migliori, peggiori e medie performance
• Analizza performance infrastrutturali
• Verrà introdotto anche su altre risorse di Azure
Application Insights Profiler
• Non influisce sulle performance attuali
• Applicabile solo su Azure App Service ospitate su Azure
• Richiede SDK AI versione 2.2 o superiore nell’applicazione
SDK disponibili
• Server ASP.NET (in Azure o IIS on-premises)
• Servizi cloud di Azure
• Server J2EE
• Pagine Web: HTML+JavaScript
• Altre piattaforme: Node.js, PHP, Python, Ruby, Joomla,
SharePoint, WordPress, Docker
TelemetryClient - API disponibili
Metodo Utilizzo
TrackPageView Pagine, schermo, form, ecc.
TrackEvent Eventi utenti o applicativi
TrackMetric Metriche
TrackException Eccezioni
TrackRequest Caratteristiche request
TrackTrace Messaggi diagnostica
TrackDependency Monitoraggio dipendenze
TelemetryClient - API disponibili
using Microsoft.ApplicationInsights;
var telemetry = new TelemetryClient();
telemetry.TrackEvent("Loading Home-Index View");
Un esempio di custom event «semplice»
TelemetryClient - API disponibili
var properties = new Dictionary <string, string>{
{"game", currentGame.Name},
{"difficulty", currentGame.Difficulty}
};
var measurements = new Dictionary <string, double>{
{"Score", currentGame.Score},
{"Opponents", currentGame.OpponentCount}
};
telemetry.TrackEvent("WinGame", properties, measurements);
Un esempio di custom event «complesso»
Demo
Codice
Tutto bello… ma quanto costa ?
Documentazione, tutorial e link utili
• aka.ms/AIGetStarted
Application Insights Get Started page (Eng)
• bit.ly/MsApplicationInsights
Microsoft Application Insights Documentazione (Ita)
• bit.ly/UTNApplicationInsights
Articoli Blog «un tipo neuroso» (Ita)
• bit.ly/MsAIGitHub
Progetti SDK su GitHub di Microsoft per le varie piattaforme
Tutti abbiamo necessità di controllo...
…più controllo
possibile…
…certo, non bisogna
esagerare :-)
Tutti abbiamo bisogno della telemetria...
…quasi tutti…
:-)
Question Time
THANK YOU!
#DOH17

More Related Content

Similar to Application insights - Power is nothing without control

Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applicationsDotNetCampus
 
iVision Software 2.3
iVision Software 2.3iVision Software 2.3
iVision Software 2.3
ivisionweb
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload Analysis
Gianluca Sartori
 
Gestione integrata di reti di distribuzione idrica e gas
Gestione integrata di reti di distribuzione idrica e gasGestione integrata di reti di distribuzione idrica e gas
Gestione integrata di reti di distribuzione idrica e gas
Servizi a rete
 
Scenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in AziendaScenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in Azienda
Consulthinkspa
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
Fabio Armani
 
App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
Giuneco S.r.l
 
Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance Tools
Andrea Tosato
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
Marco Parenzan
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
DotNetMarche
 
Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018
Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018
Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018
Data-labs
 
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptxImpara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
EduardCapanu
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
Marco Parenzan
 
Plenaria 17 06 15
Plenaria 17 06 15Plenaria 17 06 15
Plenaria 17 06 15
PAT
 
Azure functions
Azure functionsAzure functions
Azure functions
Andrea Tosato
 
Google Analytics - intruduzione
Google Analytics - intruduzioneGoogle Analytics - intruduzione
Google Analytics - intruduzione
FLT.lab
 
v2 Presentazione Lelli
v2 Presentazione Lelliv2 Presentazione Lelli
v2 Presentazione LelliMatteo Lelli
 
Introduzione ai Coded UI Tests
Introduzione ai Coded UI TestsIntroduzione ai Coded UI Tests
Introduzione ai Coded UI Tests
Pietro Libro
 
Dml Web Analytics Buyer Guide
Dml Web Analytics Buyer GuideDml Web Analytics Buyer Guide
Dml Web Analytics Buyer Guide
DML Srl
 

Similar to Application insights - Power is nothing without control (20)

Cert03 70-486 developing asp.net mvc 4 web applications
Cert03   70-486 developing asp.net mvc 4 web applicationsCert03   70-486 developing asp.net mvc 4 web applications
Cert03 70-486 developing asp.net mvc 4 web applications
 
iVision Software 2.3
iVision Software 2.3iVision Software 2.3
iVision Software 2.3
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload Analysis
 
Gestione integrata di reti di distribuzione idrica e gas
Gestione integrata di reti di distribuzione idrica e gasGestione integrata di reti di distribuzione idrica e gas
Gestione integrata di reti di distribuzione idrica e gas
 
Scenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in AziendaScenari introduzione Application Service Governance in Azienda
Scenari introduzione Application Service Governance in Azienda
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 
App Mobile Powerapps
App Mobile PowerappsApp Mobile Powerapps
App Mobile Powerapps
 
Visual Studio Performance Tools
Visual Studio Performance ToolsVisual Studio Performance Tools
Visual Studio Performance Tools
 
Power BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT CentralPower BI Streaming Data Flow e Azure IoT Central
Power BI Streaming Data Flow e Azure IoT Central
 
Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)Introduzione al Domain Driven Design (DDD)
Introduzione al Domain Driven Design (DDD)
 
Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018
Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018
Datalabs - Digital360 Awards - analisi predittiva-big data analytics - 2018
 
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptxImpara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptx
 
Power BI data flow and Azure IoT Central
Power BI data flow and Azure IoT CentralPower BI data flow and Azure IoT Central
Power BI data flow and Azure IoT Central
 
Plenaria 17 06 15
Plenaria 17 06 15Plenaria 17 06 15
Plenaria 17 06 15
 
Azure functions
Azure functionsAzure functions
Azure functions
 
Google Analytics - intruduzione
Google Analytics - intruduzioneGoogle Analytics - intruduzione
Google Analytics - intruduzione
 
v2 Presentazione Lelli
v2 Presentazione Lelliv2 Presentazione Lelli
v2 Presentazione Lelli
 
Introduzione ai Coded UI Tests
Introduzione ai Coded UI TestsIntroduzione ai Coded UI Tests
Introduzione ai Coded UI Tests
 
Dml Web Analytics Buyer Guide
Dml Web Analytics Buyer GuideDml Web Analytics Buyer Guide
Dml Web Analytics Buyer Guide
 

More from Roberto Albano

Codegen2018 Quantum Computing
Codegen2018 Quantum ComputingCodegen2018 Quantum Computing
Codegen2018 Quantum Computing
Roberto Albano
 
Pubblica la tua app sul nuovo Windows Store
Pubblica la tua app sul nuovo Windows StorePubblica la tua app sul nuovo Windows Store
Pubblica la tua app sul nuovo Windows Store
Roberto Albano
 
Introduzione a Microsoft Azure
Introduzione a Microsoft AzureIntroduzione a Microsoft Azure
Introduzione a Microsoft Azure
Roberto Albano
 
Comprendere l'architettura service oriented
Comprendere l'architettura service orientedComprendere l'architettura service oriented
Comprendere l'architettura service orientedRoberto Albano
 

More from Roberto Albano (7)

Codegen2018 Quantum Computing
Codegen2018 Quantum ComputingCodegen2018 Quantum Computing
Codegen2018 Quantum Computing
 
Pubblica la tua app sul nuovo Windows Store
Pubblica la tua app sul nuovo Windows StorePubblica la tua app sul nuovo Windows Store
Pubblica la tua app sul nuovo Windows Store
 
Introduzione a Microsoft Azure
Introduzione a Microsoft AzureIntroduzione a Microsoft Azure
Introduzione a Microsoft Azure
 
Comprendere l'architettura service oriented
Comprendere l'architettura service orientedComprendere l'architettura service oriented
Comprendere l'architettura service oriented
 
Architettura web
Architettura webArchitettura web
Architettura web
 
Ajax
AjaxAjax
Ajax
 
Accessibilità
AccessibilitàAccessibilità
Accessibilità
 

Application insights - Power is nothing without control

  • 2. 2 Application Insights Power is nothing without control Roberto Albano MVP Visual Studio and Development Technologies Community Lead @ dotNETpodcast.com @dancerjude roberto@dotnetpodcast.com
  • 4. 4 Agenda • Cos’è Application Insights • Azure dashboard • Codice • Conclusioni
  • 6. 6 Telemetria (da Wikipedia, l'enciclopedia libera) La Telemetria è una tecnologia informatica che permette la misurazione e la trascrizione di Informazioni di interesse al progettista di sistema o all'operatore. La parola deriva dalle radici greche (tele = lontano, e metron = misura).
  • 7. 7 Perché abbiamo bisogno della telemetria • È dura creare software di successo • Le scelte di business dipendono dai dati a disposizione • Perché è sempre meglio sapere che non sapere
  • 8. 8 WAS or APM? Just Telemetry! ...in realtà sembra che sia… • Web Analytics Software (WAS) • ad esempio Google Analytics, Piwik, StatCounter… • Application Performance Management (APM) • secondo la documentazione Microsoft
  • 9. 9 Cos’è Application Insights Tre parole per spiegare tutto: • Telemetry • Cloud • Developers
  • 10. Quali applicazioni possiamo monitorare Applicazioni / Servizi Web • Asp.Net • Java • altre (es PHP, Ruby, ecc.) N.B. Le applicazioni Web non devono per forza risiedere su Azure!
  • 11. Cos’è Application Insights • Un servizio di analisi dei dati che consente di monitorare l'applicazione attiva. • Consente di rilevare e diagnosticare problemi di prestazioni • Aiuta a capire ciò che gli utenti effettivamente fanno con l'applicazione. • Pensato per aiutare gli sviluppatori a migliorare prestazioni e facilità di utilizzo
  • 12. Cosa possiamo fare con Application Insights • Verificare la disponibilità • Misurare le prestazioni • Capire le modalità di utilizzo
  • 13. Cosa ci serve per poter partire Subscription su Azure: • Abbonamento • Pay as you go • Sottoscrizioni MSDN (sviluppo e test)
  • 14. Le metriche • Una metrica è l’indicatore della nostra misurazione • Composta da un insieme di «data point» • Una metrica per ogni aspetto da monitorare • Telemetria: una o più metriche
  • 15. Tipologie di metriche • Misurazioni (performance e disponibilità) • Tracciatura (gestione errori e bug solving) • Conteggio di eventi (utilizzo applicazioni)
  • 16. Metriche di misurazione (esempi) • Tempi di invio della richiesta • Tempi di risposta del server • Tempi di caricamento della response • Tempi di caricamento della pagina nel browser
  • 17. Metriche di tracciatura (esempi)esempi) • Numero di richieste errate dal client al server • Numero di eccezioni sul server • Numero di eccezioni nel browser
  • 18. Metriche di conteggio eventi (esempi) (esempi) • Numero di pagine visitate • Tipologia di device • Geolocation di provenienza
  • 19. Altre caratteristiche • Possibilità di molteplici ambienti gestire stage diversi (es. sviluppo, collaudo, produzione) • Application Insights Analytics strumento per «query» custom (con esportazione dati) • Dati e Report esportazione dati automatizzata (funzionalità a pagamento)
  • 20. Altre caratteristiche • Application Map diagramma delle dipendenze tra i componenti (e relativi indicatori) • Smart Detection avvisi automatici per potenziali problemi alla web application (no configuration) • Application Profiler diagnostica su app service (solo su web app ospitate su Azure)
  • 21. Altre caratteristiche • Utilizzabile da PowerBI senza necessità di export • Accesso da REST API accesso dati
  • 23. Application Insights Analytics • Un potente strumento messo a disposizione più di un anno fa • Esegue «query» su enormi quantità di dati in pochi secondi • Usa un suo linguaggio proprietario • Consente l’export dei dati ottenuti
  • 25. Application Insights Analytics Alcuni esempi di query: requests | limit 5 requests | limit 5 | project timestamp, url ultime 5 richieste (tutti i campi) ultime 5 richieste (solo due campi)
  • 26. Application Insights Analytics Alcuni esempi di query: richieste nelle ultime 24 ore richieste a partire da una data requests | where timestamp >= ago(24h) requests | where timestamp >= datetime(2017-01-01)
  • 29. Application Insights Profiler • Introdotto pochi mesi fa • Consente di diagnosticare problemi di performance in Azure • Calcola migliori, peggiori e medie performance • Analizza performance infrastrutturali • Verrà introdotto anche su altre risorse di Azure
  • 30. Application Insights Profiler • Non influisce sulle performance attuali • Applicabile solo su Azure App Service ospitate su Azure • Richiede SDK AI versione 2.2 o superiore nell’applicazione
  • 31. SDK disponibili • Server ASP.NET (in Azure o IIS on-premises) • Servizi cloud di Azure • Server J2EE • Pagine Web: HTML+JavaScript • Altre piattaforme: Node.js, PHP, Python, Ruby, Joomla, SharePoint, WordPress, Docker
  • 32. TelemetryClient - API disponibili Metodo Utilizzo TrackPageView Pagine, schermo, form, ecc. TrackEvent Eventi utenti o applicativi TrackMetric Metriche TrackException Eccezioni TrackRequest Caratteristiche request TrackTrace Messaggi diagnostica TrackDependency Monitoraggio dipendenze
  • 33. TelemetryClient - API disponibili using Microsoft.ApplicationInsights; var telemetry = new TelemetryClient(); telemetry.TrackEvent("Loading Home-Index View"); Un esempio di custom event «semplice»
  • 34. TelemetryClient - API disponibili var properties = new Dictionary <string, string>{ {"game", currentGame.Name}, {"difficulty", currentGame.Difficulty} }; var measurements = new Dictionary <string, double>{ {"Score", currentGame.Score}, {"Opponents", currentGame.OpponentCount} }; telemetry.TrackEvent("WinGame", properties, measurements); Un esempio di custom event «complesso»
  • 36. Tutto bello… ma quanto costa ?
  • 37. Documentazione, tutorial e link utili • aka.ms/AIGetStarted Application Insights Get Started page (Eng) • bit.ly/MsApplicationInsights Microsoft Application Insights Documentazione (Ita) • bit.ly/UTNApplicationInsights Articoli Blog «un tipo neuroso» (Ita) • bit.ly/MsAIGitHub Progetti SDK su GitHub di Microsoft per le varie piattaforme
  • 38. Tutti abbiamo necessità di controllo... …più controllo possibile… …certo, non bisogna esagerare :-)
  • 39. Tutti abbiamo bisogno della telemetria... …quasi tutti… :-)

Editor's Notes

  1. var properties = new Dictionary <string, string> 03.   {{"game", currentGame.Name}, {"difficulty", currentGame.Difficulty}}; 04.  05.var measurements = new Dictionary <string, double> 06.   {{"Score", currentGame.Score}, {"Opponents", currentGame.OpponentCount}};</p> 07.  08.// Send the event: 09.telemetry.TrackEvent("WinGame", properties, measurements);
  2. Creazione nuovo progetto con Application Insights Aggiunta Application Insights ad un progetto esistente Instrumentation Key Instrumentation Key per svilupo e produzione Catch di tutti gli errori con AI Registrazione eventi con AI
  3. Creazione nuovo progetto con Application Insights Aggiunta Application Insights ad un progetto esistente Instrumentation Key Instrumentation Key per svilupo e produzione Catch di tutti gli errori con AI Registrazione eventi con AI