Advanced Application Insights
(more control, more power)
Mi presento
Roberto Albano
@dancerjude
roberto@dotnetpodcast.com
Membro fondatore community dotNET{podcast}
Membro community DomusDotNet
Funzionario Sistemi Informativi @ LUISS Guido Carli
MVP Visual Studio and Development Technologies
Pubblicità occulta
www.dotnetpodcast.com
Agenda
•Cos’è Application Insights
•Azure dashboard
•Codice
•Conclusioni
La Potenza…
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).
Cos’è Application Insights
•Telemetry
• Cloud
• Developers
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
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
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
(solo sviluppo e test)
Quali applicazioni possiamo monitorare
Applicazioni / ServiziWeb
•Asp.Net
•Java
•altre (es PHP, Ruby, ecc.)
N.B. Le applicazioni Web non devono per forza risiedere su Azure!
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)
•Numero di richieste errate dal client al server
•Numero di eccezioni sul server
•Numero di eccezioni nel browser
Metriche di conteggio eventi (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 InsightsAnalytics
strumento per «query» custom (con esportazione dati)
•Dati e Report
esportazione dati automatizzata (funzionalità a pagamento)
Azure Dashboard
(+ Application Insights Analytics)
SDK disponibili
• Server ASP.NET (in Azure o IIS on-premises)
• Servizi cloud di Azure
• Server J2EE
• PagineWeb: 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
Tutto bello… ma quanto costa ?
Documentazione, tutorial e link utili
•http://bit.ly/MsApplicationInsights
Microsoft Application Insights Documentation
•http://bit.ly/Ch9ApplicationInsights
Channel 9 Application InsightsVideos
•http://bit.ly/UTNApplicationInsights
Articoli Blog «un tipo neuroso»
•http://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
…tanto io non
vi rispondo…
Fate tutte le
domande che
volete…
Thanks to our Sponsors
Feedback Form
Compilate il feedback form!!
Aiutateci a migliorare la qualità degli eventi!!!
Track B
http://svy.mk/2leDPWR
Grazie!

DevOps@Work 2017 - Application insights more control, more power

  • 1.
  • 2.
    Mi presento Roberto Albano @dancerjude roberto@dotnetpodcast.com Membrofondatore community dotNET{podcast} Membro community DomusDotNet Funzionario Sistemi Informativi @ LUISS Guido Carli MVP Visual Studio and Development Technologies
  • 3.
  • 4.
    Agenda •Cos’è Application Insights •Azuredashboard •Codice •Conclusioni
  • 5.
  • 6.
    Telemetria (da Wikipedia, l'enciclopedialibera) 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.
  • 8.
    Cos’è Application Insights •Unservizio 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
  • 9.
    Perchè abbiamo bisognodella telemetria •È dura creare software di successo •Le scelte di business dipendono dai dati a disposizione •Perchè è sempre meglio sapere che non sapere
  • 10.
    Cosa possiamo farecon Application Insights • Verificare la disponibilità • Misurare le prestazioni • Capire le modalità di utilizzo
  • 11.
    Cosa ci serveper poter partire Subscription su Azure • Abbonamento • Pay as you go • sottoscrizioni MSDN (solo sviluppo e test)
  • 12.
    Quali applicazioni possiamomonitorare Applicazioni / ServiziWeb •Asp.Net •Java •altre (es PHP, Ruby, ecc.) N.B. Le applicazioni Web non devono per forza risiedere su Azure!
  • 13.
    Tipologie di metriche •Misurazioni performancee disponibilità •Tracciatura gestione errori e bug solving •Conteggio di eventi utilizzo applicazioni
  • 14.
    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
  • 15.
    Metriche di tracciatura(esempi) •Numero di richieste errate dal client al server •Numero di eccezioni sul server •Numero di eccezioni nel browser
  • 16.
    Metriche di conteggioeventi (esempi) •Numero di pagine visitate •Tipologia di device •Geolocation di provenienza
  • 17.
    Altre caratteristiche •Possibilità dimolteplici ambienti gestire stage diversi (es. sviluppo, collaudo, produzione) •Application InsightsAnalytics strumento per «query» custom (con esportazione dati) •Dati e Report esportazione dati automatizzata (funzionalità a pagamento)
  • 18.
    Azure Dashboard (+ ApplicationInsights Analytics)
  • 19.
    SDK disponibili • ServerASP.NET (in Azure o IIS on-premises) • Servizi cloud di Azure • Server J2EE • PagineWeb: HTML+JavaScript • Altre piattaforme: Node.js, PHP, Python, Ruby, Joomla, SharePoint, WordPress, Docker
  • 20.
    TelemetryClient - APIdisponibili 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
  • 21.
    TelemetryClient - APIdisponibili using Microsoft.ApplicationInsights; var telemetry = new TelemetryClient(); telemetry.TrackEvent("Loading Home-Index View"); Un esempio di custom event «semplice»
  • 22.
    TelemetryClient - APIdisponibili 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»
  • 23.
  • 24.
    Tutto bello… maquanto costa ?
  • 25.
    Documentazione, tutorial elink utili •http://bit.ly/MsApplicationInsights Microsoft Application Insights Documentation •http://bit.ly/Ch9ApplicationInsights Channel 9 Application InsightsVideos •http://bit.ly/UTNApplicationInsights Articoli Blog «un tipo neuroso» •http://bit.ly/MsAIGitHub Progetti SDK su GitHub di Microsoft per le varie piattaforme
  • 26.
    Tutti abbiamo necessitàdi controllo... …più controllo possibile… …certo, non bisogna esagerare :-)
  • 27.
    Tutti abbiamo bisognodella telemetria... …quasi tutti… :-)
  • 28.
    Question time …tanto ionon vi rispondo… Fate tutte le domande che volete…
  • 29.
    Thanks to ourSponsors
  • 30.
    Feedback Form Compilate ilfeedback form!! Aiutateci a migliorare la qualità degli eventi!!! Track B http://svy.mk/2leDPWR Grazie!

Editor's Notes

  • #22 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);
  • #24 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