Configuración del SDK de JavaScript para Application Insights de Microsoft Azure Monitor

La configuración del SDK de JavaScript para Azure Application Insights proporciona características avanzadas para el seguimiento, la supervisión y la depuración de las aplicaciones web.

Configuración del SDK

Estos campos de configuración son opcionales y adoptan como valor predeterminado false a menos que se indique lo contrario.

Para obtener instrucciones sobre cómo agregar la configuración del SDK, consulte Agregar configuración del SDK.

Nombre Tipo Valor predeterminado
accountId

Un identificador de cuenta opcional, si su aplicación agrupa a los usuarios en cuentas. Sin espacios, comas, puntos y comas, signos igual o barras verticales.
string null
addRequestContext

Proporcione una manera de enriquecer los registros de dependencias con contexto al principio de la llamada API. El valor predeterminado es undefined. Debe comprobar si existe xhr si configura contexto relacionado con xhr. Debe comprobar si existen fetch request y fetch response si configura contexto relacionado con fetch. De lo contrario, es posible que no obtenga los datos que necesita.
(requestContext: IRequestionContext) => {[key: string]: any} no definido
ajaxPerfLookupDelay

Su valor predeterminado es 25 ms. Cantidad de tiempo que hay que esperar antes de volver a intentar encontrar los intervalos de windows.performance para una solicitud AJAX. El tiempo se expresa en milisegundos y se pasa directamente a setTimeout().
NUMERIC 25
appId

AppId se utiliza para la correlación entre las dependencias AJAX que se producen en el lado cliente con las solicitudes del lado servidor. Cuando la API de Beacon está habilitada, no se puede usar automáticamente, pero se puede establecer manualmente en la configuración. El valor predeterminado es null.
string null
autoTrackPageVisitTime

Si es true, en una vista de página, se realiza el seguimiento de la hora de visualización de la página instrumentada anterior, que se envía como telemetría, y se inicia un nuevo temporizador para la vista de página actual. Se envía como una métrica personalizada llamada PageVisitTime en milliseconds y se calcula por medio de la función de fecha now() (si está disponible) y se revierte a (new Date()).getTime() si now() no está disponible (IE8 o una versión inferior). El valor predeterminado es False.
boolean false
convertUndefined

Proporcionar al usuario una opción para convertir un campo sin definir en un valor definido por el usuario.
any no definido
cookieCfg

De forma predeterminada, el uso de cookies está habilitado; consulte la configuración de ICookieCfgConfig para ver los valores predeterminados completos.
ICookieCfgConfig
[Opcional]
(Desde 2.6.0)
no definido
cookieDomain

Dominio de cookies personalizado. Resulta útil si desea compartir cookies de Application Insights entre subdominios.
(Desde v2.6.0) Si se define cookieCfg.domain, tiene prioridad sobre este valor.
alias para cookieCfg.domain
[Opcional]
null
cookiePath

Ruta de cookies personalizada. Resulta útil si quiere compartir cookies de Application Insights detrás de una puerta de enlace de aplicación.
Si se define cookieCfg.path, tiene prioridad.
alias para cookieCfg.path
[Opcional]
(Desde 2.6.0)
null
correlationHeaderDomains

Habilite encabezados de correlación para dominios específicos.
string[] no definido
correlationHeaderExcludedDomains

Deshabilite encabezados de correlación para dominios específicos.
string[] no definido
correlationHeaderExcludePatterns

Deshabilitar encabezados de correlación mediante expresiones regulares
regex[] no definido
createPerfMgr

