1. Meet{cast}
powered by
Roberto Albano
Senior Technical Analyst @ KPMG
MVP Visual Studio and Development Technologies
Community Lead @ dotNET{podcast}
@dancerjude
roberto@dotnetpodcast.com
15. powered by
(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).
Telemetria
16. powered by
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
17. powered by
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
18. powered by
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!
19. powered by
Cos’è Application Insights
Un servizio di analisi dei dati per monitorare l'applicazione attiva
Rileva e diagnostica problemi di prestazioni
Aiuta a capire effettivamente cosa fanno gli utenti con l'applicazione
Pensato per aiutare gli sviluppatori a migliorare prestazioni e facilità di
utilizzo
20. powered by
Cosa possiamo fare con Application Insights
Verificare la disponibilità
Misurare le prestazioni
Capire le modalità di utilizzo
21. powered by
Cosa ci serve per poter partire
Subscription su Azure:
Abbonamento
Pay as you go
Sottoscrizioni MSDN (sviluppo e test)
22. powered by
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
23. powered by
Tipologie di metriche
• Misurazioni (performance e disponibilità)
• Tracciatura (gestione errori e bug solving)
• Conteggio di eventi (utilizzo applicazioni)
24. powered by
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
25. powered by
Metriche di tracciatura (esempi)esempi)
• Numero di richieste errate dal client al server
• Numero di eccezioni sul server
• Numero di eccezioni nel browser
26. powered by
Metriche di conteggio eventi (esempi) (esempi)
• Numero di pagine visitate
• Tipologia di device
• Geolocation di provenienza
27. powered by
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)
28. powered by
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)
32. powered by
Application Insights Analytics
• Un potente strumento di interrogazione
• Esegue query su enormi quantità di dati in pochi secondi
• Usa un suo linguaggio proprietario
• Consente l’export dei dati ottenuti
34. powered by
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)
35. powered by
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)
38. powered by
Application Insights Profiler
• Introdotto circa un anno 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
39. powered by
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
40. powered by
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
41. powered by
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
42. powered by
TelemetryClient - API disponibili
using Microsoft.ApplicationInsights;
var telemetry = new TelemetryClient();
telemetry.TrackEvent("Loading Home-Index View");
Un esempio di custom event «semplice»
43. powered by
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»
49. powered by
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 Microsoft
(al momento 28 progetti)