Telemetrie für Apps mit Application Insights (2)

Telemetriedaten sind immer dann am besten, wenn man abhängig von der jeweiligen Anwendung selbst entscheiden kann, welche Daten eigentlich relevant sind. Die Standardkonfiguration der Application Insights nimmt uns erstmal einen ganzen Haufen Arbeit ab – dennoch wird es nicht lange dauern, bis man “eigene” Daten sammeln will.

Wie oft wird Funktion XY aufgerufen?

Der einfachste Fall ist, dass man wissen will, wie häufig eine bestimmte Funktion eigentlich verwendet wird. Hierzu kann ich über einen einfachen Aufruf eines Log-Befehls dafür sorgen, dass meine App, die ich bereits um die Application Insights Funktionalität angereichert habe, mitloggt, sobald dieser Fall eintritt:

 ClientAnalyticsChannel.Default.LogEvent()

Das ist der wichtigste Befehl, bei den Application Insights. Als Parameter kann ich einfach einen String übergeben – der Name des Events den ich in meiner Auswertung nutzen möchte. Ich könnte also beispielsweise …

 ClientAnalyticsChannel.Default.LogEvent("ButtonKlick");

… in meine Anwendung schreiben und würde anschließend Daten darüber sammeln, wie oft der Button geklickt wurde. Die Auswertung würde im Visual Studio Online Dashboard so aussehen – ich bekomme neben den numerischen Werten auch eine grafische Auswertung und eine Angabe wie viele Session zu der Anzahl der mitgeloggten Events geführt haben.

image

Interessant hierbei ist die Möglichkeit den Bezeichner für den Event auch kaskadierend zu schreiben – ähnlich wie ein Dateipfad. So kann ich statt “ButtonKlick” auch “Phone/ButtonKlick” verwenden. In der Übersicht im Dashboard wird dann eine zusätzliche Ebene eingezogen, was mir bei vielen Events die Navigation zwischn den Events erleichert.

image

Schöne Sache soweit. Als nächstes sehen wir uns an, wie wir dieses Logging etwas schicker als Aspekt realisieren. Lasst Euch nicht verwirren, das ist optional. Anschließend werfen wir einen Blick darauf, wie wir die Events um zusätzliche Information anreichern können und wie Ihr nachsehen könnt, wie und wann die Daten übertragen werden.