Exportar telemetria do Application InsightsExport telemetry from Application Insights

Deseja manter a telemetria por mais tempo que o período de retenção padrão?Want to keep your telemetry for longer than the standard retention period? Ou processá-la de alguma forma especializada?Or process it in some specialized way? Exportação contínua é ideal para isso.Continuous Export is ideal for this. Os eventos que você vê no portal do Application Insights podem ser exportados para armazenamento no Microsoft Azure no formato JSON.The events you see in the Application Insights portal can be exported to storage in Microsoft Azure in JSON format. A partir daí, você pode baixar os dados e gravar qualquer código que precisar para processá-los.From there, you can download your data and write whatever code you need to process it.

Observação

A exportação contínua só é compatível com recursos clássicos do Application Insights.Continuous export is only supported for classic Application Insights resources. Os recursos baseados em espaço de trabalho do Application Insights devem usar as configurações de diagnóstico.Workspace-based Application Insights resources must use diagnostic settings.

Antes de configurar a exportação contínua, há algumas alternativas que você talvez queira considerar:Before you set up continuous export, there are some alternatives you might want to consider:

Depois que a exportação contínua copia os dados para o armazenamento (onde eles podem permanecer pelo tempo desejado), eles ainda ficam disponíveis no Application Insights pelo período de retenção normal.After Continuous Export copies your data to storage (where it can stay for as long as you like), it's still available in Application Insights for the usual retention period.

Configuração de armazenamento avançado de exportação contínuaContinuous Export advanced storage configuration

A exportação contínua não oferece suporte aos seguintes recursos/configurações do armazenamento do Azure:Continuous Export does not support the following Azure storage features/configurations:

Criar uma Exportação ContínuaCreate a Continuous Export

  1. No recurso do Application Insights do seu aplicativo, em Configurar à esquerda, abra Exportação Contínua e selecione Adicionar:In the Application Insights resource for your app under configure on the left, open Continuous Export and choose Add:

  2. Escolha a telemetria de tipos de dados que você deseja exportar.Choose the telemetry data types you want to export.

  3. Crie ou selecione uma Conta de armazenamento do Azure onde você deseja armazenar os dados.Create or select an Azure storage account where you want to store the data. Para obter mais informações sobre as opções de preços de armazenamento, visite a página de preços oficial.For more information on storage pricing options, visit the official pricing page.

    Clique em Adicionar, Destino de exportação, Conta de armazenamento e, em seguida, crie um novo repositório ou escolha um repositório existente.Click Add, Export Destination, Storage account, and then either create a new store or choose an existing store.

    Aviso

    Por padrão, o local de armazenamento será definido como a mesma região geográfica que seu recurso Application Insights.By default, the storage location will be set to the same geographical region as your Application Insights resource. Armazenar em uma região diferente poderá incorrer em encargos de transferência.If you store in a different region, you may incur transfer charges.

  4. Crie ou selecione um contêiner no armazenamento.Create or select a container in the storage.

Observação

Depois de criar sua exportação, os dados recentemente ingeridos começarão a fluir para o armazenamento de BLOBs do Azure.Once you've created your export, newly ingested data will begin to flow to Azure Blob storage. A exportação contínua transmitirá apenas a nova telemetria que é criada/ingerida após a habilitação da exportação contínua.Continuous export will only transmit new telemetry that is created/ingested after continuous export was enabled. Nenhum dado existente antes de habilitar a exportação contínua será exportado e não haverá maneira com suporte para exportar retroativamente os dados criados antes do uso da exportação contínua.Any data that existed prior to enabling continuous export will not be exported, and there is no supported way to retroactively export previously created data using continuous export.

Pode haver um atraso de aproximadamente uma hora antes de os dados aparecem no armazenamento.There can be a delay of about an hour before data appears in the storage.

Quando a primeira exportação for concluída, você encontrará uma estrutura semelhante à seguinte em seu contêiner de armazenamento de blobs do Azure: (Isso vai variar dependendo dos dados que você está coletando.)Once the first export is complete you will find a structure similar to the following in your Azure Blob storage container: (This will vary depending on the data you are collecting.)

