Live Metrics: supervisión y diagnóstico con 1 segundo de latencia

Supervise una aplicación web ya activa y en producción con la característica Live Metrics (también conocida como QuickPulse) de Application Insights. Puede seleccionar y filtrar las métricas, y los contadores de rendimiento, para verlos en tiempo real, sin que su servicio se vea afectado en modo alguno. También puede inspeccionar los seguimientos de la pila de las solicitudes y excepciones con error de ejemplo. Al usar la característica Live Metrics junto con Profiler y Snapshot Debugger, dispondrá de una herramienta de diagnóstico eficaz y no invasiva para los sitios web activos a su cargo.

Nota

Live Metrics solo admite TLS 1.2. Para más información, consulte Solución de problemas.

El uso de Live Metrics le permitirá realizar las siguientes acciones:

  • Inspeccionar el rendimiento y los recuentos de errores para validar una corrección cuando se publica.
  • Inspeccionar el efecto de las cargas de prueba y diagnosticar problemas en tiempo real.
  • Centrarse en ciertas sesiones de prueba o filtrar problemas conocidos seleccionando las métricas que quiera inspeccionar y filtrándolas.
  • Obtener seguimientos de las excepciones cuando se produzcan.
  • Experimentar con filtros para localizar los indicadores clave de rendimiento más pertinentes.
  • Supervisar cualquier contador de rendimiento de Windows en tiempo real.
  • Identifique fácilmente un servidor con problemas y filtre todos los KPI o fuente directa solo en dicho servidor.

Screenshot that shows the Live Metrics tab.

Actualmente, Live Metrics se admite en aplicaciones de ASP.NET, ASP.NET Core, Azure Functions, Java y Node.js.

Nota:

El número de instancias de servidor supervisadas que muestra Live Metrics puede ser menor que el número real de instancias que se asignaron para ejecutar la aplicación. Esta falta de coincidencia se debe a que muchos servidores web modernos descargarán aplicaciones que no reciben solicitudes durante un período de tiempo para conservar recursos. Los servidores que ya han descargado el proceso no se incluirán en ese total debido a que Live Metrics solo cuenta los servidores que están ejecutando la aplicación actualmente.

Primeros pasos

Importante

Para habilitar Application Insights, asegúrese de que dicha característica esté activada en Azure Portal y que la aplicación use la versión más reciente del paquete NuGet de Application Insights. Sin no se usa el paquete de NuGet, Application Insights recibirá algunos datos de telemetría pero estos no se mostrarán en Live Metrics.

  1. Siga las instrucciones específicas del lenguaje para habilitar Live Metrics:

  2. En Azure Portal, abra el recurso Application Insights para su aplicación. A continuación, abra Live Stream.

  3. Proteja el canal de control si puede que vaya a usar información confidencial como nombres de clientes en los filtros.

Nota:

El 31 de marzo de 2025 finalizará la compatibilidad con la ingesta de claves de instrumentación. La ingesta de claves de instrumentación seguirá funcionando, pero la característica ya no recibirá actualizaciones ni soporte técnico. Transición a las cadenas de conexión para aprovechar las nuevas funcionalidades.

Habilitación de Live Metrics mediante código en cualquier aplicación .NET

Nota:

La característica Live Metrics se habilitará de forma predeterminada si se incorpora mediante las instrucciones recomendadas para aplicaciones .NET.

Para configurar Live Metrics manualmente:

  1. Instale el paquete NuGet Microsoft.ApplicationInsights.PerfCounterCollector.
  2. El siguiente código de aplicación de consola de ejemplo muestra la configuración de Live Metrics:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

// Create a TelemetryConfiguration instance.
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
QuickPulseTelemetryProcessor quickPulseProcessor = null;
config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
    .Use((next) =>
    {
        quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
        return quickPulseProcessor;
    })
    .Build();

var quickPulseModule = new QuickPulseTelemetryModule();

// Secure the control channel.
// This is optional, but recommended.
quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(config);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);

// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to set up Live Metrics.
TelemetryClient client = new TelemetryClient(config);

