Métriques basées sur le journal et pré-agrégées dans Application Insights

Remarque

La documentation suivante s’appuie sur l’API classique d’Application Insights. Le plan à long terme pour Application Insights est de collecter des données en utilisant OpenTelemetry. Pour plus d’informations, consultez Activer Azure Monitor OpenTelemetry pour les applications .NET, Node.js, Python et Java et notre feuille de route OpenTelemetry. L’aide sur la migration est disponible pour .NET, Node.js et Python.

Cet article explique la différence entre les métriques Application Insights « traditionnelles », qui sont basées sur les journaux, et les métriques pré-agrégées. Les deux types de métriques sont disponibles pour les utilisateurs d’Application Insights. Chacun apporte une valeur unique dans la supervision de l’intégrité des applications, des diagnostics et de l’analytique. Les développeurs qui instrumentent les applications peuvent décider du type de métrique qui est le mieux adapté à un scénario particulier. Les décisions sont prises en fonction de la taille de l'application, du volume de télémétrie prévu et des exigences commerciales en matière de précision des mesures et d'alerte.

Métriques basées sur les journaux

Auparavant, le modèle de données de télémétrie de surveillance des applications d'Application Insights était uniquement basé sur un petit nombre de types prédéfinis d'événements, comme les requêtes, les exceptions, les appels de dépendance et les consultations de pages. Les développeurs peuvent utiliser le SDK pour émettre ces événements manuellement en écrivant un code qui invoque explicitement le SDK. Ils peuvent également s’appuyer sur la collecte automatique d’événements à partir de l’instrumentation automatique. Dans les deux cas, le back-end Application Insights stocke tous les événements collectés sous forme de journaux. Dans le portail Azure, les volets Application Insights servent d’outil d’analyse et de diagnostic et permettent de visualiser les données basées sur les événements à partir des journaux d’activité.

L’utilisation de journaux d’activité pour conserver un ensemble complet d’événements présente un grand avantage en termes d’analyse et de diagnostic. Vous pouvez par exemple obtenir le nombre exact de requêtes envoyées vers une URL donnée avec le nombre d’utilisateurs distincts ayant effectué ces appels. Ou bien vous pouvez obtenir des rapports d’appels de procédures détaillés pour le diagnostic, notamment les exceptions et les appels de dépendance de n’importe quelle session utilisateur. Disposer de ce type d'information peut améliorer la visibilité de l’intégrité et de l'utilisation de l'application. Il peut également réduire le temps nécessaire pour diagnostiquer les problèmes liés à une application.

Dans le même temps, la collecte d'un ensemble complet d'événements peut s'avérer difficile, voire impossible, pour les applications qui génèrent un volume important de données de télémétrie. Dans les situations où le volume d’événements est trop élevé, Application Insights implémente plusieurs techniques de réduction du volume de données de télémétrie qui diminuent le nombre d’événements collectés et stockés. Ces techniques incluent l’échantillonnage et le filtrage. Malheureusement, la diminution du nombre d’événements stockés fait également baisser la précision des métriques qui, en arrière-plan, doivent effectuer des agrégations de requêtes des événements stockés dans les journaux d’activité.

Notes

Dans Application Insights, les métriques basées sur l’agrégation des requêtes d’événements et les mesures stockées dans les journaux d’activité sont appelées des métriques basées sur le journal. Ces métriques comportent généralement de nombreuses dimensions de propriétés d’événements, ce qui les rend particulièrement intéressantes pour l’analyse. La précision de ces métriques est influencée négativement par l’échantillonnage et le filtrage.

Métriques pré-agrégées

Outre les métriques basées sur le journal, fin 2018, l'équipe Application Insights a publié une préversion publique des métriques stockées dans un référentiel spécialisé optimisé pour les séries chronologiques. Les nouvelles métriques ne sont plus conservées sous la forme d’événements individuels avec un grand nombre de propriétés. À la place, elles sont stockées sous la forme de séries chronologiques pré-agrégées, et seulement avec des dimensions clés. Cette modification rend les nouvelles métriques supérieures au moment de la requête. La récupération de données se produit rapidement et nécessite moins de puissance de calcul. Cela rend possibles de nouveaux scénarios comme la génération d’alertes quasiment en temps réel sur les dimensions des métriques, des tableaux de bord plus réactifs.