NomeName DescriçãoDescription
DisponibilidadeAvailability Relata os testes de disponibilidade na Web.Reports availability web tests.
EventoEvent Eventos personalizados gerados por TrackEvent().Custom events generated by TrackEvent().
ExceçõesExceptions Exceções do relatório no servidor e no navegador.Reports exceptions in the server and in the browser.
MensagensMessages Enviado por TrackTrace e pelos adaptadores de log.Sent by TrackTrace, and by the logging adapters.
MétricasMetrics Gerado por chamadas de API de métrica.Generated by metric API calls.
PerformanceCountersPerformanceCounters Contadores de desempenho coletados pelo Application Insights.Performance Counters collected by Application Insights.
SolicitaçõesRequests Enviado por TrackRequest.Sent by TrackRequest. Os módulos padrão usam isso para indicar o tempo de resposta do servidor, medido no servidor.The standard modules use this to reports server response time, measured at the server.

Para editar a exportação contínuaTo edit continuous export

Clique em exportação contínua e selecione a conta de armazenamento a ser editada.Click on continuous export and select the storage account to edit.

Para interromper a exportação contínuaTo stop continuous export

Para interromper a exportação, clique em Desabilitar.To stop the export, click Disable. Quando você clicar em Habilitar novamente, a exportação será reiniciada com novos dados.When you click Enable again, the export will restart with new data. Você não obterá os dados recebidos no portal enquanto a exportação estava desabilitada.You won't get the data that arrived in the portal while export was disabled.

Para interromper a exportação permanentemente, basta excluí-la.To stop the export permanently, delete it. Isso não exclui seus dados do armazenamento.Doing so doesn't delete your data from storage.

Não consegue adicionar nem alterar uma exportação?Can't add or change an export?

  • Para adicionar ou alterar exportações, você precisa de direitos de acesso de Proprietário, Colaborador ou Colaborador do Application Insights.To add or change exports, you need Owner, Contributor, or Application Insights Contributor access rights. Saiba mais sobre as funções.Learn about roles.

Quais eventos você recebe?What events do you get?

Os dados exportados são a telemetria bruta que recebemos de seu aplicativo, exceto que adicionamos dados de localização, que calculamos por meio do endereço IP do cliente.The exported data is the raw telemetry we receive from your application, except that we add location data, which we calculate from the client IP address.

Dados que foram descartados por amostragem não são incluídos nos dados exportados.Data that has been discarded by sampling is not included in the exported data.

Outras métricas calculadas não são incluídas.Other calculated metrics are not included. Por exemplo, nós não exportamos a utilização média de CPU, mas exportamos a telemetria bruta por meio da qual a média é computada.For example, we don't export average CPU utilization, but we do export the raw telemetry from which the average is computed.

Os dados também incluem os resultados de todos os testes da Web de disponibilidade que você configurou.The data also includes the results of any availability web tests that you have set up.

Observação

Amostragem.Sampling. Se seu aplicativo enviar muitos dados, a funcionalidade de amostragem poderá operar e enviar apenas uma parte da telemetria gerada.If your application sends a lot of data, the sampling feature may operate and send only a fraction of the generated telemetry. Saiba mais sobre amostragem.Learn more about sampling.

Inspecionar os dadosInspect the data

Você pode inspecionar o armazenamento diretamente no portal.You can inspect the storage directly in the portal. Clique em Início no menu à extrema esquerda, na parte superior, que diz "Serviços do Azure", selecione Contas de armazenamento e defina o nome da conta de armazenamento; na página Visão geral, selecione Blobs em Serviços e, por fim, selecione o nome do contêiner.Click home in the leftmost menu, at the top where it says "Azure services" select Storage accounts, select the storage account name, on the overview page select Blobs under services, and finally select the container name.

