Recursos de Application Insights basados en áreas de trabajo

Los recursos basados en áreas de trabajo de Application Insights de Azure Monitor integran Application Insights y Log Analytics.

Con los recursos basados en áreas de trabajo, Application Insights envía la telemetría a un área de trabajo común de Log Analytics, lo que proporciona acceso completo a todas las características de Log Analytics a la vez que se mantienen los registros de aplicación, infraestructura y plataforma en una única ubicación consolidada. Esta integración permite el control de acceso basado en roles de Azure común en los recursos y elimina la necesidad de consultas entre aplicaciones y áreas de trabajo.

Nota

La ingesta de datos y la retención de recursos de Application Insights basados en área de trabajo se facturan por medio del área de trabajo de Log Analytics en la que se encuentran los datos. Para más información sobre la facturación de los recursos de Application Insights basados en áreas de trabajo, consulte Detalles de los precios de los registros de Azure Monitor.

Funcionalidades nuevas

Con Application Insights basado en áreas de trabajo puede sacar el máximo partido a las capacidades más recientes de Azure Monitor y Log Analytics. Por ejemplo:

Creación de un recurso basado en áreas de trabajo

Inicie sesión en Azure Portal y cree un recurso de Application Insights:

Screenshot that shows a workspace-based Application Insights resource.

Si aún no tiene un área de trabajo de Log Analytics, consulte la documentación de creación de áreas de trabajo de Log Analytics.

Los recursos basados en el área de trabajo están disponibles actualmente en todas las regiones comerciales y en Azure Government. Tener Application Insights y Log Analytics en dos regiones diferentes puede afectar a la latencia y reducir la confiabilidad general de la solución de supervisión.

Después de crear el recurso, verá la información correspondiente del área de trabajo en el panel Información general.

Screenshot that shows a workspace name.

Seleccione el texto del vínculo azul para ir al área de trabajo de Log Analytics asociada, donde puede aprovechar el nuevo entorno de consultas unificado del área de trabajo.

Nota:

Le ofrecemos compatibilidad total con versiones anteriores para las consultas de recursos clásicos de Application Insights, libros y alertas basadas en registros. Para consultar o ver la nueva estructura o esquema de tablas basada en áreas de trabajo, primero debe ir al área de trabajo de Log Analytics. Seleccione Registros (Analytics) en los paneles de Application Insights para acceder a la experiencia de consulta clásica de Application Insights.

Copiar la cadena de conexión

La cadena de conexión identifica el recurso con el que se quieren asociar los datos de telemetría. También puede usarla para modificar los puntos de conexión que utiliza el recurso como destino de la telemetría. Debe copiar la cadena de conexión y agregarla al código de la aplicación o a una variable de entorno.

Configuración de la supervisión

Después de crear un recurso de Application Insights basado en áreas de trabajo, configure la supervisión.

Supervisión de aplicaciones basada en código

En la supervisión de aplicaciones basada en código, instale el SDK adecuado de Application Insights y apunte la cadena de conexión al recurso creado recientemente.

Para más información sobre cómo configurar un SDK de Application Insights para la supervisión basada en código, consulte la siguiente documentación específica para el lenguaje o plataforma:

Supervisión sin código y creación de recursos de Visual Studio

Para la supervisión sin código de servicios como Azure Functions y Azure App Services, primero debe crear su recurso de Application Insights basado en áreas de trabajo. A continuación, apunte a ese recurso al configurar la supervisión.

Estos servicios ofrecen la opción de crear un nuevo recurso de Application Insights dentro de su propio proceso de creación de recursos. Pero los recursos creados a través de estas opciones de interfaz de usuario están actualmente restringidos a la experiencia clásica de Application Insights.

La misma restricción se aplica a la experiencia de creación de recursos de Application Insights en Visual Studio para ASP.NET y ASP.NET Core. Debe seleccionar un recurso existente basado en áreas de trabajo en la interfaz de usuario de Visual Studio para habilitar la supervisión. Si selecciona Crear nuevo recurso en Visual Studio, solo podrá crear un recurso de Application Insights clásico.

Creación de un recurso de forma automática

Azure CLI

Para acceder a los comandos de la CLI de Azure de Application Insights en versión preliminar, primero debe ejecutar:

 az extension add -n application-insights

Si no ejecuta el comando az extension add, verá un mensaje de error que indica az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.

Ahora puede ejecutar el siguiente código para crear el recurso de Application Insights:

