Microsoft bietet den Benutzern von Visual Studio Team Services (VSTS) seit November 2015 im Format eines Marketplaces dafür Erweiterungen an. Dabei sind Entwickler dazu aufgerufen unter Verwendung von Standard Webtechnologien, wie HTML, CSS und JavaScript, VSTS, um fehlende Features zu erweitern. Beim Durchstöbern des Marktplatzes fällt auf, dass die sogenannten „Extensions“ sortiert nach der Anzahl der Installationen aufgelistet sind. Als Benutzer kann dies ein hilfreicher Richtwert sein, um zu beurteilen, ob eine Extension interessant sein könnte. Als Anbieter und Entwickler von VSTS Extensions sind aber aussagekräftige Zahlen über die eigentliche Benutzung der Anwendung gefragt.
Wie viele Menschen benutzen die Erweiterung?
Vielleicht hat eine Einzelperson im privaten VSTS ein paar „Spielereien“ durchgeführt oder eine Organisation mit vielen Nutzern verwendet die Extension bereits produktiv.
Woher stammen die Benutzer?
Anbieter interessieren sich dafür, aus welchen geografischen Bereichen die Nutzer der Extension kommen. Zum Beispiel, wenn dadurch Ressourcen gezielter bereitgestellt werden können und kontextbezogen die entsprechende Sprache verwendet werden kann.
Wie verwenden die Anwender die Erweiterung?
Ein Benutzer klickt mehrfach auf einen falschen Menüpunkt. Folglich ist die Navigation nicht intuitiv genug und es wäre an der Zeit das UI nochmals zu überarbeiten!
Mögliche Fragen die sich Anbieter und Entwickler bereits öfter gestellt haben. Application Insights (AI) kann bei der Beantwortung dieser und anderer Fragen Hilfestellung geben!
AI ist ein Azure-Service für Entwickler, um schnell und einfach an Echtzeitdaten der erstellten Erweiterung zu kommen. Dabei sind nicht nur .NET-Entwickler angesprochen. Anwendungen können auf Basis verschiedener Sprachen und Frameworks überwacht werden.
Eine komplette Liste der unterstützten Sprachen und Frameworks ist hier zur finden!
In diesem Post wird der Ablauf von der Erstellung der AI Ressource, über das Einbinden in die VSTS Extension, der Übersicht der generierten Daten in Azure und der Visualisierung der Daten in Power BI kurz erläutert.
Application Insights Ressource erstellen
Zur Erstellung einer AI Ressource ist ein kostenloser Azure Account notwendig. Dieser kann direkt auf der Azure Produktseite erstellt werden. Als Benutzer mit MSDN-Subscription oder bereits eingerichtetem Azure Account geht es direkt zum Azure Portal.
- Erstellen einer neuen Ressource mit einem Klick auf „Neu“
- Wählen der Kategorie „Entwicklerdienste“
- Klicken auf die „Application Insights“ Kachel innerhalb der eingeblendeten Liste.
- Im Anschluss muss ein Name und weitere Einstellungen der Ressource angegeben werden. Gegebenenfalls passend zur verknüpften Extension.
- Mit einem Klick auf „Erstellen“ die Ressource anlegen!
Beim Anwendungstyp ist „ASP.NET-Webanwendung“ zu wählen, da ggf. serverseitige Logik im Hintergrund der Webanwendung arbeitet. Aber auch eine Erweiterung mit lediglich HTML/CSS/JavaScript kann mit diesem Anwendungstyp überwacht werden.
Hinzufügen zur Extension und Erfassen von Daten
Die AI-Ressource ist innerhalb weniger Minuten bereitgestellt. Somit kann das Monitoring prinzipiell losgehen. Doch zuvor muss eine JavaScript-Datei bzw. Code in das Projekt mit eingebunden werden. Außerdem sollte bestimmt werden, welche eigenen „Custom-Events“ aufgezeichnet werden sollen.
Application Insights.js
- Durch Klicken auf das „Schnellstart“-Icon (Wolke mit Blitz) gelangt man zur grundsätzlichen Übersicht der verschiedenen Möglichkeiten.
- „Überwachung und Diagnose der Clientseitigen Anwendung“ führt zum gesuchten Code-Snippet.
- Das Code-Snippet kann nun entweder direkt innerhalb des HTML Head-Tag eingebunden werden oder durch Erstellung und Einbindung einer JavaScript-Datei im Projekt.
Sobald die angepassten HTML-Dateien das nächste Mal im Projekt gebaut und die Extension auf innerhalb des Marketplace veröffentlicht wird, werden bereits Standard Telemetrie Daten, wie „Anzahl der Seitenaufrufe“ oder „Zeit zum Aufbau der DOM“, aufgezeichnet.
Eigene Events überwachen
Neben technischen Werten die von AI erfasst werden ist es innerhalb einer Extension ebenso möglich eigene Events und Metriken zu überwachen. Microsoft bietet hierfür eine sehr ausführliche Beschreibung zu den unterschiedlichen Arten der Events, sowie deren Einsatz, an.
Benutzer erkennen
Application Insights zeichnet selbständig die Aufrufe sowie Zugriffe aus verschiedenen Sessions über die gesetzten Cookies auf und generiert gleichzeitig eine Anzahl an Benutzern. Dies kann aber dazu führen, dass Benutzer von verschiedenen Endgeräten und verschiedenen Browsern mehrfach gezählt werden. Das Resultat sind verfälschte Daten. Abhilfe schafft eine Option von AI, die es erlaubt, authentifizierte Benutzer zu registrieren.
Sobald die VSS.SDK fertig geladen ist können aktuelle Kontextinformationen wie Benutzername und ID oder Daten des aktuellen Teamprojekts durch einen Aufruf der Funktion VSS.getWebContext() gelesen werden. Durch lesen und registrieren der Benutzer-IDs mit appInsights.setAuthenticatedUserContext(validatedId) erhält man einen genauen Wert bzgl. der Benutzer, welche die Erweiterung nutzen.
Custom Events
Um das Benutzerverhalten zu überwachen kann ein sogenanntes AI-TrackEvent benutzt werden. Dabei kann gezählt werden, wie oft und in welcher Reihenfolge Benutzer bestimmte Funktionen in Anspruch nehmen oder wie oft bestimmte Fehler an einer Stelle auftreten. Der korrespondierende Funktionsaufruf dazu lautet appInsights.TrackEvent(„EventName“), wobei neben dem Event-Namen noch weitere Argumente mitgeschickt werden können.
appInsights.trackEvent(“createDocumentClick”, { TeamProject: vssWebContext.project.id });
Erfasste Daten in Application Insights
Sind alle Dateien angepasst und die neuste Version im Marketplace deployed werden Daten aufgezeichnet, falls die Erweiterung installiert und genutzt wird. Die erfassten Daten können dann über das Azure Portal eingesehen werden.
- Dazu auf die Schaltfläche „Einstellungen“ klicken
- Unter der Schaltfläche „Browser“ befinden sich allgemeine Telemetrie-Daten.
- Unter der Schaltfläche „Nutzung“ sind die selbst erstellen Events zu finden. Außerdem Angaben bzgl. der geographischen Lage des Benutzers.
Power BI zur Darstellung
Die Möglichkeiten der Darstellung in Application Insights sind zugegebenermaßen sehr ausführlich und die Optionen zur Filterung und Gruppierung sind schnell und einfach zu nutzen. Dennoch kann die Navigation irreführend sein oder Dashboards sind falsch konfiguriert und können nicht bearbeitet werden. Eine elegante Darstellungsvariante der Daten bringt Power BI mit. Power BI verfügt über einen AI-Connector und kann so Zugang zu den AI-Daten bekommen. Außerdem bietet Power BI elegantere Freigabekonzepte über Email oder Links an. So können vorbereitete Berichte schnell und einfach geteilt werden.
Fazit
Um VSTS Extensions einfach und schnell zu überwachen oder Aussagen über das Nutzerverhalten treffen zu können, bietet Application Insights genau die richtigen Mittel. Von der Einrichtung der Ressource, über die Einbindung in die Extension durch das von Azure generierte JavaScript, bis hin zur Erfassung und Auswertung der Daten mit Power BI sind alle Schritte innerhalb kurzer Zeit durchführbar. Außerdem bietet AI Möglichkeiten an, um eigene angepasste Daten zu erfassen. Wir nutzen Application Insights bereits in unseren VSTS Extensions Voting und Wall Estimation und können uns so auf unserer Nutzer bestmöglich einstellen!