Configuration du kit de développement logiciel (SDK) JavaScript Application Insights pour Microsoft Azure Monitor

Le kit de développement logiciel (SDK) JavaScript Azure Application Insights fournit une configuration pour le suivi, la surveillance et le débogage de vos applications web.

Configuration du kit de développement logiciel (SDK)

Ces champs de configuration sont facultatifs et la valeur par défaut est false, sauf indication contraire.

Pour obtenir des instructions sur l’ajout de la configuration du Kit de développement logiciel (SDK), consultez Ajouter une configuration SDK.

Nom Type Default
accountId

ID de compte facultatif, si votre application regroupe les utilisateurs dans des comptes. Aucun espace, virgule, point-virgule, signe d’égalité ni barre verticale
string null
addRequestContext

Fournissez un moyen d’enrichir les journaux de dépendances avec le contexte au début de l’appel d’API. Par défaut, ce paramètre est indéfini. Vous devez vérifier si xhr existe si vous configurez le contexte associé xhr. Vous devez vérifier si fetch request et fetch response existent si vous configurez le contexte associé fetch. Sinon, vous risquez de ne pas obtenir les données nécessaires.
(requestContext : IRequestionContext) => {[clé: chaîne]: any} non défini
ajaxPerfLookupDelay

La valeur par défaut est 25 ms. Délai d’attente avant la nouvelle tentative de recherche des minutages « windows.performance » pour une requête Ajax. Ce délai est exprimé en millisecondes et transmis directement à setTimeout().
numeric 25
appId

AppId est utilisé pour la corrélation entre les dépendances AJAX qui se produisent côté client avec les demandes côté serveur. Lorsque l’API Beacon est activée, elle ne peut pas être utilisée automatiquement, mais définie manuellement dans la configuration. La valeur par défaut est Null
string null
autoTrackPageVisitTime

Si la valeur est true, sur une consultation de page, la durée d’affichage de la page instrumentée précédente fait l’objet d’un suivi et est envoyée en tant que données de télémétrie, et un nouveau minuteur est démarré pour la consultation de page en cours. Elle est envoyée sous la forme d’une mesure personnalisée nommée PageVisitTime dans milliseconds et est calculée via la fonction Date now() (si elle est disponible) et se replie sur (new Date()).getTime() si now() n’est pas disponible (IE8 ou moins). La valeur par défaut est false.
boolean false
convertUndefined

Fournissez à l’utilisateur une option permettant de convertir un champ indéfini en valeur définie par l’utilisateur.
any non défini
cookieCfg

Pour la valeur par défaut activée de l’utilisation des cookies, consultez les paramètres ICookieCfgConfig pour connaître toutes les valeurs par défaut.
ICookieCfgConfig
[Facultatif]
(Depuis 2.6.0)
non défini
cookieDomain

Domaine de cookie personnalisé. Cette fonction est utile si vous souhaitez partager des cookies Application Insights entre les sous-domaines.
(Depuis la version 2.6.0) Si cookieCfg.domain est défini, cet élément est prioritaire sur cette valeur.
alias pour cookieCfg.domain
[Facultatif]
null
cookiePath

Personnalisez le chemin d’accès du cookie. Cette fonction est utile si vous souhaitez partager des cookies Application Insights derrière une passerelle d’application.
Si cookieCfg.path est défini, cet élément est prioritaire.
alias pour cookieCfg.path
[Facultatif]
(Depuis 2.6.0)
null
correlationHeaderDomains

Activer les en-têtes de corrélation pour des domaines spécifiques
string[] non défini
correlationHeaderExcludedDomains

Désactiver les en-têtes de corrélation pour des domaines spécifiques
string[] non défini
correlationHeaderExcludePatterns

Désactiver les en-têtes de corrélation à l’aide d’expressions régulières
regex[] non défini
createPerfMgr

Fonction de rappel qui sera appelée pour créer une instance IPerfManager si nécessaire et si enablePerfMgr est activé. Cette fonction vous permet de remplacer la création par défaut d’un PerfManager() sans avoir à setPerfMgr() après l’initialisation.
(core : IAppInsightsCore, notificationManager : INotificationManager) => IPerfManager non défini
customHeaders

Possibilité pour l’utilisateur de fournir des en-têtes supplémentaires lors de l’utilisation d’un point de terminaison personnalisé. Les en-têtes personnalisés (customHeaders) ne sont pas ajoutés au moment de l’arrêt du navigateur lorsque l’expéditeur de la balise est utilisé. En outre, l’ajout d’en-têtes personnalisés n’est pas pris en charge sur Internet Explorer 9 ou une version antérieure.
[{header: string, value: string}] non défini
diagnosticLogInterval