Para inspecionar o armazenamento do Azure no Visual Studio, abra Exibir e Cloud Explorer.To inspect Azure storage in Visual Studio, open View, Cloud Explorer. (Se você não tiver esse comando de menu, será necessário instalar o SDK do Azure: Abra a caixa de diálogo Novo Projeto, expanda Visual C#/Cloud e escolha Obter Microsoft Azure SDK para .NET.)(If you don't have that menu command, you need to install the Azure SDK: Open the New Project dialog, expand Visual C#/Cloud and choose Get Microsoft Azure SDK for .NET.)

Quando você abrir o armazenamento de blob, verá um contêiner com um conjunto de arquivos de blob.When you open your blob store, you'll see a container with a set of blob files. O URI de cada arquivo deriva o nome do recurso Application Insights, da chave de instrumentação e do tipo/data/hora de telemetria.The URI of each file derived from your Application Insights resource name, its instrumentation key, telemetry-type/date/time. (O nome do recurso está todo em letras minúsculas e a chave de instrumentação omite traços.)(The resource name is all lowercase, and the instrumentation key omits dashes.)

Inspecione o repositório de blob com uma ferramenta adequada

A data e hora são em formato UTC, e referentes a quando a telemetria foi depositada no repositório - não à hora em que essa telemetria foi gerada.The date and time are UTC and are when the telemetry was deposited in the store - not the time it was generated. Então, se você escrever código para baixar os dados, ele pode percorrer os dados linearmente.So if you write code to download the data, it can move linearly through the data.

Veja o formato do caminho:Here's the form of the path:

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

WhereWhere

  • blobCreationTimeUtc é a hora em que o blob foi criado no armazenamento de preparo internoblobCreationTimeUtc is the time when blob was created in the internal staging storage
  • blobDeliveryTimeUtc é a hora em que o blob foi copiado para o armazenamento de destino de exportaçãoblobDeliveryTimeUtc is the time when blob is copied to the export destination storage

Formato dos dadosData format

  • Cada blob é um arquivo de texto que contém várias linhas separadas por “ \n”.Each blob is a text file that contains multiple '\n'-separated rows. Ele contém a telemetria processada durante um período de tempo de aproximadamente metade um minuto.It contains the telemetry processed over a time period of roughly half a minute.

  • Cada linha representa um ponto de dados de telemetria como uma solicitação ou uma exibição de página.Each row represents a telemetry data point such as a request or page view.

  • Cada linha é um documento JSON não formatado.Each row is an unformatted JSON document. Se você quiser exibir as linhas, abra o blob no Visual Studio e escolha Editar > Advanced > arquivo de formatoavançado:If you want to view the rows, open the blob in Visual Studio and choose Edit > Advanced > Format File:

    Veja a telemetria com uma ferramenta adequada

As durações de tempo são em tiques, onde 10.000 tiques = 1 ms.Time durations are in ticks, where 10 000 ticks = 1 ms. Por exemplo, esses valores mostram um tempo de 1 ms para enviar uma solicitação do navegador, 3 ms recebê-la e 1,8 s para processar a página no navegador:For example, these values show a time of 1 ms to send a request from the browser, 3 ms to receive it, and 1.8 s to process the page in the browser:

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

Referência de modelo de dados detalhados para os tipos de propriedades e valores.Detailed data model reference for the property types and values.

Processamento dos dadosProcessing the data

Em pequena escala, você pode escrever um código para extrair e separar seus dados, lê-los em uma planilha e assim por diante.On a small scale, you can write some code to pull apart your data, read it into a spreadsheet, and so on. Por exemplo:For example:

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
   var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
   foreach (var file in files)
   {
      using (var fileReader = File.OpenText(file))
      {
         string fileContent = fileReader.ReadToEnd();
         IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
         foreach (var entity in entities)
         {
            yield return JsonConvert.DeserializeObject<T>(entity);
         }
      }
   }
}

Para obter um exemplo de código maior, consulte Usar uma função de trabalho.For a larger code sample, see using a worker role.

Excluir dados antigosDelete your old data

Você é responsável por gerenciar a capacidade de armazenamento e excluir dados antigos, se necessário.You are responsible for managing your storage capacity and deleting the old data if necessary.

Se você regenerar sua chave de armazenamento...If you regenerate your storage key...

