Exportar telemetria do Application Insights

Você quer manter a telemetria por mais tempo que o período de retenção padrão? Ou você deseja processá-la de algum modo especializado? A exportação contínua é ideal para essa finalidade. Os eventos que você vê no portal do Application Insights podem ser exportados para armazenamento no Azure no formato JSON. A partir daí, você pode baixar os dados e gravar qualquer código que precisar para processá-los.

Importante

Antes de configurar a exportação contínua, há algumas alternativas que você talvez queira considerar:

Depois que a exportação contínua copia os dados para o armazenamento, em que eles podem permanecer pelo tempo desejado, eles ainda ficam disponíveis no Application Insights pelo período de retenção normal.

Regiões com suporte

Há suporte para Exportação Contínua nas seguintes regiões:

  • Sudeste Asiático
  • Canadá Central
  • Índia Central
  • Norte da Europa
  • Sul do Reino Unido
  • Leste da Austrália
  • Leste do Japão
  • Coreia Central
  • França Central
  • Leste da Ásia
  • Oeste dos EUA
  • Centro dos EUA
  • Leste dos EUA 2
  • Centro-Sul dos Estados Unidos
  • Oeste dos EUA 2
  • Norte da África do Sul
  • Centro-Norte dos EUA
  • Brazil South
  • Norte da Suíça
  • Australia Southeast
  • Oeste do Reino Unido
  • Centro-Oeste da Alemanha
  • Oeste da Suíça
  • Austrália Central 2
  • EAU Central
  • Sudeste do Brasil
  • Austrália Central
  • Norte dos EAU
  • Leste da Noruega
  • Oeste do Japão

Observação

A exportação contínua continuará funcionando para aplicativos no Leste dos EUA e no Oeste da Europa se a exportação tiver sido configurada antes de 23 de fevereiro de 2021. Novas regras de Exportação Contínua não podem ser configuradas em nenhum aplicativo no Leste dos EUA ou no Oeste da Europa, não importa quando o aplicativo foi criado.

Configuração de armazenamento avançado de exportação contínua

A exportação contínua não dá suporte aos seguintes recursos ou configurações do armazenamento do Azure:

Criar uma exportação contínua

Observação

Um aplicativo não pode exportar mais de 3 TB de dados por dia. Se mais de 3 TB por dia forem exportados, a exportação será desabilitada. Para exportar sem um limite, use a exportação baseada em configurações de diagnóstico.

  1. No recurso do Application Insights do seu aplicativo, em Configurar à esquerda, abra Exportação contínua e selecione Adicionar.

  2. Escolha a telemetria de tipos de dados que você deseja exportar.

  3. Crie ou selecione uma Conta de Armazenamento do Azure onde você deseja armazenar os dados. Para obter mais informações sobre opções de preço de armazenamento, confira a página Preço.

    Selecione Adicionar>Destino de exportação>Conta de armazenamento. Você pode escolher um espaço de trabalho ou criar um.

    Aviso

    Por padrão, o local de armazenamento será definido como a mesma região geográfica que seu recurso Application Insights. Armazenar em uma região diferente poderá incorrer em encargos de transferência.

  4. Crie ou selecione um contêiner no armazenamento.

Observação

Depois de criar a exportação, os dados recentemente ingeridos começarão a fluir para o Armazenamento de Blobs do Azure. A exportação contínua transmite apenas a nova telemetria criada ou ingerida depois que a exportação contínua é habilitada. Os dados que existiam antes de habilitar a exportação contínua não serão exportados. Não há nenhuma forma compatível de exportar retroativamente dados criados antes usando a exportação contínua.

Pode haver um atraso de aproximadamente uma hora antes de os dados aparecem no armazenamento.

Depois que a primeira exportação for concluída, você encontrará a estrutura a seguir no contêiner do Armazenamento de Blobs. (Essa estrutura varia conforme os dados que você está coletando.)

Nome Descrição
Disponibilidade Relata os testes de disponibilidade na Web.
Evento Eventos personalizados gerados por TrackEvent().
Exceções Exceções do relatório no servidor e no navegador.
Mensagens Enviado por TrackTrace e pelos adaptadores de log.
Métricas Gerado por chamadas de API de métrica.
PerformanceCounters Contadores de desempenho coletados pelo Application Insights.
Solicitações Enviado por TrackRequest. Os módulos padrão usam solicitações para indicar o tempo de resposta do servidor, medido no servidor.

Editar exportação contínua

Selecione a Exportação contínua e a conta de armazenamento a ser editada.

Interromper a exportação contínua

