Skip to content

Telemetry

YingXue edited this page Nov 16, 2022 · 12 revisions

Goal

Collect telemetry data on how Azure IoT Explorer is used to make data-driven decisions about future work items.

Implementation

Power BI Dashboard
https://msit.powerbi.com/groups/350e9805-0cf6-4f7c-b525-40477e281ec1/reports/ed90eca6-f15e-4ca7-bf0f-3b649a802d57?ctid=72f988bf-86f1-41af-91ab-2d7cd011db47&pbi_source=linkShare

iotExplorerInsights: Azure Application Insights resource for collecting telemetry data https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/a386d5ea-ea90-441a-8263-d816368c84a1/resourceGroups/iotExplorerTelemetry/providers/microsoft.insights/components/iotExplorerInsights/overview

iotExplorerInsights_DEV: Azure Application Insights resource for separating telemetry data logged in a development environment
** use this when testing new telemetry logging
https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/a386d5ea-ea90-441a-8263-d816368c84a1/resourceGroups/iotExplorerTelemetry/providers/microsoft.insights/components/iotExplorerInsights_DEV/overview

iotExplorerWorkspace: Common Azure Log Analytics workspace that the two Application Insights feed into https://ms.portal.azure.com/#@microsoft.onmicrosoft.com/resource/subscriptions/a386d5ea-ea90-441a-8263-d816368c84a1/resourceGroups/iotExplorerTelemetry/providers/Microsoft.OperationalInsights/workspaces/iotExplorerWorkspace/Overview

Adding Telemetry

Once your code is released:

How Current Data is Collected

  • Daily users - automatically collected by the Application Insights Javascript SDK, "Users are counted by using anonymous IDs stored in browser cookies. A single person using different browsers or machines will be counted as more than one user."
  • Views per page - a single PageView event is logged each time that page is loaded
  • Page view duration - logged by @microsoft/applicationinsights-web, see autoTrackPageVisitTime
  • User actions - a single CustomEvent called "user_action" is logged each time a button to perform a meaningful user action is clicked
  • Download data - pulled from https://api.github.com/repos/azure/azure-iot-explorer/releases
  • Runtime exceptions - auto collected by the Application Insights Javascript SDK, collects all uncaught exceptions in the application
  • Internal vs external users - logged as a CustomEvent called "internal_user" each time the app is started, internal users are anyone using the app on a Microsoft domain joined laptop, external users are everyone else
  • Percent not clicking the update banner - ratio of each time the update banner is displayed (CustomEvent called "update_banner:displayed") to each time the update banner is clicked (CustomEvent called "update_banner:clicked")
  • FetchDevices() server call data - CustomEvent "fetch_devices", logs the response from the server call unless the request fails to send, then it logs the status as N/A and the statusText is the error message