Important

Les métriques basées sur les journaux et les métriques pré-agrégées coexistent dans Application Insights. Pour différencier les deux, dans l’expérience utilisateur d’Application Insights, les métriques pré-agrégées sont désormais appelées métriques standard. Les métriques traditionnelles provenant des événements ont été renommées en métriques basées sur les journaux.

Les Kits de développement logiciel (SDK) les plus récents (SDK Application Insights 2.7 ou ultérieur pour .NET) pré-agrègent les métriques lors de la collecte. Ce processus s'applique aux métriques standard envoyées par défaut afin que la précision ne soit pas affectée par l'échantillonnage ou le filtrage. Cela s'applique également aux métriques personnalisées envoyées à l'aide de GetMetric, ce qui permet de réduire l'ingestion de données et les coûts.

Pour les Kits de développement logiciel (SDK) qui n’implémentent pas la pré-agrégation (ce qui est le cas avec les anciennes versions des SDK Application Insights ou pour l’instrumentation du navigateur), le serveur back-end d’Application Insights continue à renseigner les nouvelles métriques en agrégeant les événements reçus par le point de terminaison de collecte des événements d’Application Insights. Même si vous ne bénéficiez pas de la réduction du volume de données transmises sur le réseau, vous pouvez utiliser les métriques pré-agrégées, et profiter de performances et d’une prise en charge améliorées de la génération d’alertes dimensionnelles en quasi-temps réel avec des Kits de développement logiciel (SDK) qui ne pré-agrègent pas les métriques lors de la collecte.

Le point de terminaison de collecte pré-agrège les événements avant l’échantillonnage d’ingestion. Pour cette raison, l’échantillonnage d’ingestion n’affecte jamais l’exactitude des métriques pré-agrégées, quelle que soit la version du Kit de développement logiciel (SDK) que vous utilisez avec votre application.

Tableau des métriques pré-agrégées prises en charge par le Kit de développement logiciel (SDK)

SDK de production actuels Métriques standard (pré-agrégation du SDK) Métriques personnalisées (sans pré-agrégation du SDK) Métriques personnalisées (avec pré-agrégation du SDK)
.NET Core et .NET Framework Prises en charge (v2.13.1 et ultérieures) Prises en charge via TrackMetric Prises en charge (v2.7.2 et ultérieure) via GetMetric
Java Non pris en charge Prises en charge via TrackMetric Non pris en charge
Node.js Pris en charge (V2.0.0 et versions ultérieures) Prises en charge via TrackMetric Non pris en charge
Python Non pris en charge Prise en charge Prise en charge partielle via OpenCensus.stats

Notes

L’implémentation des métriques pour Python avec OpenCensus.stats est différente de GetMetric. Pour plus d’informations, consultez la documentation de Python sur les métriques.

Tableau des métriques pré-agrégées prises en charge sans code

SDK de production actuels Métriques standard (pré-agrégation du SDK) Métriques personnalisées (sans pré-agrégation du SDK) Métriques personnalisées (avec pré-agrégation du SDK)
ASP.NET Prises en charge1 Non pris en charge Non pris en charge
ASP.NET Core Prises en charge2 Non pris en charge Non pris en charge
Java Non pris en charge Non pris en charge Pris en charge
Node.js Non pris en charge Non pris en charge Non pris en charge
  1. L’auto-instrumentation d’ASP.NET sur des machines virtuelles/groupes de machines virtuelles identiques et localement émet des métriques standard sans dimensions. Il en va de même pour Azure App Service, mais le niveau de collection doit être défini sur recommandé. Le Kit de développement logiciel (SDK) est requis pour toutes les dimensions.
  2. L’auto-instrumentation d’ASP.NET Core sur App Service émet des métriques standard sans dimensions. Le Kit de développement logiciel (SDK) est requis pour toutes les dimensions.

Utiliser la pré-agrégation avec des métriques personnalisées Application Insights

