Partilhar via


Recursos do Application Insights baseados na área de trabalho

Os recursos baseados no espaço de trabalho do Azure Monitor Application Insights integram o Application Insights e o Log Analytics.

Com recursos baseados em espaço de trabalho, o Application Insights envia telemetria para um espaço de trabalho comum do Log Analytics, fornecendo acesso total a todos os recursos do Log Analytics enquanto mantém seus logs de aplicativo, infraestrutura e plataforma em um único local consolidado. Essa integração permite um controle de acesso comum baseado em função do Azure em todos os seus recursos e elimina a necessidade de consultas entre aplicativos/espaços de trabalho.

Nota

A ingestão e retenção de dados para recursos do Application Insights baseados em espaço de trabalho são cobradas por meio do espaço de trabalho do Log Analytics onde os dados estão localizados. Para saber mais sobre a cobrança de recursos do Application Insights baseados em espaço de trabalho, consulte Detalhes de preços do Azure Monitor Logs.

Novas capacidades

O Application Insights baseado em espaço de trabalho integra-se ao Azure Monitor e ao Log Analytics para aprimorar os recursos:

Criar um recurso baseado em espaço de trabalho

Entre no portal do Azure e crie um recurso do Application Insights.

Captura de tela que mostra um recurso do Application Insights baseado em espaço de trabalho.

Se você não tiver um espaço de trabalho existente do Log Analytics, consulte a documentação de criação do espaço de trabalho do Log Analytics.

Os recursos baseados em espaço de trabalho estão atualmente disponíveis em todas as regiões comerciais e no Azure Government. Ter o Application Insights e o Log Analytics em duas regiões diferentes pode afetar a latência e reduzir a confiabilidade geral da solução de monitoramento.

Depois de criar o recurso, você verá as informações correspondentes do espaço de trabalho no painel Visão geral .

Captura de ecrã que mostra o nome de uma área de trabalho.

Selecione o texto do link azul para ir para o espaço de trabalho associado do Log Analytics, onde você pode aproveitar o novo ambiente de consulta do espaço de trabalho unificado.

Nota

Ainda fornecemos total compatibilidade com versões anteriores para suas consultas de recursos clássicos, pastas de trabalho e alertas baseados em log do Application Insights. Para consultar ou exibir a nova estrutura ou esquema de tabela baseado em espaço de trabalho, você deve primeiro ir para o espaço de trabalho do Log Analytics. Selecione Logs (Analytics) nos painéis do Application Insights para acessar a experiência de consulta clássica do Application Insights.

Copiar a cadeia de ligação

A cadeia de conexão identifica o recurso ao qual você deseja associar seus dados de telemetria. Você também pode usá-lo para modificar os pontos de extremidade que seu recurso usa como destino para sua telemetria. Você deve copiar a cadeia de conexão e adicioná-la ao código do seu aplicativo ou a uma variável de ambiente.

Configurar a monitorização

Depois de criar um recurso do Application Insights baseado em espaço de trabalho, você configura o monitoramento.

Monitoramento de aplicativos baseado em código

Para monitoramento de aplicativos baseado em código, instale o SDK apropriado do Application Insights e aponte a cadeia de conexão para o recurso recém-criado.

Para obter informações sobre como configurar um SDK do Application Insights para monitoramento baseado em código, consulte a seguinte documentação específica para a linguagem ou estrutura:

Monitorização sem código

Para monitoramento sem código de serviços como o Azure Functions e os Serviços de Aplicativo do Azure, você pode primeiro criar seu recurso do Application Insights baseado em espaço de trabalho. Em seguida, você aponta para esse recurso ao configurar o monitoramento. Como alternativa, você pode criar um novo recurso do Application Insights como parte da ativação do Application Insights.

Criar um recurso automaticamente

CLI do Azure

Para acessar os comandos da CLI do Azure do Application Insights, primeiro você precisa executar:

 az extension add -n application-insights

Se você não executar o az extension add comando, verá uma mensagem de erro informando az : ERROR: az monitor: 'app-insights' is not in the 'az monitor' command group. See 'az monitor --help'.

Agora você pode executar o seguinte código para criar seu recurso do 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]

Exemplo

az monitor app-insights component create --app demoApp --location eastus --kind web -g my_resource_group --workspace "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

Para obter a documentação completa da CLI do Azure para este comando, consulte a documentação da CLI do Azure.

Azure PowerShell

Crie um novo recurso do Application Insights baseado em espaço de trabalho.

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>]

Exemplo

New-AzApplicationInsights -Kind java -ResourceGroupName testgroup -Name test1027 -location eastus -WorkspaceResourceId "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/test1234/providers/microsoft.operationalinsights/workspaces/test1234555"

