Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Application Insights recopila telemetría de la aplicación para ayudar a diagnosticar errores e investigar transacciones lentas. Incluye cuatro herramientas esenciales:
Errores : realiza un seguimiento de los errores, las excepciones y los errores, lo que ofrece información clara para una rápida resolución de problemas y una estabilidad mejorada.
Rendimiento : identifica y ayuda a resolver rápidamente los cuellos de botella de la aplicación mostrando los tiempos de respuesta y los recuentos de operaciones.
Búsqueda de transacciones : permite a los usuarios buscar y examinar elementos de telemetría individuales, como vistas de página, excepciones y eventos personalizados.
Diagnósticos de transacciones : ayuda a identificar rápidamente los problemas de los componentes a través de información completa sobre los detalles de las transacciones de un extremo a otro.
Juntas, estas herramientas garantizan el mantenimiento y la eficacia continuas de las aplicaciones web. Puede usarlos para identificar problemas o mejoras que podrían tener el mayor impacto en los usuarios.
Para ir a la vista Errores de Application Insights, seleccione el gráfico Solicitudes con errores en el panel Información general o Errores en la categoría Investigar del menú de recursos.
También puede acceder a la vista de errores desde el Mapa de Aplicaciones seleccionando un recurso y, a continuación, Investigar errores en la sección de triaje.
Nota:
Puede acceder a diagnósticos de transacciones a través de cualquiera de las otras tres experiencias. Para obtener más información, consulte Investigación de telemetría.
Información general
La vista Errores muestra una lista de todas las operaciones con errores recopiladas para la aplicación con la opción de profundizar en cada una de ellas. Le permite ver su frecuencia y el número de usuarios afectados, para ayudarle a centrar sus esfuerzos en los problemas con el mayor impacto.
Nota:
Además de la telemetría integrada enviada por Azure Monitor OpenTelemetry Distro o SDK de JavaScript, es posible agregar y modificar la telemetría (por ejemplo, eventos personalizados).
Para más información, consulte Incorporación y modificación de OpenTelemetry de Azure Monitor para aplicaciones de .NET, Java, Node.jsy Python.
Telemetría de filtro
Filtros predeterminados
Todas las experiencias permiten filtrar la telemetría por intervalo de tiempo. Además, cada experiencia incluye su propio filtro predeterminado:
Puede seleccionar qué servicio (nombre de rol en la nube) o máquina/contenedor (instancia de rol en la nube) ver desde el menú filtro de roles. Esta acción permite aislar problemas o tendencias de rendimiento dentro de partes específicas de la aplicación.
Para obtener información sobre cómo establecer el Cloud Role Name y el Cloud Role Instance, consulte Configurar Azure Monitor OpenTelemetry.
Agregar filtros
Puede filtrar eventos por los valores de sus propiedades. Las propiedades disponibles dependen de los tipos de evento o telemetría que haya seleccionado. Para agregar un filtro:
Seleccione
para agregar un filtro.
En la lista desplegable izquierda, seleccione una propiedad.
En la lista desplegable central, seleccione uno de los operadores siguientes:
=,!=,containsonot contains.En la lista desplegable derecha, seleccione todos los valores de propiedad en los que desea filtrar.
Nota:
Observe que los recuentos a la derecha de los valores de filtro muestran cuántas repeticiones hay en el conjunto filtrado actual.
Para agregar otro filtro, vuelva a seleccionar
.
Búsqueda de telemetría
Puede buscar operaciones específicas mediante el campo Buscar para filtrar elementos... encima de la lista de operaciones.
Uso de datos de análisis
Todos los datos recopilados por Application Insights se almacenan en Log Analytics. Proporciona un lenguaje de consulta enriquecido para analizar las solicitudes que generaron la excepción que está investigando.
Sugerencia
El modo simple en Log Analytics ofrece una interfaz intuitiva de puntero y clic para analizar y visualizar los datos de registro.
En la vista de rendimiento, errores o búsqueda de transacciones, seleccione Ver en registros en la barra de navegación superior y elija una consulta del menú desplegable.
Esta acción le lleva a la vista Registros , donde puede modificar aún más la consulta o seleccionar una diferente de la barra lateral.
Investigación de la telemetría
Para investigar la causa principal de un error o una excepción, puede profundizar en la operación problemática para obtener una vista detallada de la transacción de principio a fin que incluya dependencias y detalles de excepción.
Seleccione una operación para ver los códigos de respuesta principales 3, los tres tipos de excepción principales y las 3 dependencias con errores principales para esa operación.
En Explorar en profundidad, seleccione el botón con el número de resultados filtrados para ver una lista de operaciones de ejemplo.
Seleccione una operación de ejemplo para abrir la vista Detalles de la transacción de extremo a extremo.
Nota:
Las muestras sugeridas contienen telemetría relacionada de todos los componentes, incluso si el muestreo está en uso en cualquiera de ellos.
Análisis del rendimiento y los errores del lado cliente
Si instrumenta las páginas web con Application Insights, puede obtener visibilidad de las vistas de página, las operaciones del explorador y las dependencias. La recopilación de estos datos del explorador requiere agregar un script a las páginas web.
Después de agregar el script, puede acceder a las vistas de página y a sus métricas de rendimiento asociadas seleccionando el botón de alternancia Explorador en la vista Rendimiento o Errores.
Esta vista proporciona un resumen visual de diversos datos de telemetría de la aplicación desde la perspectiva del explorador.
En el caso de las operaciones del explorador, la vista de detalles de la transacción de extremo a extremo muestra las Propiedades de la Vista de Página del cliente que solicita la página, incluido el tipo de explorador y su ubicación. Esta información puede ayudar a determinar si hay problemas de rendimiento relacionados con determinados tipos de clientes.
Nota:
Al igual que los datos recopilados para el rendimiento del servidor, Application Insights hace que todos los datos de cliente estén disponibles para el análisis profundo mediante registros.
Experiencia de diagnósticos de la transacción
La experiencia de Diagnóstico de transacciones, también denominada visualización Detalles de transacción de un extremo a otro, muestra un diagrama de Gantt de la transacción, que enumera todos los eventos con su duración y código de respuesta.
Esta experiencia de diagnóstico correlaciona automáticamente la telemetría del lado servidor de todos los componentes supervisados de Application Insights en una sola vista y admite varios recursos. Application Insights detecta la relación subyacente y le permite diagnosticar fácilmente el componente, la dependencia o la excepción de la aplicación que provocaron una ralentización o un error en la transacción.
Al seleccionar un evento específico se muestran sus propiedades, incluida información adicional, como el comando subyacente o la pila de llamadas.
Esta vista tiene cuatro partes clave:
En este panel contraíble se muestran los otros resultados que cumplen los criterios de filtro. Haga clic en cualquier resultado para actualizar los detalles correspondientes en las tres secciones anteriores. Intentamos buscar ejemplos con más probabilidades de tener detalles disponibles de todos los componentes, aunque el muestreo esté activo en cualquiera de ellos. Estos ejemplos se muestran como sugerencias.
Anotaciones de lanzamiento
Las anotaciones de versión marcan implementaciones y otros eventos significativos en gráficos de Application Insights, lo que permite la correlación de cambios con el rendimiento, los errores y el uso.
Anotaciones automáticas con Azure Pipelines
Azure Pipelines crea una anotación de versión durante la implementación cuando se cumplen todas las condiciones siguientes:
- El recurso de destino se vincula a Application Insights a través de la configuración de la
APPINSIGHTS_INSTRUMENTATIONKEYaplicación. - El recurso de Application Insights está en la misma suscripción que el recurso de destino.
- La implementación usa una de las siguientes tareas de Azure Pipelines:
| Código de tarea | Nombre de tarea | Versions |
|---|---|---|
| AzureAppServiceSettings | Configuración de Azure App Service | Cualquiera |
| AzureRmWebAppDeployment | Azure App Service | V3+ |
| AzureFunctionApp | Funciones de Azure | Cualquiera |
| AzureFunctionAppContainer | Azure Functions para contenedor | Cualquiera |
| AzureWebAppContainer | Aplicación web de Azure para contenedores | Cualquiera |
| AzureWebApp | Aplicación web de Azure | Cualquiera |
Nota:
Si sigue usando la tarea anterior de implementación de anotaciones de Application Insights, elimínela.
Configurar anotaciones en una canalización mediante un script en línea
Si no usa las tareas de la sección anterior, agregue un script en línea en la etapa de implementación.
Abra una canalización existente o cree una nueva y seleccione una tarea en Fases.
Agregue una nueva tarea de la CLI de Azure .
Seleccione la suscripción de Azure. Establezca Tipo de script en PowerShell y establezca Ubicación del scripten Insertado.
Agregue el script de PowerShell del paso 2 en Crear anotaciones de versión con la CLI de Azure a Script en línea.
Agregue argumentos de script. Reemplace los marcadores de posición entre corchetes angulares.
-aiResourceId "<aiResourceId>" ` -releaseName "<releaseName>" ` -releaseProperties @{"ReleaseDescription"="<a description>"; "TriggerBy"="<Your name>" }En el ejemplo siguiente se muestran los metadatos que puede establecer en el argumento opcional
releasePropertiesmediante variables de compilación y versión. Haga clic en Guardar.-releaseProperties @{ "BuildNumber"="$(Build.BuildNumber)"; "BuildRepositoryName"="$(Build.Repository.Name)"; "BuildRepositoryProvider"="$(Build.Repository.Provider)"; "ReleaseDefinitionName"="$(Build.DefinitionName)"; "ReleaseDescription"="Triggered by $(Build.DefinitionName) $(Build.BuildNumber)"; "ReleaseEnvironmentName"="$(Release.EnvironmentName)"; "ReleaseId"="$(Release.ReleaseId)"; "ReleaseName"="$(Release.ReleaseName)"; "ReleaseRequestedFor"="$(Release.RequestedFor)"; "ReleaseWebUrl"="$(Release.ReleaseWebUrl)"; "SourceBranch"="$(Build.SourceBranch)"; "TeamFoundationCollectionUri"="$(System.TeamFoundationCollectionUri)" }
Creación de anotaciones de versión con la CLI de Azure
Use el siguiente script de PowerShell para crear una anotación de versión a partir de cualquier proceso, sin Azure DevOps.
Inicie sesión en la CLI de Azure.
Guarde el siguiente script como
CreateReleaseAnnotation.ps1.param( [parameter(Mandatory = $true)][string]$aiResourceId, [parameter(Mandatory = $true)][string]$releaseName, [parameter(Mandatory = $false)]$releaseProperties = @() ) # Function to ensure all Unicode characters in a JSON string are properly escaped function Convert-UnicodeToEscapeHex { param ( [parameter(Mandatory = $true)][string]$JsonString ) $JsonObject = ConvertFrom-Json -InputObject $JsonString foreach ($property in $JsonObject.PSObject.Properties) { $name = $property.Name $value = $property.Value if ($value -is [string]) { $value = [regex]::Unescape($value) $OutputString = "" foreach ($char in $value.ToCharArray()) { $dec = [int]$char if ($dec -gt 127) { $hex = [convert]::ToString($dec, 16) $hex = $hex.PadLeft(4, '0') $OutputString += "\u$hex" } else { $OutputString += $char } } $JsonObject.$name = $OutputString } } return ConvertTo-Json -InputObject $JsonObject -Compress } $annotation = @{ Id = [GUID]::NewGuid(); AnnotationName = $releaseName; EventTime = (Get-Date).ToUniversalTime().GetDateTimeFormats("s")[0]; Category = "Deployment"; #Application Insights only displays annotations from the "Deployment" Category Properties = ConvertTo-Json $releaseProperties -Compress } $annotation = ConvertTo-Json $annotation -Compress $annotation = Convert-UnicodeToEscapeHex -JsonString $annotation $accessToken = (az account get-access-token | ConvertFrom-Json).accessToken $headers = @{ "Authorization" = "Bearer $accessToken" "Accept" = "application/json" "Content-Type" = "application/json" } $params = @{ Headers = $headers Method = "Put" Uri = "https://management.azure.com$($aiResourceId)/Annotations?api-version=2015-05-01" Body = $annotation } Invoke-RestMethod @params
Nota:
Para que las anotaciones aparezcan en el portal de Azure, establezca Categoría en Implementación, de lo contrario, no aparecerán.
Llame al script y pase valores para los parámetros. El -releaseProperties parámetro es opcional.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
| Argument | Definición | Nota: |
|---|---|---|
aiResourceId |
Identificador de recurso del recurso de Application Insights de destino. | Ejemplo: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nombre de la nueva anotación de versión. | |
releaseProperties |
Metadatos personalizados que se van a adjuntar a la anotación. | Opcional |
Visualización de anotaciones
Nota:
Las anotaciones de versión no están disponibles en el panel Métricas .
Application Insights muestra anotaciones de versión en las siguientes experiencias:
- Rendimiento y errores
- Uso
- Libros de trabajo (para cualquier visualización de series temporales)
Las anotaciones se visualizan como marcadores en la parte superior de los gráficos.
Para habilitar las anotaciones en un libro, abra Configuración avanzada y, a continuación, seleccione Mostrar anotaciones. Seleccione cualquier marcador de anotación para abrir los detalles de la versión, como el solicitante, la rama de control de código fuente, la canalización de versión y el entorno.
Preguntas más frecuentes
Esta sección proporciona respuestas a preguntas comunes.
Búsqueda de transacciones
¿Qué es un componente?
Los componentes son partes que se pueden implementar independientemente de su aplicación de microservicio o distribuida. Los equipos de operaciones y los desarrolladores pueden ver el código o acceder a la telemetría que generan estos componentes de la aplicación.
- Los componentes son diferentes de las dependencias externas "observadas", por ejemplo, SQL y Event Hubs, a las que el equipo o la organización podrían no tener acceso (código o telemetría).
- Los componentes se ejecutan en cualquier número de instancias de rol, servidor o contenedor.
- Los componentes pueden ser claves de instrumentación de Application Insights independientes, incluso si las suscripciones son diferentes. Los componentes también pueden ser diferentes roles que informan a una única clave de instrumentación de Application Insights. La nueva experiencia muestra los detalles en todos los componentes, independientemente de cómo se configuraron.
¿Cuántos datos se conservan?
Consulte Resumen de límites.
¿Cómo puedo ver los datos POST en mis solicitudes de servidor?
Aunque no registramos los datos POST automáticamente, puede usar TrackTrace o llamadas de registro. Coloque los datos POST en el parámetro de mensaje. No puede filtrar por el mensaje de la misma forma que con las propiedades, pero el límite de tamaño es mayor.
¿Por qué la búsqueda de funciones de Azure no devuelve ningún resultado?
Azure Functions no registra cadenas de consulta de dirección URL.
Diagnósticos de transacciones
¿Por qué veo un único componente en el gráfico y los demás componentes solo se muestran como dependencias externas sin detalles?
Posibles razones:
- ¿Existen otros componentes instrumentados con Application Insights?
- ¿Usa la versión más reciente y estable de SDK de Application Insights?
- Si estos componentes son recursos independientes de Application Insights, valide que tiene acceso. Si tiene acceso y los componentes están instrumentados con los kits de desarrollo de software (SDKs) de Application Insights más recientes, háganoslo saber a través del canal de comentarios en la esquina superior derecha.
Veo filas duplicadas para las dependencias. ¿Se espera este comportamiento?
Actualmente, se está mostrando la llamada de dependencia de salida de forma independiente de la solicitud entrante. Por lo general, las dos llamadas son idénticas y solo difiere el valor de duración debido al recorrido de ida y vuelta de la red. El icono inicial y los distintos estilos de las barras de duración le ayudan a diferenciarlos. ¿Le resulta confusa esta presentación de los datos? Envíenos sus comentarios.
¿Qué ocurre con las desviaciones del reloj en diferentes instancias de componentes?
Las escalas de tiempo se ajustan para los desfases temporales en el gráfico de transacciones. Puede ver las marcas de tiempo exactas en el panel de detalles o con Log Analytics.
¿Por qué en la nueva experiencia faltan la mayoría de las consultas de elementos relacionados?
Este comportamiento es por diseño. Todos los elementos relacionados, en todos los componentes, están disponibles en el lado izquierdo (en las secciones superior e inferior). La nueva experiencia tiene dos elementos relacionados que no se tratan en el lado izquierdo: todos los datos de telemetría de los cinco minutos anteriores y posteriores a este evento y la escala de tiempo del usuario.
¿Hay alguna manera de ver menos eventos por transacción cuando uso el SDK de JavaScript de Application Insights?
La experiencia de diagnóstico de transacciones muestra todos los datos de telemetría en una sola operación que comparte un id. de operación. De forma predeterminada, el SDK de Application Insights crea una operación para cada vista de página única. En una aplicación de página única (SPA), solo se crea un evento de vista de página y se usa un identificador de operación único para todos los datos de telemetría generados. Como resultado, muchos eventos se pueden poner en correlación con la misma operación.
En estos escenarios, puede usar el seguimiento automático de rutas para crear automáticamente nuevas operaciones para la navegación en la aplicación de página única. Debe activar enableAutoRouteTracking para que el sistema cree una vista de página cada vez que se actualice la ruta de dirección URL (se produce una vista de página lógica). Si desea actualizar manualmente el id. de operación, llame a appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId(). Al desencadenar manualmente un evento PageView, también se restablecerá el id. de operación.
¿Por qué las duraciones de detalles de transacción no se suman a la duración de la solicitud superior?
El tiempo que no se explica en el gráfico de Gantt es el tiempo que no está cubierto por una dependencia con seguimiento. Esta incidencia puede producirse porque las llamadas externas no se instrumentaron, ya sea de forma automática o manual. También se puede producir porque el tiempo necesario estaba en proceso, en vez de debido a una llamada externa.
Si se han instrumentado todas las llamadas, la causa principal probable del tiempo empleado es en proceso. Una herramienta útil para diagnosticar el proceso es el .NET Profiler.
¿Qué ocurre si veo el mensaje "Error al recuperar datos" al navegar por Application Insights en Azure Portal?
Este error indica que el explorador no pudo llamar a una API necesaria o que la API devolvió una respuesta de error. Para solucionar problemas del comportamiento, abra una ventana inPrivate del explorador y deshabilite las extensiones del explorador que se ejecutan; después, identifique si todavía puede reproducir el comportamiento del portal. Si el error del portal todavía se produce, pruebe a probar con otros exploradores u otras máquinas, investigue el sistema de nombres de dominio (DNS) u otros problemas relacionados con la red desde el equipo cliente donde se producen errores en las llamadas API. Si el error del portal continúa, realice un seguimiento de red del navegador mientras reproduce el comportamiento inesperado. A continuación, abra un caso de soporte técnico desde Azure Portal.
Pasos siguientes
- Obtenga más información sobre el uso del Mapa de aplicaciones para detectar cuellos de botella de rendimiento y zonas activas de error en todos los componentes de la aplicación.
- Obtenga más información sobre el uso de la vista Disponibilidad para configurar pruebas periódicas para supervisar la disponibilidad y la capacidad de respuesta de la aplicación.
- Aprenda a usar Log Analytics y a escribir consultas complejas para obtener información más detallada de los datos de telemetría.
- Aprenda a enviar registros y telemetría personalizada a Application Insights para una supervisión más completa.
- Para una introducción a la supervisión del tiempo de actividad y la capacidad de respuesta, consulte la descripción general de la disponibilidad.