Para interromper a exportação, selecione Desabilitar. Quando você selecionar Habilitar novamente, a exportação será reiniciada com novos dados. Você não obterá os dados recebidos no portal enquanto a exportação estava desabilitada.

Para interromper a exportação permanentemente, basta excluí-la. Isso não exclui seus dados do armazenamento.

Não consegue adicionar nem alterar uma exportação?

Para adicionar ou alterar exportações, você precisa de direitos de acesso de Proprietário, Colaborador ou Colaborador do Application Insights. Saiba mais sobre as funções.

Quais eventos você recebe?

Os dados exportados são a telemetria bruta que recebemos de seu aplicativo com dados de localização adicionados do endereço IP do cliente.

Dados que foram descartados por amostragem não são incluídos nos dados exportados.

Outras métricas calculadas não são incluídas. 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.

Os dados também incluem os resultados de todos os testes da Web de disponibilidade que você configurou.

Observação

Se seu aplicativo enviar muitos dados, o recurso de amostragem poderá operar e enviar apenas uma parte da telemetria gerada. Saiba mais sobre amostragem.

Inspecionar os dados

Você pode inspecionar o armazenamento diretamente no portal. Selecione Página Inicial no menu mais à esquerda. Na parte superior que diz Serviços do Azure, selecione Contas de armazenamento. Selecione o nome da conta de armazenamento e, na página Visão geral, selecioneServiços>Blobs. Por fim, selecione o nome do contêiner.

Para inspecionar o armazenamento do Azure no Visual Studio, selecione Exibir>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 selecione Obter Microsoft Azure SDK para .NET.

Quando você abrir o armazenamento de blob, verá um contêiner com um conjunto de arquivos de blob. Você verá o URI de cada arquivo derivado do nome do recurso Application Insights, da chave de instrumentação e do tipo, data e hora da telemetria. O nome do recurso está todo em letras minúsculas e a chave de instrumentação omite traços.

Captura de tela que mostra a inspeção do repositório de blobs com uma ferramenta adequada.

Observação

Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar as novas funcionalidades.

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. Por isso, se você escrever código para baixar os dados, ele poderá percorrer os dados linearmente.

Veja o formato do caminho:

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

Em que:

  • blobCreationTimeUtc é a hora em que o blob foi criado no armazenamento de preparo interno.
  • blobDeliveryTimeUtc é a hora em que o blob foi copiado para o armazenamento de destino de exportação.

Formato de dados

Os dados são formatados de modo que:

  • Cada blob é um arquivo de texto que contém várias linhas separadas por \n. Ele contém a telemetria processada durante um período de tempo de aproximadamente metade um minuto.

  • Cada linha representa um ponto de dados de telemetria como uma solicitação ou uma exibição de página.

  • Cada linha é um documento JSON não formatado. Se você quiser exibir as linhas, abra o blob no Visual Studio e selecione Editar>Avançado>Arquivo de formato.

    Captura de tela que mostra a exibição da telemetria com uma ferramenta adequada

As durações de tempo são em tiques, onde 10.000 tiques = 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:

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

Para uma referência detalhada do modelo de dados para os tipos de propriedade e valores, confira Modelo de dados de exportação do Application Insights.

Processar os dados

Em pequena escala, você pode escrever um código para extrair e separar seus dados e lê-los em uma planilha. Por exemplo:

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 um exemplo de código maior, confira Como usar uma função de trabalho.

Excluir dados antigos

Você é responsável por gerenciar a capacidade de armazenamento e excluir dados antigos, se necessário.

Regenerar a chave de armazenamento

Se você alterar a chave para seu armazenamento, a exportação contínua deixará de funcionar. Você verá uma notificação em sua conta do Azure.

Selecione a guia Exportação Contínua e edite sua exportação. Edite o Destino de Exportação, mas mantenha o mesmo armazenamento selecionado. Selecione OK para confirmar.

A exportação contínua será reiniciada.

Exemplos de exportação

Para exemplos de exportação, confira:

Em escalas maiores, considere usar clusters de Hadoop do HDInsight na nuvem. O HDInsight fornece várias tecnologias para gerenciar e analisar grandes volumes de dados. Você pode usar para processar dados que foram exportados do Application Insights.

Perguntas frequentes

Esta seção fornece respostas para perguntas comuns.

Posso obter um download único de um gráfico?

Você pode fazer isso. Na parte superior da guia, selecione Exportar Dados.

Eu configurei uma exportação, porque não há nenhum dado no meu repositório?

O Application Insights recebeu qualquer telemetria do seu aplicativo desde que você configurou a exportação? Você receberá apenas novos dados.

Eu tentei configurar uma exportação, por que meu acesso foi negado?