Para obter a documentação completa do PowerShell para este cmdlet e saber como recuperar a cadeia de conexão, consulte a documentação do Azure PowerShell.

Modelos do Azure Resource Manager

@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
  }
}

Arquivo 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"
    }
  }
}

Modificar o espaço de trabalho associado

Depois de criar um recurso do Application Insights baseado em espaço de trabalho, você pode modificar o espaço de trabalho associado do Log Analytics.

No painel de recursos do Application Insights, selecione Propriedades>Change Workspace>Log Analytics Workspaces.

Exportar telemetria

A funcionalidade de exportação contínua herdada não é suportada para recursos baseados em espaço de trabalho. Em vez disso, selecione Configurações de diagnóstico>Adicionar configuração de diagnóstico no recurso do Application Insights. Você pode selecionar todas as tabelas, ou um subconjunto de tabelas, para arquivar em uma conta de armazenamento. Você também pode transmitir para um hub de eventos do Azure.

Nota

A exportação de definições de diagnóstico pode aumentar os custos. Para obter mais informações, consulte Exportar telemetria do Application Insights. Para obter informações sobre preços para esse recurso, consulte a página de preços do Azure Monitor. Antes do início da faturação, serão enviadas notificações. Se continuar a utilizar a exportação de telemetria após o período de pré-aviso, ser-lhe-á cobrada a taxa aplicável.

Quantos recursos do Application Insights devo implantar?

Ao desenvolver a próxima versão de um aplicativo Web, você não deseja misturar a telemetria do Application Insights da nova versão com a versão já lançada.

Para evitar confusão, envie a telemetria de diferentes estágios de desenvolvimento para recursos separados do Application Insights com cadeias de conexão separadas.

Se o seu sistema for uma instância dos Serviços de Nuvem do Azure, há outro método de definir cadeias de conexão separadas.

Sobre recursos e cadeias de conexão

Ao configurar o monitoramento do Application Insights para seu aplicativo Web, você cria um recurso do Application Insights no Azure. Abra o recurso no portal do Azure para ver e analisar a telemetria coletada do seu aplicativo. Uma cadeia de conexão identifica o recurso. Ao instalar o pacote do Application Insights para monitorar seu aplicativo, você o configura com a cadeia de conexão para que ele saiba para onde enviar a telemetria.

Cada recurso do Application Insights vem com métricas que estão disponíveis prontamente. Se componentes separados relatarem para o mesmo recurso do Application Insights, talvez não faça sentido alertar sobre essas métricas.

Quando usar um único recurso do Application Insights

Use um único recurso do Application Insights para:

  • Simplificando o gerenciamento de DevOps/ITOps para aplicativos implantados juntos, normalmente desenvolvidos e gerenciados pela mesma equipe.
  • Centralização de indicadores-chave de desempenho, como tempos de resposta e taxas de falha, em um painel por padrão. Segmente por nome de função no explorador de métricas, se necessário.
  • Quando não há necessidade de gerenciamento de controle de acesso baseado em função diferente do Azure entre componentes do aplicativo.
  • Quando métricas idênticas alertam critérios, exportações contínuas e gerenciamento de faturamento/cotas entre componentes são suficientes.
  • Quando é aceitável que uma chave de API acesse dados de todos os componentes igualmente, e 10 chaves de API atendem às necessidades em todos os componentes.
  • Quando as mesmas configurações inteligentes de deteção e integração de itens de trabalho são adequadas para todas as funções.

Nota

Se quiser consolidar vários recursos do Application Insights, você pode apontar seus componentes de aplicativo existentes para um novo recurso consolidado do Application Insights. A telemetria armazenada no recurso antigo não será transferida para o novo recurso. Somente exclua o recurso antigo quando tiver telemetria suficiente no novo recurso para continuidade de negócios.

Outras considerações

Para ativar experiências no portal, adicione código personalizado para atribuir valores significativos ao atributo Cloud_RoleName . Sem esses valores, os recursos do portal não funcionam.

Para aplicativos do Azure Service Fabric e serviços de nuvem clássicos, o SDK configura automaticamente os serviços lendo o Ambiente de Função do Azure. Para outros tipos de aplicativos, normalmente você precisa defini-lo explicitamente.

O Live Metrics não pode dividir dados por nome de função.

Crie mais recursos do Application Insights

Para criar um recurso do Applications Insights, consulte Criar um recurso do Application Insights.

Aviso

Você pode incorrer em custos de rede adicionais se seu recurso do Application Insights estiver monitorando um recurso do Azure (ou seja, produtor de telemetria) em uma região diferente. Os custos variam consoante a região de onde vem a telemetria e para onde vai. Consulte Preços de largura de banda do Azure para obter detalhes.

Obter a cadeia de ligação

