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 < version 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 En-têtes de requête et de réponse AJAX & Fetch à 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 |
Gestion des cookies
À 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.
Configuration des cookies
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)
Lien vers un compte de stockage blob
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.
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.
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.
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
.
Charger les mappages de source via Azure Pipelines (recommandé)
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.
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.
- Sur le portail Azure, affichez les détails d’une exception minifiée.
- Sélectionnez Déminifier.
- 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 :
Accédez à l’onglet Propriétés de votre ressource Application Insights.
Sélectionnez Modifier le conteneur d’objets blob du mappage de source.
Sélectionnez un autre conteneur d’objets blob en guise de conteneur de mappage de source.
Sélectionnez Appliquer.
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.
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.