Vous pouvez utiliser la pré-agrégation avec des métriques personnalisées. Les deux principaux avantages sont les suivants :

  • Configurer et alerter sur une dimension d’une métrique personnalisée
  • Réduction du volume de données envoyées depuis le Kit de développement logiciel (SDK) au point de terminaison de collection Application Insights

Il existe plusieurs méthodes pour envoyer des métriques personnalisées à partir du SDK d’Application Insights. Si votre version du SDK propose GetMetric et TrackValue, ces méthodes constituent le moyen préféré d’envoyer des métriques personnalisées. Dans ce cas, la pré-agrégation se produit à l’intérieur du Kit de développement logiciel (SDK). Cette approche réduit le volume de données stockées dans Azure, ainsi que le volume de données transmises du SDK à Application Insights. Sinon, utilisez la méthode trackMetric, qui pré-agrège les événements lors de l’ingestion des données.

Dimensions et pré-agrégation des métriques personnalisées

Toutes les métriques que vous envoyez en utilisant des appels d’API OpenTelemetry, trackMetric ou GetMetric et TrackValue sont stockées automatiquement à la fois dans des journaux et des magasins de métriques. Ces mesures se trouvent dans le tableau customMetrics d'Application Insights et dans Metrics Explorer, dans l'espace de noms des mesures personnalisées appelé « azure.applicationinsights ». Bien que la version basée sur les journaux de votre métrique personnalisée conserve toujours toutes les dimensions, la version pré-agrégée de la métrique est stockée par défaut sans aucune dimension. La conservation des dimensions des métriques personnalisées est une fonctionnalité d'évaluation qui peut être activée dans l'onglet Utilisation et estimation des coûts et en sélectionnant Avec des dimensions sous Envoyer des métriques personnalisées à Azure Metric Store.

Capture d’écran montrant l’utilisation et les coûts estimés.

Quotas

Les métriques pré-agrégées sont stockées en tant que séries chronologiques dans Azure Monitor. Des quotas Azure Monitor sur les métriques personnalisées s’appliquent.

Notes

Un dépassement de quota peut avoir des conséquences inattendues. Azure Monitor peut devenir non fiable dans votre abonnement ou votre région. Pour savoir comment éviter de dépasser le quota, consultez Limitations et considérations relatives à la conception.

Pourquoi la collecte des dimensions des métriques personnalisées est-elle désactivée par défaut ?

La collecte des dimensions des métriques personnalisées est désactivée par défaut, car à l’avenir, le stockage des métriques personnalisées avec des dimensions sera facturé indépendamment d’Application Insights. Le stockage des métriques personnalisées non dimensionnelles demeure gratuit (jusqu’à un certain quota). Pour en savoir plus sur les modifications à venir de notre modèle de tarification, consultez notre page officielle de tarification.

Créer des graphiques et explorer des métriques basées sur les journaux et des métriques pré-agrégées standard

Utilisez Azure Monitor Metrics Explorer pour générer des graphiques à partir des métriques pré-agrégées et des métriques basées sur les journaux, et pour créer des tableaux de bord avec des graphiques. Après avoir sélectionné la ressource Application Insights souhaitée, utilisez le sélecteur d’espace de noms pour basculer entre les métriques standard et les métriques basées sur les journaux. Vous pouvez également sélectionner un espace de noms de métrique personnalisé.

Capture d’écran montrant l’espace de noms Métrique.

Modèles de tarification pour les métriques Application Insights

L’ingestion de métriques dans Application Insights, qu’elles soient basées sur les journaux ou pré-agrégées, génère des coûts proportionnels à la taille des données ingérées. Pour plus d’informations, consultez Informations de tarification des Journaux Azure Monitor. Vos métriques personnalisées, y compris toutes ses dimensions, sont toujours stockées dans le magasin de journaux Application Insights. En outre, une version pré-agrégée de vos métriques personnalisées sans dimensions est transférée par défaut au magasin de métriques.

La sélection de l’option Activer la génération d’alertes sur les dimensions des métriques personnalisées pour stocker toutes les dimensions des métriques pré-agrégées dans le magasin de métriques peut générer des coûts supplémentaires conformément à la Tarification des métriques personnalisées.

Étapes suivantes