A cadeia de conexão identifica o recurso que você criou.

Você precisa das cadeias de conexão de todos os recursos para os quais seu aplicativo envia dados.

Filtrar o número de compilação

Ao publicar uma nova versão do seu aplicativo, você deseja poder separar a telemetria de compilações diferentes.

Você pode definir a propriedade Versão do Aplicativo para filtrar os resultados da pesquisa e do explorador de métricas.

Existem vários métodos diferentes de definir a propriedade Application Version .

  • Definir diretamente:

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

  • Envolva essa linha em um inicializador de telemetria para garantir que todas as TelemetryClient instâncias sejam definidas de forma consistente.

  • ASP.NET: Defina a versão em BuildInfo.config. O módulo da Web pega a versão do BuildLabel nó. Inclua esse arquivo em seu projeto e lembre-se de definir a propriedade Copy Always no Gerenciador de Soluções.

    <?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: Gere BuildInfo.config automaticamente no Microsoft Build Engine. Adicione algumas linhas ao seu .csproj ficheiro:

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

    Esta etapa gera um arquivo chamado yourProjectName.BuildInfo.config. O processo Publicar renomeia-o para BuildInfo.config.

    O rótulo de compilação contém um espaço reservado (*AutoGen_...*) quando você cria com o Visual Studio. Mas quando construído com o Microsoft Build Engine, ele é preenchido com o número de versão correto.

    Para permitir que o Microsoft Build Engine gere números de versão, defina a versão como 1.0.* em AssemblyReference.cs.

Versão e controlo de versão

Para controlar a versão do aplicativo, verifique se o processo do Microsoft Build Engine gera buildinfo.configo . No seu .csproj ficheiro, adicione:

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

Quando o módulo da Web do Application Insights tem as informações de compilação, ele adiciona automaticamente a Versão do Aplicativo como uma propriedade a cada item de telemetria. Por esse motivo, você pode filtrar por versão ao realizar pesquisas de diagnóstico ou ao explorar métricas.

O Microsoft Build Engine gera exclusivamente o número da versão de compilação, não a compilação do desenvolvedor do Visual Studio.

Anotações da versão

Se você usar o Azure DevOps, poderá obter um marcador de anotação adicionado aos seus gráficos sempre que lançar uma nova versão.

Perguntas mais frequentes

Esta secção fornece respostas a perguntas comuns.

Como mover um recurso do Application Insights para uma nova região?

Não há suporte para a transferência de recursos existentes do Application Insights entre regiões e não é possível migrar dados históricos para uma nova região. A solução alternativa envolve:

  • Criação de um novo recurso do Application Insights baseado em espaço de trabalho na região desejada.
  • Recriando quaisquer personalizações exclusivas do recurso original no novo.
  • Atualizando seu aplicativo com a cadeia de conexão do novo recurso de região.
  • Testes para garantir que tudo funcione conforme o esperado com o novo recurso do Application Insights.
  • Decida manter ou excluir o recurso original do Application Insights. Excluir um recurso clássico significa perder todos os dados históricos. Se o recurso for baseado em espaço de trabalho, os dados permanecerão no Log Analytics, permitindo o acesso aos dados históricos até que o período de retenção expire.

As personalizações exclusivas que normalmente precisam ser recriadas ou atualizadas manualmente para o recurso na nova região incluem, mas não estão limitadas a:

  • Recrie painéis e pastas de trabalho personalizados.
  • Recrie ou atualize o escopo de quaisquer alertas de log/métrica personalizados.
  • Recrie alertas de disponibilidade.
  • Recrie quaisquer configurações personalizadas de controle de acesso baseado em função do Azure que sejam necessárias para que seus usuários acessem o novo recurso.
  • Replicar configurações envolvendo amostragem de ingestão, retenção de dados, limite diário e ativação de métricas personalizadas. Essas configurações são controladas por meio do painel Uso e custos estimados.
  • Qualquer integração que dependa de chaves de API, como anotações de versão e métricas ao vivo, canal de controle seguro. Você precisa gerar novas chaves de API e atualizar a integração associada.
  • A exportação contínua em recursos clássicos deve ser configurada novamente.
  • As configurações de diagnóstico em recursos baseados em espaço de trabalho devem ser configuradas novamente.

Posso usar providers('Microsoft.Insights', 'components').apiVersions[0] em minhas implantações do Azure Resource Manager?

Não recomendamos o uso desse método para preencher a versão da API. A versão mais recente pode representar versões prévias, que podem conter alterações de quebra. Mesmo com versões não prévias mais recentes, as versões da API nem sempre são compatíveis com versões anteriores dos modelos existentes. Em alguns casos, a versão da API pode não estar disponível para todas as assinaturas.

Próximos passos