az monitor app-insights component create --app
                                         --location
                                         --resource-group
                                         [--application-type]
                                         [--ingestion-access {Disabled, Enabled}]
                                         [--kind]
                                         [--only-show-errors]
                                         [--query-access {Disabled, Enabled}]
                                         [--tags]
                                         [--workspace]

Ejemplo

az monitor app-insights component create --app demoApp --location eastus --kind web -g my_resource_group --workspace "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

Para obtener la documentación completa de la CLI de Azure para este comando, consulte la documentación de la CLI de Azure.

Azure PowerShell

Cree un recurso nuevo de Application Insights basado en área de trabajo.

New-AzApplicationInsights -Name <String> -ResourceGroupName <String> -Location <String> -WorkspaceResourceId <String>
   [-SubscriptionId <String>]
   [-ApplicationType <ApplicationType>]
   [-DisableIPMasking]
   [-DisableLocalAuth]
   [-Etag <String>]
   [-FlowType <FlowType>]
   [-ForceCustomerStorageForProfiler]
   [-HockeyAppId <String>]
   [-ImmediatePurgeDataOn30Day]
   [-IngestionMode <IngestionMode>]
   [-Kind <String>]
   [-PublicNetworkAccessForIngestion <PublicNetworkAccessType>]
   [-PublicNetworkAccessForQuery <PublicNetworkAccessType>]
   [-RequestSource <RequestSource>]
   [-RetentionInDays <Int32>]
   [-SamplingPercentage <Double>]
   [-Tag <Hashtable>]
   [-DefaultProfile <PSObject>]
   [-Confirm]
   [-WhatIf]
   [<CommonParameters>]

Ejemplo

New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location eastus -WorkspaceResourceId "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

A fin de consultar la documentación completa de PowerShell para este cmdlet y obtener información sobre cómo recuperar la cadena de conexión, consulte la documentación de Azure PowerShell.

Plantillas del Administrador de recursos de Azure

Para crear un recurso basado en áreas de trabajo, use las plantillas de Azure Resource Manager siguientes e impleméntelas con PowerShell.

Archivo de plantilla

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string"
        },
        "regionId": {
            "type": "string"
        },
        "tagsArray": {
            "type": "object"
        },
        "requestSource": {
            "type": "string"
        },
        "workspaceResourceId": {
            "type": "string"
        }
    },
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "microsoft.insights/components",
            "location": "[parameters('regionId')]",
            "tags": "[parameters('tagsArray')]",
            "apiVersion": "2020-02-02-preview",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Application_Type": "[parameters('type')]",
                "Flow_Type": "Bluefield",
                "Request_Source": "[parameters('requestSource')]",
                "WorkspaceResourceId": "[parameters('workspaceResourceId')]"
            }
        }
    ]
}

Nota:

Para más información sobre las propiedades de los recursos, consulte Valores de propiedad. Flow_Type y Request_Source no se usan, pero se incluyen en este ejemplo por motivos de integridad.

Archivo de parámetros

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "type": {
            "value": "web"
        },
        "name": {
            "value": "customresourcename"
        },
        "regionId": {
            "value": "eastus"
        },
        "tagsArray": {
            "value": {}
        },
        "requestSource": {
            "value": "Custom"
        },
        "workspaceResourceId": {
            "value": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my_resource_group/providers/microsoft.operationalinsights/workspaces/myworkspacename"
        }
    }
}

Modificación del área de trabajo asociada

Una vez creado un recurso de Application Insights basado en áreas de trabajo, puede modificar el área de trabajo de Log Analytics asociada.

En el panel del recurso de Application Insights, seleccione Propiedades>Cambiar el área de trabajo>Áreas de trabajo de Log Analytics.

Exportación de telemetría

La funcionalidad de exportación continua heredada no es compatible con los recursos basados en área de trabajo. En su lugar, seleccione Configuración de diagnóstico>Agregar configuración de diagnóstico en el recurso de Application Insights. Puede seleccionar todas las tablas, o un subconjunto de tablas, para archivar en una cuenta de almacenamiento. También puede transmitir a un centro de eventos de Azure.

Nota:

La exportación de la configuración de diagnóstico puede aumentar los costos. Para más información, consulte Exportación de telemetría desde Application Insights. Para más información sobre los precios de esta característica, consulte la página de precios de Azure Monitor. Antes del inicio de la facturación, se enviarán las notificaciones. Si decide seguir usando la exportación de la telemetría después del período de aviso, se le facturará según la tarifa aplicable.

¿Cuántos recursos de Application Insights se deben implementar?

Cuando esté desarrollando la próxima versión de una aplicación web, no querrá mezclar la telemetría de Application Insights de la nueva versión con la que ya se ha publicado.