(interne) Intervalle d’interrogation (en ms) pour la file d’attente de journalisation interne
numeric 10000
disableAjaxTracking

Si la valeur est true, les appels Ajax ne sont pas collectés automatiquement. La valeur par défaut est false.
boolean false
disableCookiesUsage

La valeur par défaut est false. Valeur booléenne qui indique si l’utilisation des cookies par le Kit de développement logiciel (SDK) doit être activée. Si la valeur est true, le Kit de développement logiciel (SDK) ne stocke pas ou ne lit pas de données des cookies.
(Depuis la version 2.6.0) Si cookieCfg.enabled est défini, cet élément est prioritaire. L’utilisation des cookies peut être réactivée après l’initialisation via core.getCookieMgr().setEnabled(true).
alias pour cookieCfg.enabled
[Facultatif]
false
disableCorrelationHeaders

Si la valeur est false, le Kit de développement logiciel (SDK) ajoute deux en-têtes ('Request-Id' et 'Request-Context') à toutes les requêtes de dépendance pour les mettre en corrélation avec les requêtes correspondantes côté serveur. La valeur par défaut est false.
boolean false
disableDataLossAnalysis

Si la valeur est false, les mémoires tampons d’expéditeur de données de télémétrie internes sont vérifiées au démarrage pour rechercher les éléments non envoyés.
boolean true
disableExceptionTracking

Si la valeur est true, les exceptions ne sont pas collectées automatiquement. La valeur par défaut est false.
boolean false
disableFetchTracking

Le paramètre par défaut de disableFetchTracking est false, ce qui signifie qu’il est activé. Toutefois, dans les versions antérieures à la version 2.8.10, il a été désactivé par défaut. Quand la valeur est définie sur true, les requêtes de récupération (fetch) ne sont pas collectées automatiquement. Le paramètre par défaut est passé de true à false dans la version 2.8.0.
boolean false
disableFlushOnBeforeUnload

La valeur par défaut est false. Si la valeur est true, la méthode Flush n’est pas appelée lorsque l’événement onBeforeUnload se déclenche.
boolean false
disableIkeyDeprecationMessage

Désactivez le message d’erreur de désapprobation de la clé d’instrumentation. Si la valeur est true, les messages d’erreur ne sont PAS envoyés.
boolean true
disableInstrumentationKeyValidation

Si la valeur est true, la vérification de la validation de la clé d’instrumentation est ignorée. La valeur par défaut est false.
boolean false
disableTelemetry

Si la valeur est true, les données de télémétrie ne sont pas collectées ni envoyées. La valeur par défaut est false.
boolean false
disableXhr

N’utilisez pas XMLHttpRequest ou XDomainRequest (pour Internet Explorer < 9) par défaut. Essayez plutôt d’utiliser « fetch() » ou « sendBeacon ». Si aucun autre transport n’est disponible, le système utilise XMLHttpRequest.
boolean false
distributedTracingMode

Définit le mode de traçage distribué. Si le mode AI_AND_W3C ou le mode W3C est défini, les en-têtes de contexte de trace W3C (traceparent/tracestate) sont générés, puis inclus dans toutes les requêtes sortantes. AI_AND_W3C est fourni à des fins de compatibilité descendante avec tous les services instrumentés Application Insights hérités.
numérique ou DistributedTracingModes DistributedTracing Modes.AI_AND_W3C
enableAjaxErrorStatusText

La valeur par défaut est false. Si la valeur est true, incluez la valeur booléenne du texte des données d’erreur de réponse dans l’événement de dépendance sur les requêtes AJAX ayant échoué.
boolean false
enableAjaxPerfTracking

La valeur par défaut est false. Indicateur permettant d’activer la recherche, puis l’inclusion des minutages « window.performance » dans les métriques de performances d’Ajax (XHR et récupération (fetch)) signalées.
boolean false
enableAutoRouteTracking