Se a conta pertence à sua organização, você precisa ser membro do grupo de proprietários ou do grupo de colaboradores.

Eu posso exportar diretamente para meu próprio repositório local?

Não. Nosso mecanismo de exportação funciona apenas com o Armazenamento do Azure no momento.

Há qualquer limite para a quantidade de dados que você coloca em meu repositório?

Não. Continuaremos a enviar dados por push até que você exclua a exportação. Interromperemos se atingirmos os limites externos para o armazenamento de blobs, mas esses limites são enormes. Cabe a você controlar a quantidade de armazenamento que usa.

Quantos blobs devo ver no armazenamento?

  • Para cada tipo de dados selecionado para exportação, um novo blob é criado a cada minuto se os dados estiverem disponíveis.
  • Para aplicativos com tráfego intenso, são alocadas unidades de partição extras. Nesse caso, cada unidade cria um blob a cada minuto.

Eu regenerei a chave para o meu armazenamento ou alterei o nome do contêiner, por que a exportação não funciona?

Edite a exportação e selecione a guia Destino de exportação. Deixe o mesmo armazenamento de antes selecionado e selecione OK para confirmar. A exportação será reiniciada. Se a alteração foi realizada nos últimos dias, você não perderá dados.

Posso pausar a exportação?

Sim. Selecione Desabilitar.

Exemplos de código

Exportação baseada em configurações de diagnóstico

A exportação de configurações de diagnóstico é preferencial porque fornece recursos extras:

  • Contas de Armazenamento do Azure com redes virtuais, firewalls e links privados.
  • Exportar para Hubs de Eventos do Azure.

A exportação de configurações de diagnóstico difere ainda mais da exportação contínua das seguintes maneiras:

  • Esquema atualizado.
  • Os dados de telemetria são enviados à medida que chegam em vez de no carregamentos em lote.

Importante

Pode haver custos adicionais devido a um aumento nas chamadas para o destino, como uma conta de armazenamento.

Para migrar para a exportação em configurações de diagnóstico:

  1. Habilite as configurações de diagnóstico no Classic Application Insights.
  2. Defina a exportação de dados: selecione Configurações>de diagnóstico Adicionar configuração de diagnóstico de dentro do recurso do Application Insights.
  3. Verifique se a nova exportação de dados está configurada da mesma forma que a Exportação Contínua

Cuidado

Se você quiser armazenar logs de diagnóstico em um workspace do Log Analytics, há dois pontos a considerar para evitar ver dados duplicados no Application Insights:

  • O destino não pode ser o mesmo workspace do Log Analytics no qual o seu recurso do Application Insights se baseia.
  • O usuário do Application Insights não pode ter acesso a ambos os workspaces. Defina o modo de controle de acesso do Log Analytics como Requer permissões de workspace. Por meio do Controle de acesso baseado em função do Azure, garanta que o usuário tenha acesso apenas ao workspace do Log Analytics em que o recurso Application Insights é baseado.

Essas etapas são necessárias porque o Application Insights acessa a telemetria entre os recursos do Application Insight, incluindo workspaces do Log Analytics, para fornecer operações de transação completas de ponta a ponta e mapas de aplicativos precisos. Como os logs de diagnóstico usam os mesmos nomes de tabela, a telemetria duplicada poderá ser exibida se o usuário tiver acesso a vários recursos com os mesmos dados.

Modelo de dados de exportação do Application Insights

Esta tabela lista as propriedades de telemetria enviadas dos SDKs do Application Insights para o portal. Você verá essas propriedades na saída de dados de Exportação Contínua. Elas também aparecerão nos filtros da propriedade no Explorador de Métrica e na Pesquisa de Diagnóstico.

Pontos a serem observados:

  • [0] nessas tabelas indica um ponto no caminho no qual você precisa inserir um índice; mas nem sempre é 0.
  • A duração é em décimos de microssegundo, portanto, 10000000 = = 1 segundo.
  • Datas e horas estão em UTC e são fornecidas no formato ISO yyyy-MM-DDThh:mm:ss.sssZ

Exemplo

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

Contexto

Todos os tipos de telemetria são acompanhados por uma seção de contexto. Nem todos esses campos são transmitidos com cada ponto de dados.