Para evitar confusiones, envíe la telemetría de las distintas fases de desarrollo a recursos de Application Insights distintos con cadenas de conexión independientes.

Si el sistema es una instancia de Azure Cloud Services, hay otro método para establecer cadenas de conexión independientes.

Acerca de los recursos y las cadenas de conexión

Al configurar la supervisión de Application Insights para su aplicación web, se crea un recurso de Application Insights en Azure. Abra este recurso en Azure Portal con el fin de ver y analizar la telemetría recopilada de la aplicación. El recurso se identifica mediante una cadena de conexión. Al instalar el paquete de Application Insights para supervisar la aplicación, se configura con la cadena de conexión para que sepa dónde enviar la telemetría.

Cada recurso de Application Insights incluye métricas disponibles de serie. En caso de que componentes independientes notifiquen al mismo recurso de Application Insights, puede que no tenga sentido alertar acerca de estas métricas.

Cuándo usar un único recurso de Application Insights

Use un único recurso de Application Insights en los casos siguientes:

  • En componentes de aplicaciones que se han implementado juntos. Estas aplicaciones suele desarrollarlas un solo equipo y las administra el mismo conjunto de usuarios de DevOps/ITOps.
  • Si tiene sentido agregar indicadores clave de rendimiento, como duraciones de respuesta o tasas de errores en un panel, en todos ellos de manera predeterminada. Puede optar por segmentar por nombre de rol en el explorador de métricas.
  • Si no hay necesidad de administrar el control de acceso basado en rol de Azure de manera diferente entre los componentes de aplicaciones.
  • Si no necesita criterios de alerta de métricas que sean diferentes de unos componentes a otros.
  • Si no necesita administrar las exportaciones continuas de forma distinta entre los componentes.
  • Si no necesita administrar facturaciones o cuotas de forma distinta entre los componentes.
  • Si es correcto tener una clave de API con el mismo acceso a los datos desde todos los componentes. Diez claves de API son suficientes para las necesidades en todos ellos.
  • Si es correcto tener la misma detección inteligente y la misma configuración de integración de elementos de trabajo en todos los roles.

Nota:

Si desea consolidar varios recursos de Application Insights, puede apuntar los componentes de aplicación existentes a un nuevo recurso de Application Insights consolidado. La telemetría almacenada en el recurso anterior no se transferirá al nuevo recurso. Únicamente elimine el recurso anterior cuando tenga suficientes datos de telemetría en el nuevo recurso para la continuidad empresarial.

Otras consideraciones

Tenga en cuenta que:

  • Es posible que tenga que agregar código personalizado para asegurarse de que se establezcan valores significativos en el atributo Cloud_RoleName. Sin valores significativos establecidos para este atributo, ninguna de las experiencias del portal va a funcionar.
  • En el caso de los servicios en la nube clásicos y las aplicaciones de Service Fabric de Azure, el SDK lee automáticamente del entorno de roles de Azure y establece estos servicios. En todos los demás tipos de aplicaciones, es probable que tenga que establecer esto de forma explícita.
  • Live Metrics no admite la división por nombre de rol.

Creación de más recursos de Application Insights

Para crear recursos en Application Insights, consulte Creación de recursos en Application Insights.

Advertencia

Si su recurso de Application Insights supervisa un recurso Azure (es decir, un productor de telemetría) que se encuentra en una región diferente, puede incurrir en costos de red adicionales. Los costos variarán en función de la región de la que proceda la telemetría y hacia dónde se dirija. Consulte los precios del ancho de banda de Azure para obtener más información.

Obtención de la cadena de conexión

La cadena de conexión identifica el recurso que ha creado.

Necesita las cadenas de conexión de todos los recursos a los que la aplicación enviará datos.

Filtrado por el número de compilación

Cuando se publica una nueva versión de la aplicación, querrá poder separar la telemetría en las diferentes versiones.

Puede establecer la propiedad de versión de la aplicación para filtrar los resultados de la búsqueda y del explorador de métricas.

