Poursuivons notre exploration des fonctionnalités d’Application Insights. Je vais vous parler dans cet article des évènements personnalisés et des métriques. Ces deux outils vont vous aidez à mieux suivre l’utilisation que font vos utilisateurs de votre application.

Les évènements personnalisés

Vous pouviez déjà suivre les pages vues (voir article précédent) mais cela ne suffit pas toujours. Surtout si vous avez une page qui vous sert à plusieurs choses. C’est là qu’entre en scène les évènements personnalisés. Vous allez pouvoir envoyer à la télémétrie Application Insights des données que vous allez pouvoir configurer. Vous leur donnez un nom et éventuellement des propriétés.

Ces données vont être envoyées au moment où vous le souhaitez, coté client en JavaScript ou coté serveur (C# ou VB).

Cela peut vous servir par exemple à connaitre le parcours de vos utilisateurs en envoyant des évènements lors des clics sur les boutons.

En exemple, j’avais fait un petit site pour recueillir l’avis de mes collègues SoftFluentees lors de notre dernier SoftFluent Day (à voir ici).

démonstration Application Insights

Chaque bouton déclenche un évènement personnalisé.

Le code derrière est très simple :

$("button").on("click", function () {
    var value = $(this).val();
    var text = $(this).text(); 

    appInsights.trackEvent(value);
 });

Ici, on va juste envoyer un évènement avec la valeur du bouton.

Coté serveur, cela serait fait avec le code suivant :

TelemetryClient tc = new TelemetryClient();          
tc.TrackEvent("eventName");

Les évènements sont visibles dans le dashboard Azure.

dashboard Azure

En cliquant sur un des types d’évènements, vous accédez à son détail

Événement personnalisé

Puis vous pouvez accéder à un évènement en particulier et voir ses propriétés

propriétés d'événements

Dans les propriétés, on retrouve des informations sur l’environnement de l’utilisateur (OS, navigateur) ainsi que sa provenance géographique. Il est également possible d’envoyer des propriétés customs à Application Insights.

Ces informations seront visibles en dessous des propriétés standards.

données personnalisées

Pour envoyer ces informations, il suffit d’ajouter un Dictionary<string, string> à la méthode trackEvent pour les infos textes et un Dictionary<string, double> pour des données numériques.

TelemetryClient tc = new TelemetryClient();                
tc.TrackEvent(id, new Dictionary<string, string> { { "indice", i.ToString() } }, new Dictionary<string, double> { { "niveau", GetRandomMetric() } });

Ces propriétés customs peuvent vous servir à filtrer plus facilement vos différents évènements selon les paramètres utiles de votre application.

Il est aussi possible de voir toutes les informations collectées lors d’une session.

informations colléctées

Les métriques

Dans le même esprit que les évènements personnalisés, les métriques vont vous servir à avoir des indicateurs personnalisés. Mais dans ce cas, il s’agira d’un indicateur numérique.

Pour envoyer une métrique, le code est :

TelemetryClient tc = new TelemetryClient();       
tc.TrackMetric("metricName", 20);

Une méthode simple, avec un nom de métrique et un chiffre. Vous pouvez aussi ajouter des propriétés custom comme vu précédemment.

Avec des métriques, vous allez voir des courbes et une moyenne dans votre dashboard.

metrics explorer

Par contre, comme je vous l’avais indiqué dans le 1er article (à revoir ici) Application Insights est encore en Preview et donc pas terminé. Donc si vous cliquez sur une des courbes vous aurez droit à ce beau message.

message de preview

Les détails ne sont pas encore disponibles mais vous avez déjà les courbes pour vous donner des tendances.

Conclusion

Vous avez maintenant 2 outils de plus pour monitorer vos applications. A vous maintenant de trouver la meilleure manière de les utiliser. Mais vous devriez vite les adopter et améliorer vos applications !

Ne ratez plus aucunes actualités avec la newsletter mensuelle de SoftFluent