Caminho Type Observações
context.custom.dimensions [0] object [ ] Pares de cadeira de caractere chave-valor definidos pelo parâmetro das propriedades personalizadas. Comprimento máximo da chave 100, comprimento máximo dos valores 1024. Mais de 100 valores exclusivos, é possível pesquisar na propriedade, mas não usá-la para segmentação. Máximo de 200 chaves por ikey.
context.custom.metrics [0] object [ ] Pares de chave-valor definidos pelo parâmetro de medidas personalizadas e por TrackMetrics. Comprimento máximo da chave 100, os valores podem ser numéricos.
context.data.eventTime string UTC
context.data.isSynthetic booleano A solicitação parece ser proveniente de um teste na Web ou de um bot.
context.data.samplingRate número Porcentagem de telemetria gerada pelo SDK enviado ao portal. Intervalo 0.0-100.0.
context.device objeto Dispositivo de cliente
context.device.browser string IE, Chrome, ...
context.device.browserVersion string Chrome 48.0, ...
context.device.deviceModel string
context.device.deviceName string
context.device.id string
context.device.locale string en-GB, de-DE, ...
context.device.network string
context.device.oemName string
context.device.os string
context.device.osVersion string SO host
context.device.roleInstance string ID do host do servidor
context.device.roleName string
context.device.screenResolution string
context.device.type string PC, navegador,...
context.location objeto Derivada de clientip.
context.location.city string Derivado de clientip, se conhecido
context.location.clientip string Último octógono tornado anônimo pelo valor 0.
context.location.continent string
context.location.country string
context.location.province string Estado ou província
context.operation.id string Itens que têm o mesmo operation id são mostrados como Itens Relacionados no portal. Geralmente request id.
context.operation.name string nome solicitação ou url
context.operation.parentId string Permite itens relacionados aninhados.
context.session.id string Id de um grupo de operações da mesma fonte. Um período de 30 minutos sem uma operação sinaliza o término de uma sessão.
context.session.isFirst booleano
context.user.accountAcquisitionDate string
context.user.accountId string
context.user.anonAcquisitionDate string
context.user.anonId string
context.user.authAcquisitionDate string Usuário Autenticado
context.user.authId string
context.user.isAuthenticated booleano
context.user.storeRegion string
internal.data.documentVersion string
internal.data.id string Unique id atribuído quando um item é ingerido no Application Insights

Eventos

Eventos personalizados gerados por TrackEvent().

Caminho Type Observações
event [0] count Número inteiro 100/(taxa deamostragem ). Por exemplo, 4 => 25%.
event [0] name string Nome do evento. Comprimento máximo 250.
event [0] url string
event [0] urlData.base string
event [0] urlData.host string

Exceções

Exceções do relatório no servidor e no navegador.

Caminho Type Observações
basicException [0] assembly string
basicException [0] count Número inteiro 100/(taxa deamostragem ). Por exemplo, 4 => 25%.
basicException [0] exceptionGroup string
basicException [0] exceptionType string
basicException [0] failedUserCodeMethod string
basicException [0] failedUserCodeAssembly string
basicException [0] handledAt string
basicException [0] hasFullStack booleano
basicException [0] id string
basicException [0] method string
basicException [0] message string Mensagem de exceção. Comprimento máximo 10k.
basicException [0] outerExceptionMessage string
basicException [0] outerExceptionThrownAtAssembly string
basicException [0] outerExceptionThrownAtMethod string
basicException [0] outerExceptionType string
basicException [0] outerId string
basicException [0] parsedStack [0] assembly string
basicException [0] parsedStack [0] fileName string
basicException [0] parsedStack [0] level Número inteiro
basicException [0] parsedStack [0] line Número inteiro
basicException [0] parsedStack [0] method string
basicException [0] stack string Comprimento máximo 10k
basicException [0] typeName string

Mensagens de rastreamento

Enviado por TrackTrace e pelos adaptadores de log.

Caminho Type Observações
message [0] loggerName string
message [0] parameters string
message [0] raw string A mensagem de log, comprimento máximo de 10 mil.
message [0] severityLevel string

Dependência remota

Enviado por TrackDependency. Usado para indicar o desempenho e o uso das chamadas para dependências no servidor, e chamadas do AJAX no navegador.

Caminho Type Observações
remoteDependency [0] async booleano
remoteDependency [0] baseName string
remoteDependency [0] commandName string Por exemplo, "home/index"
remoteDependency [0] count Número inteiro 100/(taxa deamostragem ). Por exemplo, 4 => 25%.
remoteDependency [0] dependencyTypeName string HTTP, SQL, ...
remoteDependency [0] durationMetric.value número Tempo desde a chamada até a conclusão da resposta por dependência
remoteDependency [0] id string
remoteDependency [0] name string Url. Comprimento máximo 250.
remoteDependency [0] resultCode string da dependência de HTTP
remoteDependency [0] success booleano
remoteDependency [0] type string Http, Sql,...
remoteDependency [0] url string Comprimento máximo 2000
remoteDependency [0] urlData.base string Comprimento máximo 2000
remoteDependency [0] urlData.hashTag string
remoteDependency [0] urlData.host string Comprimento máximo 200

