Upload
lars-yde
View
95
Download
0
Embed Size (px)
Citation preview
Application telemetry & analyticsSHORTLISTED FRAMEWORKS
Which were looked at?
Google Analytics https://analytics.google.com
Application Insights (MS) https://azure.microsoft.com/en-us/services/application-insights/
PIWIK https://piwik.org/
Telerik Analytics (was: EQATEC) http://www.telerik.com/analytics
Why these?
Market penetration, community size, support quality, ecosystem Price = free, at least for starters Alternatives all pretty much offer similar functionality or are
github projects of questionable viability Decent overview at
https://github.com/onurakpolat/awesome-analytics Almost all analytics / telemetry is geared towards web,
comparably few towards desktop applications / general purpose
Terminology heads-up
” Telemetry is an automated communications process by which measurements and other data are collected at remote or inaccessible points and transmitted to receiving equipment for monitoring”
” Analytics is the discovery and communication of meaningful patterns in data. Analytics often favours data visualization to communicate insight.”
Google analytics
The de-facto standard Used in appx 50% of sites that use analytics Price tag = freemium = free for our purposes, potential to
upgrade Intended for online / web but can be easily repurposed to track
desktop applications (C# support) https://github.com/dustyburwell/garlic https://www.nuget.org/packages/Gappalytics/
PIWIK
Leading open alternative to Google Analytics Supports self-hosting, may offset any privacy / security concerns Web / online first, but C# support for desktop tracking
http://piwik.org/integrate/#programming-language-platforms-and-frameworks
Freemium = free, potential to upgrade Open source
https://github.com/piwik
Telerik Analytics
Easy to start using, born with desktop support, cloud-enabled Simple API, simple integration, e.g.
REST API for public data access Query construction and data visualizations
https://www.youtube.com/user/EQATEC Freemium (free limited to 100 app instances per month) Exception and usage monitoring
Application Insights
Integrates into Visual Studio https://docs.microsoft.com/en-us/azure/application-insights/app-insights-
visual-studio Exception and usage monitoring Local monitoring (you’ll get metrics from the last debugging session) Freemium (free up to 1GB data / month) Analytics query language and data visualization
https://docs.microsoft.com/en-us/azure/application-insights/app-insights-analytics-tour
Web/mobile and desktop/services Open source:
https://github.com/Microsoft/ApplicationInsights-dotnet
And the choice is...
Application Insights (Microsoft)
This is why Low overhead: free to get started, cheap to continue Already part of the woodwork:
Integration into Visual Studio (developer mode, debugging) Default data store is Azure, meaning integration with big data analytics Extendible and configurable (see github + nuget = source + packages)
Matches the feature set of competing alternatives + Offline / intermittent connectivity support – will persist data under
%LOCALAPPDATA% and flush later Query analytics: the query language is quite expressive Dashboard visualization Nlog, Log4Net extenders (so legacy logging can be sent off to Azure also)
Perceived low risk choice (because Microsoft) Cost throttling through sampling (don’t have to pay if you don’t want to)
https://docs.microsoft.com/en-us/azure/application-insights/app-insights-sampling
But wait...
In 2014, Microsoft acquired HockeyApp Already market domination in cross-platform metrics and diagnostics
(Android, iOS, OS X, Windows, Cordova, React Native, Unity, Xamarin) https://www.hockeyapp.net/blog/2014/12/11/hockeyapp-joins-microsoft.html
From 2016, HockeyApp is recommended way to integrate Application Insights into mobile and desktop applications https://weblogs.asp.net/bswiger/hockeyappreplacingappinsights
So, should you use HockeyApp or not? Pro: crash reports, beta distribution, cross-platform and mobile, DevOps,
compliant with Microsoft roadmap, future-proof for Milestone rollout Con: extra layer of abstraction, you need a HockeyApp account, more
moving parts, potential surcharge if number of ”apps” increase > 2
<DEMO>
What’s next
Do a minimal implementation that’s still useful To be considered first
What’s possible to metric? What do we want to metric? What are we trying to accomplish? What will we do with the data once we have it?
Handshake with all stakeholders Timeframe: finish the above and ship it in next release
Relevant links
Application Insights announcement https://blogs.msdn.microsoft.com/bharry/2016/03/28/introducing-app
lication-analytics/ Application insights analytics query language
https://docs.microsoft.com/en-us/azure/application-insights/app-insights-analytics-reference
Application insights desktop applications https://docs.microsoft.com/en-us/azure/application-insights/app-insig
hts-windows-desktop Application insights getting started
http://www.hanselman.com/blog/ExploringApplicationInsightsForDisconnectedOrConnectedDeepTelemetryInASPNETApps.aspx