Se você alterar a chave para seu armazenamento, a exportação contínua deixará de funcionar.If you change the key to your storage, continuous export will stop working. Você verá uma notificação em sua conta do Azure.You'll see a notification in your Azure account.

Abra a guia Exportação Contínua e edite sua exportação.Open the Continuous Export tab and edit your export. Edite o destino de exportação, mas mantenha o mesmo armazenamento selecionado.Edit the Export Destination, but just leave the same storage selected. Clique em OK para confirmar.Click OK to confirm.

A exportação contínua será reiniciada.The continuous export will restart.

Exemplos de exportaçãoExport samples

Em escalas maiores, considere usar o HDInsight - clusters de Hadoop na nuvem.On larger scales, consider HDInsight - Hadoop clusters in the cloud. O HDInsight fornece várias tecnologias para gerenciar e analisar Big Data, e você pode usá-lo para processar dados que foram exportados do Application Insights.HDInsight provides a variety of technologies for managing and analyzing big data, and you could use it to process data that has been exported from Application Insights.

Perguntas e respostasQ & A

  • Mas tudo o que eu quero é um download único de um gráfico.But all I want is a one-time download of a chart.

    Sim, você pode fazer isso.Yes, you can do that. Na parte superior da guia, clique em Exportar Dados.At the top of the tab, click Export Data.

  • Eu configuro uma exportação, mas não há nenhum dado no meu repositório.I set up an export, but there's no data in my store.

    O Application Insights recebeu qualquer telemetria do seu aplicativo desde que você configurou a exportação?Did Application Insights receive any telemetry from your app since you set up the export? Você receberá apenas novos dados.You'll only receive new data.

  • Eu tentei configurar uma exportação, mas o acesso foi negadoI tried to set up an export, but was denied access

    Se a conta pertence à sua organização, você precisa ser membro do grupo de proprietários ou do grupo de colaboradores.If the account is owned by your organization, you have to be a member of the owners or contributors groups.

  • Eu posso exportar diretamente para meu próprio repositório local?Can I export straight to my own on-premises store?

    Não, infelizmente.No, sorry. Nosso mecanismo de exportação funciona apenas com o armazenamento do Azure no momento.Our export engine currently only works with Azure storage at this time.

  • Há qualquer limite para a quantidade de dados que você coloca em meu repositório?Is there any limit to the amount of data you put in my store?

    Não.No. Continuaremos a enviar dados por push até que você exclua a exportação.We'll keep pushing data in until you delete the export. Interromperemos o envio se atingirmos os limites externos para o armazenamento de blob, mas são limites enormes.We'll stop if we hit the outer limits for blob storage, but that's pretty huge. Cabe a você controlar a quantidade de armazenamento que usa.It's up to you to control how much storage you use.

  • Quantos blobs devo ver no armazenamento?How many blobs should I see in the storage?

    • Para cada tipo de dados selecionado para exportação, um novo blob é criado a cada minuto (se os dados estiverem disponíveis).For every data type you selected to export, a new blob is created every minute (if data is available).
    • Além disso, para aplicativos com tráfego intenso, são alocadas unidades de partição adicionais.In addition, for applications with high traffic, additional partition units are allocated. Nesse caso, cada unidade cria um blob a cada minuto.In this case, each unit creates a blob every minute.
  • Eu regenerei a chave para o meu armazenamento ou alterei o nome do contêiner, e agora a exportação não funciona.I regenerated the key to my storage or changed the name of the container, and now the export doesn't work.

    Edite a exportação e abra a guia Destino de exportação. Deixe o mesmo armazenamento de antes selecionado e clique em OK para confirmar.Edit the export and open the export destination tab. Leave the same storage selected as before, and click OK to confirm. A exportação será reiniciada.Export will restart. Se a alteração foi realizada nos últimos dias, você não perderá dados.If the change was within the past few days, you won't lose data.

  • Posso pausar a exportação?Can I pause the export?

    Sim.Yes. Clique em Desabilitar.Click Disable.

Exemplos de códigoCode samples