Requests

Enviado por TrackRequest. Os módulos padrão usam isso para indicar o tempo de resposta do servidor, medido no servidor.

Caminho Type Observações
request [0] count Número inteiro 100/(taxa deamostragem ). Por exemplo: 4 => 25%.
request [0] durationMetric.value número Tempo de chegada da solicitação até a resposta. 1e7 == 1s
request [0] id string Operation id
request [0] name string GET/POST + url base. Comprimento máximo 250
request [0] responseCode Número inteiro Resposta HTTP enviada ao cliente
request [0] success booleano Padrão == (responseCode < 400)
request [0] url string Não incluindo o host
request [0] urlData.base string
request [0] urlData.hashTag string
request [0] urlData.host string

Desempenho de exibição da página

Enviado pelo navegador. Mede o tempo de processamento de uma página, desde o início da solicitação do usuário até a exibição completa (excluindo as chamadas do AJAX assíncronas).

Os valores de contexto mostram a versão do navegador e do sistema operacional cliente.

Caminho Type Observações
clientPerformance [0] clientProcess.value Número inteiro Tempo desde o término do recebimento do HTML até a exibição da página.
clientPerformance [0] name string
clientPerformance [0] networkConnection.value Número inteiro Tempo necessário para estabelecer uma conexão de rede.
clientPerformance [0] receiveRequest.value Número inteiro Tempo desde o término do envio da solicitação até o recebimento do HTML na resposta.
clientPerformance [0] sendRequest.value Número inteiro Tempo necessário para enviar a solicitação HTTP.
clientPerformance [0] total.value Número inteiro Tempo desde o início até o envio da solicitação para exibição da página.
clientPerformance [0] url string URL dessa solicitação
clientPerformance [0] urlData.base string
clientPerformance [0] urlData.hashTag string
clientPerformance [0] urlData.host string
clientPerformance [0] urlData.protocol string

Visualizações de página

Enviado por trackPageView() ou stopTrackPage

Caminho Type Observações
view [0] count Número inteiro 100/(taxa deamostragem ). Por exemplo, 4 => 25%.
view [0] durationMetric.value Número inteiro Valor definido opcionalmente em trackPageView() ou por startTrackPage() - stopTrackPage(). Não é igual aos valores de clientPerformance.
view [0] name string Título da página. Comprimento máximo 250
view [0] url string
view [0] urlData.base string
view [0] urlData.hashTag string
view [0] urlData.host string

Disponibilidade

Relata os testes de disponibilidade na Web.

Caminho Type Observações
availability [0] availabilityMetric.name string availability
availability [0] availabilityMetric.value número 1.0 ou 0.0
availability [0] count Número inteiro 100/(taxa deamostragem ). Por exemplo, 4 => 25%.
availability [0] dataSizeMetric.name string
availability [0] dataSizeMetric.value Número inteiro
availability [0] durationMetric.name string
availability [0] durationMetric.value número Duração do teste. 1e7==1s
availability [0] message string Diagnóstico de falha
availability [0] result string Aprovado/Reprovado
availability [0] runLocation string Fonte geográfica de solicitações http
availability [0] testName string
availability [0] testRunId string
availability [0] testTimestamp string

Métricas

Gerado por TrackMetric().

O valor da métrica é encontrado em context.custom.metrics[0]

Por exemplo:

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

Sobre valores de métricas

Valores de métricas, tanto em relatórios de métrica quanto em outros locais, são relatados com uma estrutura de objeto padrão. Por exemplo:

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

Atualmente, embora isso possa mudar no futuro, em todos os valores relatados pelos módulos padrão do SDK, count==1 e apenas os campos name e value são úteis. O único caso em que eles poderiam ser diferentes seria se você escrevesse suas próprias chamadas TrackMetric, nas quais definiria os outros parâmetros.

A finalidade dos outros campos é permitir que as métricas sejam agregadas ao SDK, a fim de reduzir o tráfego no portal. Por exemplo, você pode realizar várias leituras sucessivas antes de enviar cada relatório de métricas. Depois, você deve calcular o desvio mín., máx. e padrão e o valor agregado (soma ou média), e definir a contagem como o número de leituras representado pelo relatório.

Nas tabelas acima, omitimos os campos min, max, stdDev e sampledValue, que são usados raramente.

Em vez de agregar previamente as métricas, você pode usar a amostragem se precisar reduzir o volume de telemetria.

Durações

Exceto quando indicado o contrário, as durações são representadas em décimos de microssegundo, de modo que 10000000.0 significa 1 segundo.

Confira também