Effectuer le suivi automatique des modifications de route dans les applications monopages (SPA). Si cette valeur est true, chaque modification d’itinéraire envoie une nouvelle consultation de page à Application Insights. Les modifications des routes de hachage (example.com/foo#bar) sont également enregistrées en tant que nouveaux affichages de page.
Remarque : si vous activez ce champ, n’activez pas history l'objet pour la configuration du routeur React, car vous obtiendrez plusieurs événements de vue de page.
boolean false
enableCorsCorrelation

Si la valeur est true, le Kit de développement logiciel (SDK) ajoute deux en-têtes (« Request-Id » et « Request-Context ») à toutes les requêtes CORS pour mettre en corrélation les dépendances AJAX sortantes avec les requêtes correspondantes côté serveur. La valeur par défaut est false
boolean false
enableDebug

Si la valeur est true, les données de débogage internes sont levées en tant qu’exception au lieu d’être consignées, quels que soient les paramètres de journalisation du kit SDK. La valeur par défaut est false.
Remarque : l’activation de ce paramètre entraîne la suppression de données de télémétrie chaque fois qu’une erreur interne se produit. Cela peut être utile pour identifier rapidement les problèmes liés à votre configuration ou à votre utilisation du Kit de développement logiciel (SDK). Pour ne pas perdre de données de télémétrie pendant le débogage, utilisez loggingLevelConsole ou loggingLevelTelemetry à la place de enableDebug.
boolean false
enablePerfMgr

Quand cette fonction est activée (true), elle crée des perfEvents locaux pour le code qui a été instrumenté pour émettre perfEvents (via l’assistance doPerf ()). Cette fonction permet d’identifier les problèmes de performances dans le Kit de développement logiciel (SDK) en fonction de votre utilisation ou éventuellement dans votre propre code instrumenté.
boolean false
enableRequestHeaderTracking

Si la valeur est true, les en-têtes de requête d’extraction AJAX & Fetch sont suivis, la valeur par défaut est false. Si ignoreHeaders n’est pas configuré, les en-têtes Authorization et X-API-Key ne sont pas journalisés.
boolean false
enableResponseHeaderTracking

Si la valeur est true, les en-têtes de réponse de requête d’extraction AJAX & Fetch sont suivis, la valeur par défaut est false. Si ignoreHeaders n’est pas configuré, l’en-tête WWW-Authenticate n’est pas journalisé.
boolean false
enableSessionStorageBuffer

La valeur par défaut est true. Si la valeur est true, la mémoire tampon contenant toutes les données de télémétrie non envoyées est stockée dans le stockage de session. La mémoire tampon est restaurée lors du chargement de la page
boolean true
enableUnhandledPromiseRejectionTracking

Si cette valeur est true, les rejets de promesse non gérés sont collectés automatiquement comme une erreur JavaScript. Quand disableExceptionTracking a la valeur true (ne pas suivre les exceptions), la valeur de configuration est ignorée, puis les rejets de promesse non gérés ne sont pas signalés.
boolean false
eventsLimitInMem

Nombre d’événements qui peuvent être conservés en mémoire avant que le Kit de développement logiciel (SDK) commence à supprimer des événements en l’absence d’utilisation du Stockage de session (valeur par défaut).
nombre 10000
excludeRequestFromAutoTrackingPatterns

Fournissez un moyen d’exclure un itinéraire spécifique du suivi automatique des requêtes XMLHttpRequest ou de récupération (fetch). Si ce paramètre est défini, pour une requête Ajax/de récupération (fetch) que l’URL de requête met en correspondance avec les modèles regex, le suivi automatique est désactivé. Par défaut, ce paramètre est indéfini.
string[] | RegExp[] non défini
featureOptIn

Définissez les détails d’activation de la fonctionnalité.

Ce champ de configuration est disponible uniquement dans la version 3.0.3 et ultérieure.
IFeatureOptIn non défini
idLength

Identifie la longueur par défaut utilisée pour générer de nouvelles valeurs d’ID d’utilisateur et de session aléatoires. La valeur par défaut est 22 et la valeur par défaut précédente était 5 (version 2.5.8 ou version antérieure). Si vous avez besoin de conserver la longueur maximale précédente, vous devez définir cette valeur sur 5.
numeric 22
ignoreHeaders

AJAX & Récupérer les en-têtes de requête et de réponse à ignorer dans les données de journal. Pour écraser ou ignorer la valeur par défaut, ajoutez un tableau avec tous les en-têtes à exclure ou un tableau vide à la configuration.
string[] [« Authorization », « X-API-Key », « WWW-Authenticate »]
isBeaconApiDisabled

Si la valeur est false, le Kit de développement logiciel (SDK) envoie toutes les données de télémétrie à l’aide de l’API Beacon.
boolean true
isBrowserLinkTrackingEnabled

La valeur par défaut est false. Si la valeur est true, le Kit de développement logiciel (SDK) effectue le suivi de toutes les demandes de lien de navigateur.
boolean false
isRetryDisabled

La valeur par défaut est false. Si la valeur est false, réessayez avec 206 (succès partiel), 408 (délai d’expiration), 429 (trop de requêtes), 500 (erreur de serveur interne), 503 (service non disponible) et 0 (hors connexion, uniquement si détecté)
boolean false
isStorageUseDisabled

Si la valeur est true, le Kit de développement logiciel (SDK) ne stocke pas ou ne lit pas les données depuis le stockage local et de session. La valeur par défaut est false.
boolean false
loggingLevelConsole

Consigne les erreurs internes d’Application Insights dans la console.
0 : désactivé,
1 : erreurs critiques uniquement,
2 : Tout (erreurs et avertissements)
numeric 0
loggingLevelTelemetry

Envoie les erreurs internes d’Application Insights en tant que données de télémétrie.
0 : désactivé,
1 : erreurs critiques uniquement,
2 : Tout (erreurs et avertissements)
numeric 1
maxAjaxCallsPerView

Valeur par défaut 500 : contrôle le nombre d’appels Ajax supervisés par affichage de page. Affectez la valeur -1 pour superviser tous les appels Ajax (illimités) dans la page.
numeric 500
maxAjaxPerfLookupAttempts

La valeur par défaut est 3. Vous devez indiquer le nombre maximal de recherches des minutages « window.performance » (le cas échéant). Tous les navigateurs ne remplissent pas la propriété « window.performance » avant de signaler la fin de la requête XHR. Pour les requêtes de récupération (fetch), cette propriété est ajoutée une fois remplie.
numeric 3
maxBatchInterval

Durée de mise en lot des données de télémétrie avant l’envoi (en millisecondes)
numeric 15000
maxBatchSizeInBytes

Taille maximale du lot de données de télémétrie. Si un lot dépasse cette limite, il est immédiatement envoyé et un nouveau lot est démarré
numeric 10000
namePrefix

Valeur facultative utilisée comme suffixe de nom pour localStorage et pour le nom du cookie de session.
string non défini
onunloadDisableBeacon

La valeur par défaut est false. Quand l’onglet est fermé, le Kit de développement logiciel (SDK) envoie toutes les données de télémétrie restantes à l’aide de l’API Beacon
boolean false
onunloadDisableFetch

Si « fetch keepalive » est pris en charge, ne l’utilisez pas pour l’envoi d’événements pendant le déchargement. La fonction peut toujours revenir à « fetch() » sans « keepalive ».
boolean false
overridePageViewDuration

Si la valeur est true, le comportement par défaut de trackPageView est modifié pour enregistrer la fin de l’intervalle de durée de consultation de page lorsque trackPageView est appelé. Si la valeur est false et qu’aucune durée personnalisée n’est fournie à trackPageView, les performances d’affichage de la page sont calculées à l’aide de l’API de minutage de la navigation. La valeur par défaut est false.
boolean false
perfEvtsSendAll

Quand enablePerfMgr est activé et que IPerfManager déclenche un perfEvent () INotificationManager, cet indicateur détermine si un événement est déclenché (et envoyé à tous les écouteurs) pour tous les événements (true) ou uniquement pour les événements « parents » (false <par défaut>).
Un IPerfEvent parent est un événement où aucun autre IPerfEvent n’est encore en cours d’exécution au moment de la création de cet événement et sa propriété parente n’a pas la valeur null ou indéfinie. Depuis v2.5.7
boolean false
samplingPercentage

Pourcentage d’événements envoyés. La valeur par défaut est 100, ce qui signifie que tous les événements sont envoyés. Définissez cette option si vous souhaitez conserver votre plafond de données pour les applications à grande échelle.
numeric 100
sdkExtension

Définit le nom de l’extension du kit SDK. Seuls les caractères alphabétiques sont autorisés. Le nom de l’extension est ajouté comme préfixe à la balise 'ai.internal.sdkVersion' (par exemple, 'ext_javascript:2.0.0'). La valeur par défaut est Null.
string null
sessionCookiePostfix

Valeur facultative utilisée comme suffixe du nom du cookie de session. Si cette valeur n’est pas définie, namePrefix est utilisé comme suffixe du nom du cookie de session.
string non défini
sessionExpirationMs

Une session est consignée si elle s’est poursuivie pendant ce laps de temps en millisecondes. La valeur par défaut est 24 heures
numeric 86400000
sessionRenewalMs

Une session est consignée si l’utilisateur est inactif pendant ce laps de temps en millisecondes. La valeur par défaut est 30 minutes
numeric 1800000
throttleMgrCfg

Définissez la configuration de mgr de limitation par clé.

Ce champ de configuration est disponible uniquement dans la version 3.0.3 et ultérieure.
{[key: number]: IThrottleMgrConfig} non défini
userCookiePostfix

Valeur facultative comme suffixe du nom du cookie d’utilisateur. Si cette valeur n’est pas définie, aucun suffixe n’est ajouté au nom du cookie utilisateur.
string non défini

À partir de la version 2.6.0, le Kit de développement logiciel (SDK) JavaScript Azure Application Insights fournit une gestion des cookies basée sur les instances, gestion qui peut être désactivée, puis réactivée après l’initialisation.

Si vous avez désactivé les cookies pendant l’initialisation en utilisant les configurations disableCookiesUsage ou cookieCfg.enabled, vous pouvez les réactiver à l’aide de la fonction setEnabled de l’objet ICookieMgr.

La gestion des cookies basée sur les instances remplace les fonctions globales CoreUtils précédentes de disableCookies(), setCookie()getCookie() et deleteCookie().

Pour tirer parti des améliorations apportées au nettoyage de code introduites dans la version 2.6.0, nous vous recommandons de ne plus utiliser les fonctions globales.

ICookieMgrConfig est une configuration de cookie pour la gestion des cookies basée sur les instances, gestion ajoutée dans la version 2.6.0. Les options fournies vous permettent d’activer ou de désactiver l’utilisation des cookies par le Kit de développement logiciel (SDK). Vous pouvez également définir des domaines et des chemins de cookies personnalisés, puis personnaliser les fonctions de récupération, de définition et de suppression des cookies.

Les options ICookieMgrConfig sont définies dans le tableau suivant.

Nom Type Default Description
enabled boolean true L’instance actuelle du Kit de développement logiciel (SDK) utilise cette valeur booléenne pour indiquer si l’utilisation des cookies est activée. Si la valeur est false, l’instance du Kit de développement logiciel (SDK) initialisée par cette configuration ne stocke pas ou ne lit pas les données des cookies.
domaine string null Domaine de cookie personnalisé. Cette fonction est utile si vous souhaitez partager des cookies Application Insights entre les sous-domaines. S’il n’est pas fourni, utilise la valeur de la valeur racine cookieDomain.
path string / Spécifie le chemin d’accès à utiliser pour le cookie. S’il n’est pas fourni, il utilise n’importe quelle valeur de la valeur racine cookiePath.
ignoreCookies string[] non défini Spécifiez les noms de cookie à ignorer. Dans ce cas, les noms de cookie correspondants ne sont jamais lus, ni écrits. Ils peuvent toujours être vidés ou supprimés de manière explicite. Vous n’avez pas besoin de répéter le nom dans la configuration blockedCookies. (depuis la version 2.8.8)
blockedCookies string[] non défini Spécifiez les noms de cookie à ne jamais écrire. Cette fonction empêche la création ou la mise à jour d’un nom de cookie, mais les cookies en question peuvent toujours être lus, sauf s’ils sont également inclus dans ignoreCookies. Ils peuvent toujours être vidés ou supprimés de manière explicite. Si cet élément n’est pas fourni, la valeur par défaut est la même liste que celle d’ignoreCookies. (Depuis la version 2.8.8)
getCookie (name: string) => string null Fonction permettant de récupérer (fetch) la valeur du cookie nommé. Si cette valeur n’est pas fournie, la fonction utilise l’analyse/la mise en cache du cookie interne.
setCookie (name: string, value: string) => void null Fonction permettant de définir le cookie nommé avec la valeur spécifiée, appelée uniquement lors de l’ajout ou de la mise à jour d’un cookie.
delCookie (name: string, value: string) => void null Fonction permettant de supprimer le cookie nommé avec la valeur spécifiée, séparé de setCookie pour éviter d’avoir à analyser la valeur pour déterminer si le cookie est ajouté ou supprimé. Si cette valeur n’est pas fournie, la fonction utilise l’analyse/la mise en cache du cookie interne.

Mappage de source

La prise en charge du mappage de source vous permet de déboguer du code JavaScript minifié avec la possibilité de déminifier la pile des appels minifiée de vos données de télémétrie d’exception.

  • Compatible avec toutes les intégrations actuelles dans le panneau Détails de l’exception
  • Prend en charge tous les Kits de développement logiciel (SDK) JavaScript actuels et futurs, y compris Node.JS, sans avoir besoin d’une mise à niveau du Kit de développement logiciel (SDK)

Application Insights prend en charge le chargement de mappages de sources dans votre conteneur d’objets blob de compte de stockage Azure. Vous pouvez utiliser des mappages de sources pour déminifier les piles des appels trouvées dans la page Détails de la transaction de bout en bout. Vous pouvez également utiliser des mappages de sources pour déminifier toute exception envoyée par le Kit de développement logiciel (SDK) JavaScript ou le Kit de développement logiciel (SDK) Node.js.

Screenshot that shows selecting the option to unminify a call stack by linking with a storage account.

Créer un compte de stockage et un conteneur d’objets blob

Si vous disposez déjà d’un compte de stockage ou d’un conteneur d’objets blob, vous pouvez ignorer cette étape.

  1. Créez un compte de stockage.

  2. Créez un conteneur d’objets blob à l’intérieur de votre compte de stockage. Définissez le Niveau d’accès public sur Privé pour vous assurer que vos mappages de sources ne sont pas accessibles publiquement.

    Screenshot that shows setting the container access level to Private.

Envoyer (push) vos mappages de source à votre conteneur d’objets blob

Intégrez votre pipeline de déploiement continu à votre compte de stockage en le configurant de telle sorte qu’il charge automatiquement vos mappages de source dans le conteneur d’objets blob configuré.

Vous pouvez charger des mappages de sources dans votre conteneur de Stockage Blob Azure avec la même structure de dossiers que celle avec laquelle ils ont été compilés et déployés. Un cas d’usage courant consiste à préfixer un dossier de déploiement avec sa version, par exemple 1.2.3/static/js/main.js. Lorsque vous déminifiez via un conteneur d’objets blob Azure appelé sourcemaps, le pipeline tente d’extraire un mappage de source situé à l’emplacement sourcemaps/1.2.3/static/js/main.js.map.

Si vous utilisez Azure Pipelines pour générer et déployer votre application en continu, ajoutez une tâche Copie de fichiers Azure à votre pipeline pour charger automatiquement vos mappages de source.

Screenshot that shows adding an Azure file copy task to your pipeline to upload your source maps to Azure Blob Storage.

Configurer votre ressource Application Insights avec un compte de stockage Mappage de source

Vous disposez de deux options pour configurer votre ressource Application Insights avec un compte de stockage de mappage de source.

Onglet Détails de la transaction de bout en bout

Sous l’onglet Détails de la transaction de bout en bout, sélectionnez Déminifier. Configurez votre ressource si elle ne l’est pas.

  1. Sur le portail Azure, affichez les détails d’une exception minifiée.
  2. Sélectionnez Déminifier.
  3. Si votre ressource n’est pas configurée, configurez-la.
Onglet Propriétés

Pour configurer ou modifier le compte de stockage ou le conteneur d’objets blob lié à votre ressource Application Insights :

  1. Accédez à l’onglet Propriétés de votre ressource Application Insights.

  2. Sélectionnez Modifier le conteneur d’objets blob du mappage de source.

  3. Sélectionnez un autre conteneur d’objets blob en guise de conteneur de mappage de source.

  4. Sélectionnez Apply.

    Screenshot that shows reconfiguring your selected Azure blob container on the Properties pane.

Afficher la pile d’appels déminifiée

Pour afficher la pile des appels déminifiée, sélectionnez un élément Télémétrie d’exception dans le Portail Azure, recherchez les mappages de sources qui correspondent à la pile des appels, puis faites glisser, puis déposez les mappages de sources sur la pile des appels dans le Portail Azure. Le mappage de source doit avoir le même nom que le fichier source d’un frame de pile, mais avec une extension map.

Si vous rencontrez des problèmes qui impliquent la prise en charge du mappage de source pour les applications JavaScript, consultez Résoudre les problèmes de prise en charge du mappage de source pour les applications JavaScript.

Animation demonstrating unminify feature.

Nettoyage de code

Le nettoyage de code élimine le code inutilisé du pack JavaScript final.

Pour tirer parti du nettoyage de code, importez uniquement les composants nécessaires du Kit de développement logiciel (SDK) dans votre code. Ainsi, le code inutilisé n’est pas inclus dans le pack final, ce qui réduit sa taille, puis améliore le niveau de performance.

Améliorations et recommandations relatives au nettoyage de code

Dans la version 2.6.0, nous avons déconseillé, puis supprimé l’utilisation interne de ces classes d’assistances statiques pour améliorer la prise en charge des algorithmes de nettoyage de code. Cela permet aux packages npm de supprimer en toute sécurité le code inutilisé.

  • CoreUtils
  • EventHelper
  • Util
  • UrlHelper
  • DateTimeUtils
  • ConnectionStringParser

Les fonctions sont maintenant exportées en tant que racines de niveau supérieur depuis les modules, ce qui facilite la refactorisation de votre code pour un meilleur nettoyage de code.

Les classes statiques ont été remplacées par des objets const qui référencent les nouvelles fonctions exportées. D’autre part, nous prévoyons des modifications futures pour refactoriser davantage les références.

Fonctions déconseillées de nettoyage de code et remplacements

Cette section s’applique uniquement si vous utilisez les fonctions dépréciées et que vous souhaitez optimiser la taille du package. Nous vous recommandons d’utiliser les fonctions de remplacement pour réduire la taille et prendre en charge toutes les versions d’Internet Explorer.

Existing Remplacement
CoreUtils @microsoft/applicationinsights-core-js
CoreUtils._canUseCookies Aucune. N’utilisez pas cette fonction, car elle entraîne l’inclusion de toute la référence CoreUtils dans votre code final.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().setEnabled(true/false) pour définir la valeur, puis appInsights.getCookieMgr().isEnabled() pour vérifier la valeur.
CoreUtils.isTypeof isTypeof
CoreUtils.isUndefined isUndefined
CoreUtils.isNullOrUndefined isNullOrUndefined
CoreUtils.hasOwnProperty hasOwnProperty
CoreUtils.isFunction isFunction
CoreUtils.isObject isObject
CoreUtils.isDate isDate
CoreUtils.isArray isArray
CoreUtils.isError isError
CoreUtils.isString isString
CoreUtils.isNumber IsNumber
CoreUtils.isBoolean isBoolean
CoreUtils.toISOString toISOString ou getISOString
CoreUtils.arrForEach arrForEach
CoreUtils.arrIndexOf arrIndexOf
CoreUtils.arrMap arrMap
CoreUtils.arrReduce arrReduce
CoreUtils.strTrim strTrim
CoreUtils.objCreate objCreateFn
CoreUtils.objKeys objKeys
CoreUtils.objDefineAccessors objDefineAccessors
CoreUtils.addEventHandler addEventHandler
CoreUtils.dateNow dateNow
CoreUtils.isIE isIE
CoreUtils.disableCookies disableCookies
Le référencement d’un de ces élément entraîne le référencement de CoreUtils à des fins de compatibilité descendante.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().setEnabled(false)
CoreUtils.newGuid newGuid
CoreUtils.perfNow perfNow
CoreUtils.newId newId
CoreUtils.randomValue randomValue
CoreUtils.random32 random32
CoreUtils.mwcRandomSeed mwcRandomSeed
CoreUtils.mwcRandom32 mwcRandom32
CoreUtils.generateW3CId generateW3CId
EventHelper @microsoft/applicationinsights-core-js
EventHelper.Attach attachEvent
EventHelper.AttachEvent attachEvent
EventHelper.Detach detachEvent
EventHelper.DetachEvent detachEvent
Util @microsoft/applicationinsights-common-js
Util.NotSpecified strNotSpecified
Util.createDomEvent createDomEvent
Util.disableStorage utlDisableStorage
Util.isInternalApplicationInsightsEndpoint isInternalApplicationInsightsEndpoint
Util.canUseLocalStorage utlCanUseLocalStorage
Util.getStorage utlGetLocalStorage
Util.setStorage utlSetLocalStorage
Util.removeStorage utlRemoveStorage
Util.canUseSessionStorage utlCanUseSessionStorage
Util.getSessionStorageKeys utlGetSessionStorageKeys
Util.getSessionStorage utlGetSessionStorage
Util.setSessionStorage utlSetSessionStorage
Util.removeSessionStorage utlRemoveSessionStorage
Util.disableCookies disableCookies
Le référencement d’un de ces élément entraîne le référencement de CoreUtils à des fins de compatibilité descendante.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().setEnabled(false)
Util.canUseCookies canUseCookies
Le référencement d’un de ces élément entraîne le référencement de CoreUtils à des fins de compatibilité descendante.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().isEnabled()
Util.disallowsSameSiteNone uaDisallowsSameSiteNone
Util.setCookie coreSetCookie
Le référencement entraîne le référencement de CoreUtils à des fins de compatibilité descendante.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().set(name: string, value: string)
Util.stringToBoolOrDefault stringToBoolOrDefault
Util.getCookie coreGetCookie
Le référencement entraîne le référencement de CoreUtils à des fins de compatibilité descendante.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().get(name: string)
Util.deleteCookie coreDeleteCookie
Le référencement entraîne le référencement de CoreUtils à des fins de compatibilité descendante.
Refactorisez votre gestion des cookies pour utiliser appInsights.getCookieMgr().del(name: string, path?: string)
Util.trim strTrim
Util.newId newId
Util.random32 ---
Pas de remplacement ; refactorisez votre code pour utiliser le cœur random32(true)
Util.generateW3CId generateW3CId
Util.isArray isArray
Util.isError isError
Util.isDate isDate
Util.toISOStringForIE8 toISOString
Util.getIEVersion getIEVersion
Util.msToTimeSpan msToTimeSpan
Util.isCrossOriginError isCrossOriginError
Util.dump dumpObj
Util.getExceptionName getExceptionName
Util.addEventHandler attachEvent
Util.IsBeaconApiSupported isBeaconApiSupported
Util.getExtension getExtensionByName
UrlHelper @microsoft/applicationinsights-common-js
UrlHelper.parseUrl urlParseUrl
UrlHelper.getAbsoluteUrl urlGetAbsoluteUrl
UrlHelper.getPathName urlGetPathName
UrlHelper.getCompeteUrl urlGetCompleteUrl
UrlHelper.parseHost urlParseHost
UrlHelper.parseFullHost urlParseFullHost
DateTimeUtils @microsoft/applicationinsights-common-js
DateTimeUtils.Now dateTimeUtilsNow
DateTimeUtils.GetDuration dateTimeUtilsDuration
ConnectionStringParser @microsoft/applicationinsights-common-js
ConnectionStringParser.parse parseConnectionString

Notifications de service

Les notifications de service sont une fonctionnalité intégrée au kit de développement logiciel (SDK) pour fournir des recommandations exploitables pour vous assurer que vos flux de télémétrie sont ininterrompus vers Application Insights. Vous verrez les notifications sous la forme d’un message d’exception dans Application Insights. Nous nous assurons que les notifications sont pertinentes pour vous en fonction des paramètres de votre kit de développement logiciel (SDK) et nous adaptons la verbosité en fonction de l’urgence de la recommandation. Nous vous recommandons de laisser les notifications de service activées, mais vous êtes en mesure de les désactiver via la configuration featureOptIn. La liste des notifications actives figure ci-dessous.

Actuellement, aucune notification active n’est envoyée.

Résolution des problèmes

Consultez l’article sur la résolution des problèmes dédié.

Forum aux questions

Cette section fournit des réponses aux questions fréquentes.

Comment mettre à jour ma configuration de serveur tiers pour le kit de développement logiciel (SDK) JavaScript ?

Le côté serveur doit être en mesure d’accepter les connexions avec ces en-têtes présents. Selon la configuration de Access-Control-Allow-Headers côté serveur, il est souvent nécessaire d’étendre la liste côté serveur en ajoutant manuellement Request-Id, Request-Context et traceparent (en-tête distribué W3C).

Access-Control-Allow-Headers : Request-Id, traceparent, Request-Context, <your header>

Comment désactiver le suivi distribué pour le SDK JavaScript ?

Le suivi distribué peut être désactivé dans la configuration.

Les réponses HTTP 502 et 503 sont-elles toujours capturées par Application Insights ?

Nombre Les erreurs « 502 Passerelle incorrecte » et « 503 Service indisponible » ne sont pas toujours capturées par Application Insights. Si seul le code JavaScript côté client est utilisé pour l’analyse, ce comportement est prévisible, car la réponse d’erreur est retournée avant la page contenant l’en-tête HTML avec l’extrait de code JavaScript d’analyse rendu.

Si la réponse 502 ou 503 a été envoyée à partir d’un serveur sur lequel l’analyse côté serveur est activée, les erreurs sont collectées par le Kit de développement logiciel (SDK) Application Insights.

Même lorsque l’analyse côté serveur est activée sur le serveur web d’une application, il arrive qu’une erreur 502 ou 503 ne soit pas capturée par Application Insights. De nombreux serveurs web modernes ne permettent pas à un client de communiquer directement. Au lieu de cela, ils utilisent des solutions telles que les proxys inverses pour transmettre des informations entre le client et les serveurs web frontaux.

Dans ce scénario, une réponse 502 ou 503 peut être renvoyée à un client en raison d’un problème au niveau de la couche de proxy inverse, de sorte qu’elle n’est pas capturée directement par Application Insights. Pour aider à détecter les problèmes au niveau de cette couche, vous devrez peut-être transférer les journaux de votre proxy inverse vers Log Analytics et créer une règle personnalisée pour vérifier les réponses 502 ou 503. Pour en savoir plus sur les causes courantes des erreurs 502 et 503, consultez Corriger les erreurs HTTP « 502 Passerelle incorrecte » et « 503 Service indisponible » sur Azure App Service.

Étapes suivantes