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

Application Insights basado en áreas de trabajo se integra con Azure Monitor y Log Analytics para mejorar las funcionalidades:

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

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

Captura de pantalla que muestra un recurso de Application Insights basado en áreas de trabajo.

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.

Captura de pantalla que muestra un nombre de área de trabajo.

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

@description('Name of Application Insights resource.')
param name string

@description('Type of app you are deploying. This field is for legacy reasons and will not impact the type of App Insights resource you deploy.')
param type string

@description('Which Azure Region to deploy the resource to. This must be a valid Azure regionId.')
param regionId string

@description('See documentation on tags: https://learn.microsoft.com/azure/azure-resource-manager/management/tag-resources.')
param tagsArray object

@description('Source of Azure Resource Manager deployment')
param requestSource string

@description('Log Analytics workspace ID to associate with your Application Insights resource.')
param workspaceResourceId string

resource component 'Microsoft.Insights/components@2020-02-02' = {
  name: name
  location: regionId
  tags: tagsArray
  kind: 'other'
  properties: {
    Application_Type: type
    Flow_Type: 'Bluefield'
    Request_Source: requestSource
    WorkspaceResourceId: workspaceResourceId
  }
}

Archivo de parámetros

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "name": {
      "value": "my_workspace_based_resource"
    },
    "type": {
      "value": "web"
    },
    "regionId": {
      "value": "westus2"
    },
    "tagsArray": {
      "value": {}
    },
    "requestSource": {
      "value": "CustomDeployment"
    },
    "workspaceResourceId": {
      "value": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testxxxx/providers/microsoft.operationalinsights/workspaces/testworkspace"
    }
  }
}

Modificación del área de trabajo asociada

Una vez creado un recurso de Application Insights basado en áreas de trabajo, modifique 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 el recurso en Azure Portal con el fin de ver y analizar la telemetría recopilada de la aplicación. Una cadena de conexión identifica el recurso. 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 para:

  • Secuenciar la administración de DevOps/ITOps para las aplicaciones implementadas en conjunto, normalmente desarrolladas y administradas por el mismo equipo.
  • Centralizar indicadores clave de rendimiento, como los tiempos de respuesta y las tasas de error, en un panel de forma predeterminada. Segmente por nombre de rol en el explorador de métricas si fuera necesario.
  • Cuando no sea necesario administrar el control de acceso basado en roles de Azure diferente entre los componentes de la aplicación.
  • Cuando haya suficientes criterios de alerta de métricas idénticos, exportaciones continuas y administración de facturación/cuotas entre componentes.
  • Cuando sea aceptable que una clave de API acceda a los datos de todos los componentes de forma equitativa y 10 claves de API satisfagan las necesidades de todos los componentes.
  • Cuando la misma configuración de integración de elementos de trabajo y detección inteligente sea adecuada 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

Para activar experiencias del portal, agregue código personalizado para asignar valores significativos al atributo Cloud_RoleName. Sin estos valores, las características del portal no funcionarán.

En el caso de las aplicaciones de Azure Service Fabric y los servicios en la nube clásicos, el SDK configura automáticamente los servicios mediante la lectura del entorno de roles de Azure. Para otros tipos de aplicaciones, normalmente es necesario establecerlo explícitamente.

Live Metrics no puede dividir los datos 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.

Se necesitan las cadenas de conexión de todos los recursos a los que la aplicación envía 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.

Microsoft Build Engine genera exclusivamente el número de versión de compilación, no la compilación del desarrollador desde 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 transferencia de recursos existentes de Application Insights entre regiones y no se pueden migrar datos históricos a una nueva región. La solución alternativa implica:

  • Crear un recurso de Application Insights basado en áreas de trabajo en la región deseada.
  • Volver a crear las personalizaciones únicas del recurso original en el nuevo.
  • Actualizar la aplicación con la cadena de conexión del recurso de la nueva región.
  • Probar para asegurarse de que todo funcione según lo previsto con el nuevo recurso de Application Insights.
  • Decida conservar o eliminar el recurso original de Application Insights. Eliminar un recurso clásico significa perder todos los datos históricos. Si el recurso estuviera basado en el área de trabajo, los datos permanecerán en Log Analytics, permitiendo el acceso a datos históricos hasta que expire el período de retención.

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.

¿Puedo usar providers('Microsoft.Insights', 'components').apiVersions[0] en mis implementaciones de Azure Resource Manager?

No recomendamos usar este método para rellenar la versión de la API. La versión más reciente puede representar versiones preliminares, que podrían contener cambios importantes. Incluso con versiones no preliminares más recientes, las versiones de api no siempre son compatibles con versiones anteriores con las plantillas existentes. En algunos casos, es posible que la versión de la API no esté disponible para todas las suscripciones.

Pasos siguientes