Application telemetry public

14
Application telemetry & analytics SHORTLISTED FRAMEWORKS

Transcript of Application telemetry public

Page 1: Application telemetry public

Application telemetry & analyticsSHORTLISTED FRAMEWORKS

Page 2: Application telemetry public

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

Page 3: Application telemetry public

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

Page 4: Application telemetry public

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.”

Page 5: Application telemetry public

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/

Page 6: Application telemetry public

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

Page 7: Application telemetry public

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

Page 8: Application telemetry public

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

Page 9: Application telemetry public

And the choice is...

Application Insights (Microsoft)

Page 10: Application telemetry public

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

Page 11: Application telemetry public

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

Page 12: Application telemetry public

<DEMO>

Page 13: Application telemetry public

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

Page 14: Application telemetry public

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