// This sample runs indefinitely. Replace with actual application logic.
while (true)
{
    // Send dependency and request telemetry.
    // These will be shown in Live Metrics.
    // CPU/Memory Performance counter is also shown
    // automatically without any additional steps.
    client.TrackDependency("My dependency", "target", "http://sample",
        DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
    client.TrackRequest("My Request", DateTimeOffset.Now,
        TimeSpan.FromMilliseconds(230), "200", true);
    Task.Delay(1000).Wait();
}

El ejemplo anterior es para una aplicación de consola, pero se puede usar el mismo código en cualquier aplicación .NET. Si cualquier otro módulo de telemetría se habilita para recopilar automáticamente la telemetría, es importante asegurarse de que la misma configuración que se use para la inicialización de los módulos también se emplee para el módulo de Live Metrics.

¿En qué se diferencia Live Metrics del explorador de métricas y Log Analytics?

Capacidades Live Stream Explorador de métricas y Log Analytics
Latencia Los datos se muestran en un segundo. La agregación se realiza en minutos.
Sin retención Los datos se conservan solo mientras se encuentren en el gráfico y luego se descartan. Los datos se conservan durante 90 días.
A petición Los datos solo se transmiten mientras el panel de Live Metrics está abierto. Se envían datos siempre que el SDK esté instalado y habilitado.
Gratuito Los datos de Live Stream no generan ningún cargo. Están sujetos a la aplicación de precios.
muestreo Se transmiten todas las métricas y los contadores seleccionados. Se muestrean los errores y seguimientos de la pila. Se pueden muestrear eventos.
Canal de control Las señales de control de filtro se envían al SDK. Se recomienda proteger este canal. La comunicación es unidireccional, hacia el portal.

Selección y filtrado de métricas

Estas funcionalidades están disponibles con ASP.NET, ASP.NET Core y Azure Functions (versión 2).

Puede supervisar KPI personalizados en vivo aplicando filtros arbitrarios en cualquier telemetría de Application Insights desde el portal. Seleccione el control de filtro que se muestra cuando coloca el mouse sobre cualquiera de los gráficos. En el siguiente gráfico se traza un KPI de recuento de solicitudes personalizado con filtros en atributos de URL y duración. Valide los filtros con la sección de vista previa de flujo que muestra una fuente activa de telemetría que coincide con los criterios especificados en cualquier momento.

Screenshot that shows the Filter request rate.

Puede supervisar un valor que no sea el de recuento. Las opciones dependen del tipo de secuencia, que podría ser cualquier telemetría de Application Insights, como solicitudes, dependencias, excepciones, seguimientos, eventos o métricas. También puede ser su propia medida personalizada.

Screenshot that shows the Query Builder on Request Rate with a custom metric.

Junto con los datos de telemetría de Application Insights, también puede supervisar cualquier contador de rendimiento de Windows. Selecciónelo en las opciones de secuencia y proporcione el nombre del contador de rendimiento.

Las métricas activas se agregan en dos puntos: localmente en cada servidor y, a continuación, en todos los servidores. Puede cambiar el valor predeterminado en cualquiera de ellos seleccionando otras opciones en las correspondientes listas desplegables.

Telemetría de ejemplo: eventos personalizados de diagnóstico en directo

De forma predeterminada, la fuente directa de eventos muestra ejemplos de solicitudes con error y llamadas de dependencia, excepciones, eventos y seguimientos. Seleccione el icono de filtro para ver los criterios aplicados en cualquier momento.

Screenshot that shows the Filter button.

Como con las métricas, puede especificar cualquier criterio arbitrario en cualquiera de los tipos de telemetría de Application Insights. En este ejemplo, seleccionamos los eventos y errores de solicitud específicos.

Screenshot that shows the Query Builder.

Nota:

Actualmente, para los criterios basados en mensajes de excepción, use el mensaje de excepción más externo. En el ejemplo anterior, para filtrar la excepción benigna con un mensaje de excepción interno (sigue el delimitador "<--") "El cliente desconectado", use un mensaje que no contenga los criterios "Error al leer el contenido de la solicitud".

Para consultar los detalles de un elemento en la fuente directa, selecciónelo. Puede pausar la fuente seleccionando Pausar o desplazándose hacia abajo y seleccionando un elemento. La fuente directa se reanuda una vez que se desplace hacia la parte superior, o bien al seleccionar el contador de elementos recopilados mientras estaba en pausa.

Screenshot that shows the Sample telemetry window with an exception selected and the exception details displayed at the bottom of the window.

Filtrado por instancia de servidor

Si quiere supervisar una instancia de rol de servidor en particular, puede filtrar por servidor. Para usar ese tipo de filtro, seleccione el nombre del servidor en la sección Servidores.

Screenshot that shows the Sampled live failures.

Protección del canal de control

El uso de filtros personalizados de Live Metrics le permitirá controlar qué datos de telemetría de la aplicación se transmiten a la vista Live Metrics de Azure Portal. Los criterios de los filtros se envían a las aplicaciones que se instrumentan con el SDK de Application Insights. Los valores de los filtros podrían contener información confidencial, como el id. de cliente. Para proteger este valor y evitar la posible divulgación a aplicaciones no autorizadas, existen dos opciones:

  • Recomendada: protección del canal de Live Metrics mediante la autenticación de Microsoft Entra.
  • Heredada (ya no recomendada): configuración de un canal autenticado mediante la configuración de una clave de API secreta, tal y como se explica en la sección "Opción heredada".

Nota:

El 30 de septiembre de 2025, se retirarán las claves de API que se usan para transmitir telemetría de Live Metrics a Application Insights. Después de esa fecha, las aplicaciones que usan claves de API no podrán enviar datos de Live Metrics al recurso de Application Insights. La ingesta de telemetría autenticada para la transmisión de Live Metrics a Application Insights deberá realizarse con la autenticación de Microsoft Entra para Application Insights.

Los filtros personalizados se pueden probar sin necesidad de configurar un canal autenticado. Para ello, seleccione cualquiera de los iconos de filtro y autorice a los servidores conectados. Si elige esta opción, tendrá que autorizar los servidores conectados una vez por cada nueva sesión o siempre que un nuevo servidor se conecte.

Advertencia

No recomendamos en absoluto el uso de canales no seguros y deshabilitaremos esta opción seis meses después de que empiece a usarla. En el cuadro de diálogo Autorizar servidores conectados se muestra la fecha después de la cual se deshabilitará esta opción.

Screenshot that shows the Authorize connected servers dialog.

Opción heredada: creación de una clave de API

  1. Seleccione la pestaña Acceso de API y luego seleccione Crear clave de API.

    Screenshot that shows selecting the API Access tab and the Create API key button.

  2. Marque la casilla Autenticar canal de control del SDK y luego seleccione Generar clave.

    Screenshot that shows the Create API key pane. Select Authenticate SDK control channel checkbox and then select Generate key.

Incorporación de una clave de API a la configuración

Puede agregar una clave de API a la configuración de aplicaciones de ASP.NET, ASP.NET Core, WorkerService y Azure Functions.

En el archivo Program.cs, agregue el siguiente espacio de nombres:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

A continuación, agregue el siguiente registro de servicio:

// Existing code which includes services.AddApplicationInsightsTelemetry() to enable Application Insights.
builder.Services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

Para obtener más información sobre cómo configurar las aplicaciones de ASP.NET Core, consulte Configuración de módulos de telemetría en ASP.NET Core.

WorkerService

Para las aplicaciones de WorkerService, siga estas instrucciones.

Agregue el siguiente espacio de nombres:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Después, agregue la siguiente línea antes de la llamada a services.AddApplicationInsightsTelemetryWorkerService:

    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

Para obtener más información sobre cómo configurar las aplicaciones de WorkerService, consulte Configuración de módulos de telemetría en WorkerService.

Aplicaciones de Azure Functions

Para las aplicaciones de Azure Functions (versión 2), puede proteger el canal con una clave de API utilizando una variable de entorno.

Cree una clave de API desde su recurso de Application Insights y vaya a Opciones>Configuración en la aplicación de Azure Functions. Seleccione Nueva configuración de la aplicación y escriba un nombre de APPINSIGHTS_QUICKPULSEAUTHAPIKEY y un valor que corresponda a la clave de API.

Tabla de características compatibles

Idioma Métricas básicas Métricas de rendimiento Filtrado personalizado Telemetría de ejemplo División de CPU por proceso
.NET Framework Compatible (LTS) Compatible (LTS) Compatible (LTS) Compatible (LTS) Compatible (LTS)
.NET Core (destino=.NET Framework) Compatible (LTS) Compatible (LTS) Compatible (LTS) Compatible (LTS) Compatible (LTS)
.NET Core (destino=.NET Core) Compatible (LTS) Admitido* Compatible (LTS) Compatible (LTS) No compatible
Azure Functions v2 Compatible Admitido Admitido Admitido No compatible
Java Se admite (V2.0.0+) Se admite (V2.0.0+) No compatible Compatible (V3.2.0+) No compatible
Node.js Se admite (V1.3.0+) Se admite (V1.3.0+) No compatible Se admite (V1.3.0+) No compatible
Python No compatible No compatible No compatible No compatible No compatible

Las métricas básicas incluyen la tasa de solicitudes, dependencias y excepciones. Las métricas de rendimiento (contadores de rendimiento) incluyen la memoria y la CPU. La telemetría de ejemplo muestra un flujo de información detallada para las solicitudes y dependencias con errores, excepciones, eventos y seguimientos.

La compatibilidad con PerfCounters varía ligeramente en las diversas versiones de .NET Core que no tienen .NET Framework como destino:

  • Las métricas PerfCounters se admiten al ejecutarse en Azure App Service para Windows (versión 2.4.1 o posterior del SDK de ASP.NET Core).
  • Las métricas PerfCounters se admiten cuando la aplicación se ejecuta en cualquier equipo Windows para aplicaciones destinadas a .NET Core LTS o posterior.
  • Los PerfCounters se admiten cuando la aplicación se ejecuta en cualquier lugar (como Linux, Windows, App Service para Linux o contenedores) en las versiones más recientes, pero solo para las aplicaciones que tengan como destino .NET Core LTS o posterior.

Solución de problemas

Live Metrics usa direcciones IP diferentes a las que usan los otros datos de telemetría de Application Insights. Asegúrese de que esas direcciones IP están abiertos en el firewall. Compruebe también que los puertos de salida de Live Metrics estén abiertos en el firewall de los servidores.

Como se describe en el anuncio de migración de Azure TLS 1.2, Live Metrics ahora solo admite TLS 1.2. Si usa una versión anterior de TLS, las métricas en directo no mostrarán ningún dato. Para las aplicaciones basadas en .NET Framework 4.5.1, consulte Habilitación de la seguridad de la capa de transporte (TLS) 1.2 en los clientes: Configuration Manager para admitir la versión más reciente de TLS.

Falta configuración de .NET

  1. Compruebe que usa la versión más reciente del paquete NuGet Microsoft.ApplicationInsights.PerfCounterCollector.

  2. Edite el archivo ApplicationInsights.config:

    • Compruebe que la cadena de conexión apunta al recurso de Application Insights que usa.
    • Busque la opción de configuración QuickPulseTelemetryModule. Si no está, agréguela.
    • Busque la opción de configuración QuickPulseTelemetryProcessor. Si no está, agréguela.
    <TelemetryModules>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryModules>
    
    <TelemetryProcessors>
    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
    QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
    </TelemetryProcessors>
    
  3. Reinicie la aplicación.

Mensaje de estado "Los datos no son accesibles temporalmente"

Al navegar a Live Metrics, es posible que vea un banner con el mensaje de estado: "Los datos no son accesibles temporalmente. Las actualizaciones de nuestro estado se publican aquí https://aka.ms/aistatus "

Siga el vínculo a la página de estado de Azure y compruebe si hay una interrupción de activación que afecta a Application Insights. Compruebe que los firewalls y las extensiones del explorador no bloquean el acceso a Live Metrics si no se produce una interrupción. Por ejemplo, algunas extensiones populares de bloqueo de anuncios bloquean las conexiones a *.monitor.azure.com. Para usar toda la funcionalidad de Live Metrics, deshabilite la extensión de bloqueador de anuncios o agregue una regla de exclusión para el dominio *.livediagnostics.monitor.azure.com al bloqueador de anuncios, el firewall, etc.

Un gran número inesperado de solicitudes para livediagnostics.monitor.azure.com

Los SDK de Application Insights utilizan una API de REST para comunicarse con los puntos de conexión de QuickPulse, que proporcionan métricas en directo para su aplicación web. De forma predeterminada, los SDK sondean los puntos de conexión una vez cada cinco segundos para comprobar si está viendo el panel Métricas en directo en el Azure Portal.

Si abre el panel Métricas en directo, los SDK cambian a un modo de mayor frecuencia y envían nuevas métricas a QuickPulse cada segundo. Esto le permite supervisar y diagnosticar su aplicación en directo con una latencia de 1 segundo, pero también genera más tráfico de red. Para restablecer el flujo normal de tráfico, desplácese fuera del panel de métricas en directo.

Nota:

Las llamadas a la API de REST realizadas por los SDK a los puntos finales de QuickPulse no son rastreadas por Application Insights y no afectan a sus llamadas de dependencia ni a otras métricas. Sin embargo, es posible que las vea en otras herramientas de supervisión de red.

Pasos siguientes