Función de devolución de llamada a la que se llamará para crear una instancia de IPerfManager cuando sea necesario y la configuración enablePerfMgr esté habilitada. Permite invalidar la creación predeterminada de una instancia de PerfManager() sin necesidad de establecer setPerfMgr() después de la inicialización.
(core: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager no definido
customHeaders

La capacidad del usuario para proporcionar encabezados adicionales al usar un punto de conexión personalizado. No se agregan customHeaders en el momento de apagado del explorador cuando se usa el emisor de Beacon. Además, no se admite la incorporación de encabezados personalizados en IE9 o versiones anteriores.
[{header: string, value: string}] no definido
diagnosticLogInterval

(interno) Intervalo de sondeo (en milisegundos) para la cola de registro interno
NUMERIC 10000
disableAjaxTracking

Si es true, las llamadas Ajax no se recopilan automáticamente. El valor predeterminado es False.
boolean false
disableCookiesUsage

El valor predeterminado es false. Valor booleano que indica si deshabilitar el uso de cookies por parte del SDK. Si es true, el SDK no almacena ni lee ningún dato de las cookies.
(Desde v2.6.0) Si se define cookieCfg.enabled, tiene prioridad. El uso de cookies se puede volver a habilitar después de la inicialización mediante core.getCookieMgr().setEnabled(true).
alias para cookieCfg.enabled
[Opcional]
false
disableCorrelationHeaders

Si es false, el SDK agrega dos encabezados ("Request-Id" y "Request-Context") a todas las solicitudes de dependencia para correlacionarlas con las solicitudes correspondientes en el lado servidor. El valor predeterminado es False.
boolean false
disableDataLossAnalysis

Si es false, se comprueban los búferes del emisor de telemetría interna al inicio para detectar si hay elementos que todavía no se hayan enviado.
boolean true
disableExceptionTracking

Si es true, las excepciones no se recopilan automáticamente. El valor predeterminado es False.
boolean false
disableFetchTracking

El valor predeterminado de disableFetchTracking es false, lo que significa que la característica está habilitada. Sin embargo, en versiones anteriores a la 2.8.10, estaba deshabilitada de manera predeterminada. Cuando se establece en true, las solicitudes Fetch no se recopilan automáticamente. El valor predeterminado ha cambiado de true a false en la versión 2.8.0.
boolean false
disableFlushOnBeforeUnload

El valor predeterminado es false. Si es true, no se llama al método flush cuando se desencadene un evento onBeforeUnload.
boolean false
disableIkeyDeprecationMessage

Deshabilitar el mensaje de error de desuso de la clave de instrumentación. Si es true, NO se envían mensajes de error.
boolean true
disableInstrumentationKeyValidation

Si es true, se omite la comprobación de validación de la clave de instrumentación. El valor predeterminado es False.
boolean false
disableTelemetry

Si es true, no se recopilan ni se envían los datos de telemetría. El valor predeterminado es False.
boolean false
disableXhr

No use XMLHttpRequest o XDomainRequest (para IE < 9) de manera predeterminada; intente usar fetch() o sendBeacon en su lugar. Si no hay ningún otro transporte disponible, usa XMLHttpRequest.
boolean false
distributedTracingMode

Establece del modo de seguimiento distribuido. Si se establece el modo AI_AND_W3C o el modo W3C, se generan los encabezados de contexto de seguimiento W3C (traceparent/tracestate) y se incluyen en todas las solicitudes salientes. AI_AND_W3C se proporciona para la compatibilidad con versiones anteriores de cualquier servicio instrumentado de Application Insights heredado.
numérico o DistributedTracingModes DistributedTracing Modes.AI_AND_W3C
enableAjaxErrorStatusText

El valor predeterminado es false. Si es true, incluya el valor booleano de texto de datos de error de respuesta en el evento de dependencia en solicitudes AJAX erróneas.
boolean false
enableAjaxPerfTracking

El valor predeterminado es false. Marca para habilitar la búsqueda y la inclusión de intervalos de window.performance de explorador adicionales en las métricas notificadas de AJAX (XHR y Fetch).
boolean false
enableAutoRouteTracking

Realice un seguimiento automático de los cambios de ruta en aplicaciones de página única (SPA). Si es true, cada cambio de ruta envía una nueva vista de página a Application Insights. Los cambios de ruta hash (example.com/foo#bar) también se registran como nuevas vistas de página.
Nota: si habilita este campo, no habilite el objeto history para la configuración del enrutador de React, ya que obtendrá varios eventos de vista de página.
boolean false
enableCorsCorrelation

Si es true, el SDK agrega dos encabezados ("Request-Id" y "Request-Context") a todas las solicitudes CORS para correlacionar dependencias AJAX salientes con las solicitudes correspondientes en el lado servidor. El valor predeterminado es false.
boolean false
enableDebug

Si es true, los datos de depuración internos se devuelven como una excepción en lugar de registrarse, independientemente de la configuración de registro del SDK. El valor predeterminado es False.
Nota: Si se habilita este valor de configuración, se descarta la telemetría siempre que se produzca un error interno. Puede ser útil para identificar rápidamente problemas con la configuración o el uso del SDK. Si no desea perder datos de telemetría durante la depuración, considere la posibilidad de usar loggingLevelConsole o loggingLevelTelemetry en lugar de enableDebug.
boolean false
enablePerfMgr

Si esta configuración está habilitada (true), se crea un valor perfEvents local para el código que se ha instrumentado para emitir perfEvents (a través del asistente doPerf()). Se puede usar para identificar problemas de rendimiento en el SDK en función de su uso o de manera opcional dentro de su propio código instrumentado.
boolean false
enableRequestHeaderTracking

Si es true, se realiza un seguimiento de los encabezados de solicitud AJAX y Fetch. El valor predeterminado es false. Si ignoreHeaders no se configura, no se registran los encabezados Authorization y X-API-Key.
boolean false
enableResponseHeaderTracking

Si es true, se realiza un seguimiento de los encabezados de respuesta de solicitud AJAX y Fetch. El valor predeterminado es false. Si ignoreHeaders no se configura, no se registra el encabezado WWW-Authenticate.
boolean false
enableSessionStorageBuffer

El valor predeterminado es true. Si es true, el búfer con toda la telemetría no enviada se guarda en el almacenamiento de la sesión. El búfer se restaura al cargar la página.
boolean true
enableUnhandledPromiseRejectionTracking

Si es true, los rechazos de promesa no controlados se recopilan automáticamente como un error de JavaScript. Cuando disableExceptionTracking es true (no realizar el seguimiento de las excepciones), el valor de configuración se omite y los rechazos de promesa no controlados no se notifican.
boolean false
eventsLimitInMem

Número de eventos que se pueden mantener en la memoria antes de que el SDK empiece a anular eventos cuando no se use el almacenamiento de sesión (valor predeterminado).
number 10000
excludeRequestFromAutoTrackingPatterns

Proporcione una manera de excluir una ruta específica del seguimiento automático de la solicitud XMLHttpRequest o Fetch. Si se define, en el caso de una solicitud AJAX o Fetch en que la dirección URL de la solicitud coincide con los patrones de regex, el seguimiento automático está desactivado. El valor predeterminado es undefined.
string[] | RegExp[] no definido
featureOptIn

Establece los detalles de participación en características.

Este campo de configuración solo está disponible en la versión 3.0.3 y versiones posteriores.
IFeatureOptIn no definido
idLength

Identifica la longitud predeterminada que se usa para generar nuevos identificadores aleatorios de sesión y de usuario. El valor predeterminado es 22; el valor predeterminado anterior era 5 (v2.5.8 o anteriores), así que si necesita mantener la longitud máxima anterior, debe establecer el valor en 5.
NUMERIC 22
ignoreHeaders

AJAX & Fetch encabezados de solicitud y respuesta que se omitirán en los datos de registro. Para invalidar o descartar el valor predeterminado, agregue una matriz con todos los encabezados que se van a excluir o una matriz vacía a la configuración.
string[] ["Authorization", "X-API-Key", "WWW-Authenticate"]
isBeaconApiDisabled

Si es false, el SDK envía toda la telemetría mediante la API de Beacon.
boolean true
isBrowserLinkTrackingEnabled

El valor predeterminado es False. Si es true, el SDK realiza un seguimiento de todas las solicitudes de Vínculo con exploradores.
boolean false
isRetryDisabled

El valor predeterminado es false. Si es false, se produce un reintento con los errores 206 (parcialmente correcto), 408 (tiempo de espera), 429 (demasiadas solicitudes), 500 (error interno del servidor), 503 (servicio no disponible) y 0 (sin conexión, solo si se detecta).
boolean false
isStorageUseDisabled

Si es true, el SDK no almacena ni lee datos del almacenamiento local o de la sesión. El valor predeterminado es False.
boolean false
loggingLevelConsole

Registra errores internos de Application Insights en la consola.
0: desactivado
1: solo errores críticos
2: Todo (errores y advertencias)
NUMERIC 0
loggingLevelTelemetry

Envía errores internos de Application Insights como telemetría.
0: desactivado
1: solo errores críticos
2: Todo (errores y advertencias)
NUMERIC 1
maxAjaxCallsPerView

El valor predeterminado es 500: controla cuántas llamadas AJAX se supervisan por vista de página. Establézcalo en -1 para supervisar todas las llamadas AJAX (ilimitadas) en la página.
NUMERIC 500
maxAjaxPerfLookupAttempts

El valor predeterminado es 3. El número máximo de veces que se deben buscar los intervalos de window.performance (si están disponibles) es obligatorio. No todos los exploradores rellenan window.performance antes de notificar el final de la solicitud XHR. Para las solicitudes Fetch, se agrega una vez completado.
NUMERIC 3
maxBatchInterval

Cuánto tiempo deben recopilar datos de telemetría en lote antes de enviarlos (milisegundos).
NUMERIC 15000
maxBatchSizeInBytes

Tamaño máximo del lote de telemetría. Si un lote supera este límite, se envía inmediatamente y se inicia un nuevo lote.
NUMERIC 10000
namePrefix

Valor opcional que se usa como postfijo de nombre para el nombre de cookies de sesión y localStorage.
string no definido
onunloadDisableBeacon

El valor predeterminado es false. Si la pestaña está cerrada, el SDK envía la telemetría restante mediante la API de Beacon.
boolean false
onunloadDisableFetch

Si se admite el método fetch keepalive, no lo use para enviar eventos durante la descarga, es posible que se revierta a fetch() sin keepalive.
boolean false
overridePageViewDuration

Si es true, el comportamiento predeterminado de trackPageView se cambia para registrar el final del intervalo de duración de la vista de página cuando se llama a trackPageView. Si es false y no se proporciona ninguna duración personalizada a trackPageView, el rendimiento de la vista de página se calcula mediante la API de tiempos de navegación. El valor predeterminado es False.
boolean false
perfEvtsSendAll

Cuando enablePerfMgr está habilitado y IPerfManager activa INotificationManager.perfEvent(), esta marca determina si se desencadena un evento (y si se envía a todos los agentes de escucha) para todos los eventos (true) o solo para los eventos "parent" (<el valor predeterminado es false>).
Un elemento IPerfEvent principal es un evento en el que no se está ejecutando ningún otro elemento IPerfEvent en el momento de creación del evento, y su propiedad parent no es NULL o no está definida. Desde v2.5.7
boolean false
samplingPercentage

Porcentaje de eventos que se envía. El valor predeterminado es 100, lo que significa que se envían todos los eventos. Establézcalo si desea conservar el límite de datos para aplicaciones a gran escala.
NUMERIC 100
sdkExtension

Establece el nombre de la extensión del SDK. Solo puede contener caracteres alfabéticos. El nombre de la extensión se agrega como prefijo a la etiqueta "ai.internal.sdkVersion" (por ejemplo, "ext_javascript:2.0.0"). El valor predeterminado es null.
string null
sessionCookiePostfix

Valor opcional que se usa como postfijo de nombre para el nombre de cookies de sesión. Si el valor es undefined, se usa namePrefix como postfijo de nombre para el nombre de cookies de sesión.
string no definido
sessionExpirationMs

Se registra una sesión si ha continuado durante este período de tiempo en milisegundos. El valor predeterminado es 24 horas.
NUMERIC 86400000
sessionRenewalMs

Se registra una sesión si el usuario está inactivo durante este período de tiempo en milisegundos. El valor predeterminado es 30 minutos.
NUMERIC 1800000
throttleMgrCfg

Establece la configuración de mgr de limitación por clave.

Este campo de configuración solo está disponible en la versión 3.0.3 y versiones posteriores.
{[key: number]: IThrottleMgrConfig} no definido
userCookiePostfix

Valor opcional que se usa como postfijo de nombre para el nombre de cookies de usuario. Si el valor es undefined, no se agrega ningún postfijo en el nombre de cookies de usuario.
string no definido

A partir de la versión 2.6.0, el SDK de JavaScript para Azure Application Insights proporciona administración de cookies basada en instancias que se puede deshabilitar y volver a habilitar después de la inicialización.

Si deshabilitó las cookies durante la inicialización mediante las configuraciones disableCookiesUsage o cookieCfg.enabled, puede volver a habilitarlas mediante la función setEnabled del objeto ICookieMgr.

La administración de cookies basada en instancias reemplaza las funciones globales CoreUtils anteriores de disableCookies(), setCookie()getCookie() y deleteCookie().

Para aprovechar las mejoras de agitación de árboles introducidas en la versión 2.6.0, se recomienda dejar de usar las funciones globales.

ICookieMgrConfig es una configuración de cookies para la administración de cookies basada en instancias agregada en la versión 2.6.0. Las opciones proporcionadas permiten habilitar o deshabilitar el uso de cookies por parte del SDK. También puede establecer rutas de acceso y dominios de cookies personalizados y personalizar las funciones para capturar, establecer y eliminar cookies.

Las opciones de ICookieMgrConfig se definen en la tabla siguiente.

Nombre Tipo Valor predeterminado Descripción
enabled boolean true La instancia actual del SDK usa este valor booleano para indicar si el uso de cookies está habilitado. Si es false, la instancia del SDK que inicializa esta configuración no almacena ni lee datos de las cookies.
dominio string null Dominio de cookies personalizado. Resulta útil si desea compartir cookies de Application Insights entre subdominios. Si no se proporciona, usa el valor de la raíz cookieDomain.
path string / Especifica la ruta de acceso que se utilizará para la cookie; si no se proporciona, usa cualquier valor de la raíz cookiePath.
ignoreCookies string[] no definido Especifique los nombres de las cookies que se omitirán, lo que hace que los nombres de cookies coincidentes nunca se lean o escriban. Es posible que se sigan purgando o eliminando explícitamente. No es necesario repetir el nombre en la configuración blockedCookies. (Desde v2.8.8)
blockedCookies string[] no definido Especifique los nombres de las cookies que nunca se van a escribir. Evita la creación o actualización de nombres de cookies, pero se pueden seguir leyendo a menos que también se incluya en ignoreCookies. Es posible que se sigan purgando o eliminando explícitamente. Si no se proporciona, el valor predeterminado es la misma lista de ignoreCookies. (Desde v2.8.8)
getCookie (name: string) => string null Función para capturar el valor de la cookie con nombre; si no se proporciona, usa el análisis o el almacenamiento en caché de cookies interno.
setCookie (name: string, value: string) => void null Función para establecer la cookie con nombre con el valor especificado; solo se llama al agregar o actualizar una cookie.
delCookie (name: string, value: string) => void null Función para eliminar la cookie con nombre con el valor especificado; se separa de setCookie para evitar la necesidad de analizar el valor para determinar si la cookie se agrega o se quita. Si no se proporciona, usa el análisis o el almacenamiento en caché de cookies interno.

Mapa de origen

La compatibilidad con mapas de origen ayuda a depurar código JavaScript minificado con la capacidad de desminificar la pila de llamadas minificada de la telemetría de excepciones.

  • Compatible con todas las integraciones actuales en el panel Detalles de la excepción.
  • Admite todos los SDK de JavaScript actuales y futuros, incluido Node.JS, sin necesidad de una actualización del SDK.

Application Insights admite la carga de mapas de origen en su propio contenedor de blobs de Azure Storage. Es posible usar mapas de origen para desminificar las pilas de llamadas que se encuentren en la página Detalles de transacciones de un extremo a otro. También se pueden usar mapas de origen para desminificar cualquier excepción enviada por el SDK de JavaScript o el SDK de Node.js.

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

Creación de una cuenta de almacenamiento y un contenedor de blobs

Si ya tiene una cuenta de almacenamiento o un contenedor de blobs, puede omitir este paso.

  1. Creación de una nueva cuenta de almacenamiento.

  2. Cree un contenedor de blobs en la cuenta de almacenamiento. Establezca Nivel de acceso público en Privado para asegurarse de que los mapas de origen no sean accesibles públicamente.

    Screenshot that shows setting the container access level to Private.

Inserción de mapas de origen en el contenedor de blobs

Integre la canalización de implementación continua con la cuenta de almacenamiento configurándola para cargar automáticamente los mapas de origen en el contenedor de blobs configurado.

Se pueden cargar mapas de origen en el contenedor de Azure Blob Storage con la misma estructura de carpetas con la que se compilaron e implementaron. Un caso de uso común es prefijar una carpeta de implementación con su versión. Por ejemplo: 1.2.3/static/js/main.js. Al desminificar mediante un contenedor de blobs de Azure denominado sourcemaps, la canalización intenta capturar un mapa de origen ubicado en sourcemaps/1.2.3/static/js/main.js.map.

Si usa Azure Pipelines para compilar e implementar de forma continua la aplicación, agregue una tarea Copia de archivos de Azure a la canalización para cargar automáticamente los mapas de origen.

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

Configuración del recurso de Application Insights con una cuenta de almacenamiento del mapa de origen

Tiene dos opciones para configurar el recurso de Application Insights con una cuenta de almacenamiento del mapa de origen.

Hoja de detalles Transacción completa

En la pestaña Detalles de transacciones de un extremo a otro, seleccione Desminificar. Configure el recurso si no estuviera configurado.

  1. En Azure Portal, consulte los detalles de una excepción que está minificada.
  2. Seleccione Desminificar.
  3. Si el recurso no estuviera configurado, configúrelo.
Pestaña Propiedades

Para configurar o cambiar la cuenta de almacenamiento o el contenedor de blobs vinculados al recurso de Application Insights:

  1. Vaya a la pestaña Propiedades del recurso de Application Insights.

  2. Seleccione Cambiar el contenedor de blobs del mapa de origen.

  3. Seleccione un contenedor de blobs diferente como contenedor de mapas de origen.

  4. Seleccione Aplicar.

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

Ver de la pila de llamadas sin minificar

Para ver la pila de llamadas desminificada, seleccione un elemento de telemetría de excepciones en Azure Portal, busque los mapas de origen que coincidan con la pila de llamadas y arrastre y coloque los mapas de origen en la pila de llamadas de Azure Portal. El mapa de origen debe tener el mismo nombre que el archivo de origen de un marco de pila, pero con una extensión map.

Si experimenta problemas relacionados con la compatibilidad con mapas de código fuente para aplicaciones JavaScript, consulte Solución de problemas de compatibilidad con mapas de código fuente para aplicaciones JavaScript.

Animation demonstrating unminify feature.

Agitación de árboles

La agitación de árboles elimina el código sin usar del conjunto final de JavaScript.

Para utilizar la agitación de árboles, importe solo los componentes necesarios del SDK en el código. Al hacerlo, el código sin usar no se incluye en el conjunto final, lo que reduce su tamaño y mejora el rendimiento.

Mejoras y recomendaciones de la agitación de árboles

En la versión 2.6.0, el uso interno de estas clases auxiliares estáticas ha quedado en desuso y se ha quitado para mejorar la compatibilidad con los algoritmos de agitación de árboles. Permite que los paquetes de npm anulen el código sin usar de forma segura.

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

Las funciones ahora se exportan como raíces de nivel superior desde los módulos, lo que facilita la refactorización del código para mejorar la agitación de árboles.

Las clases estáticas se cambiaron a objetos const que hacen referencia a las nuevas funciones exportadas. Están previstos cambios futuros para refactorizar aún más las referencias.

Funciones y reemplazos en desuso de la agitación de árboles

Esta sección solo se le aplica si usa las funciones en desuso y desea optimizar el tamaño del paquete. Se recomienda usar las funciones de reemplazo para reducir el tamaño y admitir todas las versiones de Internet Explorer.

Existing Replacement
CoreUtils @microsoft/applicationinsights-core-js
CoreUtils._canUseCookies Ninguno. No se debe usar, ya que hace que todas las referencias de CoreUtils se incluyan en el código final.
Refactorice el control de cookies a fin de usar appInsights.getCookieMgr().setEnabled(true/false) para establecer el valor y appInsights.getCookieMgr().isEnabled() para comprobar el valor.
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 or 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
La referencia hace que se haga referencia a CoreUtils por motivos de compatibilidad con versiones anteriores.
Refactorice el control de cookies para usar 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
La referencia hace que se haga referencia a CoreUtils por motivos de compatibilidad con versiones anteriores.
Refactorice el control de cookies para usar appInsights.getCookieMgr().setEnabled(false).
Util.canUseCookies canUseCookies
La referencia hace que se haga referencia a CoreUtils por motivos de compatibilidad con versiones anteriores.
Refactorice el control de cookies para usar appInsights.getCookieMgr().isEnabled().
Util.disallowsSameSiteNone uaDisallowsSameSiteNone
Util.setCookie coreSetCookie
La referencia hace que se haga referencia a CoreUtils por motivos de compatibilidad con versiones anteriores.
Refactorice el control de cookies para usar appInsights.getCookieMgr().set(name: string, value: string).
Util.stringToBoolOrDefault stringToBoolOrDefault
Util.getCookie coreGetCookie
La referencia hace que se haga referencia a CoreUtils por motivos de compatibilidad con versiones anteriores.
Refactorice el control de cookies para usar appInsights.getCookieMgr().get(name: string).
Util.deleteCookie coreDeleteCookie
La referencia hace que se haga referencia a CoreUtils por motivos de compatibilidad con versiones anteriores.
Refactorice el control de cookies para usar appInsights.getCookieMgr().del(name: string, path?: string).
Util.trim strTrim
Util.newId newId
Util.random32 ---
Sin reemplazo, refactorice el código para usar core 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

Notificaciones de servicio

Las notificaciones de servicio son una característica integrada en el SDK para proporcionar recomendaciones de gran utilidad para ayudar a garantizar que la telemetría fluya sin interrupciones a Application Insights. Verá las notificaciones como un mensaje de excepción en Application Insights. Garantizamos que las notificaciones son pertinentes según la configuración del SDK y ajustamos el nivel de detalle en función de la urgencia de la recomendación. Se recomienda dejar las notificaciones de servicio activadas, pero puede optar por no participar en la configuración de featureOptIn. Consulte a continuación una lista de notificaciones activas.

Actualmente, no se están enviando notificaciones activas.

Solución de problemas

Consulte el artículo de solución de problemas dedicado.

Preguntas más frecuentes

Esta sección proporciona respuestas a preguntas comunes.

¿Cómo puedo actualizar la configuración del servidor de terceros para el SDK de JavaScript?

El lado servidor debe ser capaz de aceptar conexiones que tengan esos encabezados. En función de la configuración de Access-Control-Allow-Headers en el lado servidor, a menudo es necesario ampliar la lista del lado servidor mediante la adición manual de Request-Id, Request-Context y traceparent (encabezado distribuido de W3C).

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

¿Cómo puedo deshabilitar el seguimiento distribuido para el SDK de JavaScript?

El seguimiento distribuido se puede deshabilitar en la configuración.

¿Application Insights captura siempre las respuestas HTTP 502 y 503?

No. Application Insights no siempre captura los errores "502 Puerta de enlace no válida" y "503 Servicio no disponible". Si solo se usa JavaScript del lado cliente para la supervisión, este comportamiento sería el esperado, ya que la respuesta de error se devuelve antes que la página que contiene el encabezado HTML con el fragmento de código de JavaScript de supervisión que se está representando.

Si la respuesta 502 o 503 se ha enviado desde un servidor con la supervisión del lado servidor habilitada, el SDK de Application Insights recopila los errores.

Incluso con la supervisión del lado servidor habilitada en el servidor web de una aplicación, a veces Application Insights no captura un error 502 o 503. Muchos servidores web modernos no permiten que un cliente se comunique directamente. En lugar de ellos, emplean soluciones como los servidores proxy inversos para pasar información entre el cliente y los servidores web front-end.

En este escenario, se puede devolver una respuesta 502 o 503 a un cliente por una incidencia en la capa de proxy inverso, de modo que no sería capturado de inmediato por Application Insights. Para ayudar a detectar problemas en esta capa, es posible que tenga que reenviar registros desde el proxy inverso a Log Analytics y crear una regla personalizada para buscar respuestas 502 o 503. Para obtener más información sobre las causas comunes de los errores 502 y 503, consulte Solución de errores de HTTP de "502 Puerta de enlace no válida" y "503 Servicio no disponible" en Azure App Service.

Pasos siguientes