Hay diferentes métodos de establecer la propiedad de versión de la aplicación.

  • Establezca directamente:

    telemetryClient.Context.Component.Version = typeof(MyProject.MyClass).Assembly.GetName().Version;

  • Ajuste esa línea en un inicializador de telemetría para asegurarse de que todas las instancias de TelemetryClient se establecen de forma coherente.

  • ASP.NET: establezca la versión en BuildInfo.config. El módulo web toma la versión del nodo BuildLabel. Incluya este archivo en el proyecto y recuerde que debe establecer la propiedad Copiar siempre en el Explorador de soluciones.

    <?xml version="1.0" encoding="utf-8"?>
    <DeploymentEvent xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/VisualStudio/DeploymentEvent/2013/06">
      <ProjectName>AppVersionExpt</ProjectName>
      <Build type="MSBuild">
        <MSBuild>
          <BuildLabel kind="label">1.0.0.2</BuildLabel>
        </MSBuild>
      </Build>
    </DeploymentEvent>
    
    
  • ASP.NET: genere BuildInfo.config automáticamente en Microsoft Build Engine. Agregue unas líneas a su archivo .csproj:

    <PropertyGroup>
      <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>    <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
    </PropertyGroup>
    

    Este paso genera un archivo denominado suNombreProyecto.BuildInfo.config. El proceso de publicación cambia su nombre a BuildInfo.config.

    La etiqueta de compilación contiene un marcador de posición (AutoGen_...) al compilar con Visual Studio. Pero cuando se compila con Microsoft Build Engine, se rellena con el número de versión correcto.

    Para permitir que Microsoft Build Engine genere números de versión, establezca la versión como 1.0.* en AssemblyReference.cs.

Versión y seguimiento de versiones

Para realizar un seguimiento de la versión de la aplicación, asegúrese de el proceso de Microsoft Build Engine genera buildinfo.config. En el archivo .csproj, agregue lo siguiente:

<PropertyGroup>
  <GenerateBuildInfoConfigFile>true</GenerateBuildInfoConfigFile>
  <IncludeServerNameInBuildInfo>true</IncludeServerNameInBuildInfo>
</PropertyGroup>

Cuando el módulo web de Application Insights tenga la información de la compilación, agregará automáticamente la versión de la aplicación como una propiedad a cada elemento de telemetría. Por este motivo, puede filtrar por versión al realizar búsquedas de diagnósticos o al explorar métricas.

El número de versión de la compilación solo lo genera Microsoft Build Engine, no la compilación de desarrollador de Visual Studio.

Anotaciones de la versión

Si usa Azure DevOps, puede obtener un marcador de anotación agregado a los gráficos, siempre que publique una nueva versión.

Preguntas más frecuentes

Esta sección proporciona respuestas a preguntas comunes.

¿Cómo se mueven los recursos de Application Insights a una nueva región?

No se admite la migración de recursos de Application Insights existentes de una región a otra. Los datos históricos que ha recopilado no se pueden migrar a una nueva región. La única solución alternativa parcial es:

  1. Cree un recurso de Application Insights basado en área de trabajo en la nueva región.
  2. Vuelva a crear todas las personalizaciones únicas específicas del recurso original en el nuevo recurso.
  3. Modifique la aplicación para que use la cadena de conexión del recurso de la nueva región.
  4. Pruebe a confirmar que todo sigue funcionando según lo previsto con el nuevo recurso de Application Insights.
  5. En este momento, puede conservar o eliminar el recurso original de Application Insights. Si elimina un recurso de Application Insights clásico, se perderán todos los datos históricos. Si el recurso original estaba basado en el área de trabajo, sus datos permanecen en Log Analytics. Mantener el recurso original de Application Insights le permite acceder a sus datos históricos hasta que se agote la configuración de retención de datos.

Las personalizaciones únicas que normalmente deben volver a crearse o actualizarse manualmente para el recurso en la nueva región incluyen, entre otras, las siguientes:

  • Vuelva a crear libros y paneles personalizados.
  • Vuelva a crear o actualizar el ámbito de cualquier alerta de registro/métrica personalizada.
  • Vuelva a crear una alerta de disponibilidad.
  • Vuelva a crear las opciones de configuración de control de acceso basado en rol de Azure personalizadas necesarias para que los usuarios puedan acceder al nuevo recurso.
  • Replique la configuración que implique el muestreo de ingesta, la retención de datos, el límite diario y la habilitación de métricas personalizadas. Estas opciones de configuración se controlan mediante el panel Uso y costos estimados.
  • Cualquier integración que se base en claves de API como anotaciones de versión y canal de control seguro de métricas en directo. Debe generar nuevas claves de API y actualizar la integración asociada.
  • La exportación continua en los recursos clásicos han de volver a configurarse.
  • La configuración de diagnóstico en los recursos basados en el área de trabajo ha de volver a definirse.

Nota:

Si el recurso que está creando en una nueva región está sustituyendo un recurso clásico, le recomendamos explorar las ventajas de crear un recurso basado en el área de trabajo. Como alternativa, migre el recurso existente a basado en el área de trabajo.

Pasos siguientes