Exportar telemetria a partir do Application Insights

Pretende manter a telemetria durante mais tempo do que o período de retenção padrão? Ou quer processá-lo de alguma forma especializada? A exportação contínua é ideal para esta finalidade. Os eventos que vê no portal do Application Insights podem ser exportados para o armazenamento no Azure no formato JSON. A partir daí, pode transferir os seus dados e escrever o código necessário para os processar.

Importante

Antes de configurar a exportação contínua, existem algumas alternativas que poderá considerar:

Após a exportação contínua, copia os seus dados para o armazenamento, onde podem permanecer o tempo que quiser, continuam disponíveis no Application Insights para o período de retenção habitual.

Regiões suportadas

A exportação contínua é suportada nas seguintes regiões:

  • Sudeste Asiático
  • Canadá Central
  • Índia Central
  • Europa do Norte
  • Sul do Reino Unido
  • Leste da Austrália
  • Leste do Japão
  • Coreia do Sul Central
  • França Central
  • Ásia Leste
  • E.U.A. Oeste
  • E.U.A. Central
  • E.U.A. Leste 2
  • E.U.A. Centro-Sul
  • E.U.A. Oeste 2
  • Norte da África do Sul
  • E.U.A. Centro-Norte
  • Sul do Brasil
  • Norte da Suíça
  • Austrália Sudeste
  • Oeste do Reino Unido
  • Alemanha Centro-Oeste
  • Oeste da Suíça
  • Austrália Central 2
  • E.A.U. Central
  • Sudeste do Brasil
  • Austrália Central
  • Norte dos E.A.U.
  • Leste da Noruega
  • Oeste do Japão

Nota

A exportação contínua continuará a funcionar para aplicações nos E.U.A. Leste e na Europa Ocidental se a exportação tiver sido configurada antes de 23 de fevereiro de 2021. Não é possível configurar novas regras de exportação contínua em nenhuma aplicação nos E.U.A. Leste ou na Europa Ocidental, independentemente da criação da aplicação.

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

A exportação contínua não suporta as seguintes funcionalidades ou configurações do Armazenamento do Azure:

Criar uma exportação contínua

Nota

Uma aplicação não pode exportar mais de 3 TB de dados por dia. Se for exportado mais de 3 TB por dia, a exportação será desativada. Para exportar sem limite, utilize a exportação baseada em definições de diagnóstico.

  1. No recurso do Application Insights para a sua aplicação em Configurar à esquerda, abra Exportação contínua e selecione Adicionar.

  2. Escolha os tipos de dados telemétricos que pretende exportar.

  3. Crie ou selecione uma conta de Armazenamento do Azure onde pretende armazenar os dados. Para obter mais informações sobre as opções de preços de armazenamento, consulte a página Preços.

    Selecione Adicionar>Exportar conta de armazenamento dedestino>. Em seguida, crie um novo arquivo ou escolha um arquivo existente.

    Aviso

    Por predefinição, a localização de armazenamento será definida para a mesma região geográfica que o recurso do Application Insights. Se armazenar numa região diferente, poderá incorrer em custos de transferência.

  4. Crie ou selecione um contentor no armazenamento.

Nota

Depois de criar a exportação, os dados recentemente ingeridos começarão a fluir para Armazenamento de Blobs do Azure. A exportação contínua só transmite uma nova telemetria criada ou ingerida após a ativação da exportação contínua. Os dados que existiam antes de ativar a exportação contínua não serão exportados. Não existe uma forma suportada de exportar retroativamente dados criados anteriormente através da exportação contínua.

Pode haver um atraso de cerca de uma hora antes de os dados aparecerem no armazenamento.

Após a conclusão da primeira exportação, encontrará a seguinte estrutura no contentor do Armazenamento de Blobs. (Esta estrutura varia consoante os dados que está a recolher.)

Nome Descrição
Disponibilidade Comunica testes Web de disponibilidade.
Evento Eventos personalizados gerados pelo TrackEvent().
Exceções Comunica exceções no servidor e no browser.
Mensagens Enviado por TrackTrace e pelos adaptadores de registo.
Métricas Gerado por chamadas à API de métricas.
PerformanceCounters Contadores de Desempenho recolhidos pelo Application Insights.
Pedidos Enviado por TrackRequest. Os módulos padrão utilizam pedidos para comunicar o tempo de resposta do servidor, medido no servidor.

Editar exportação contínua

Selecione Exportação contínua e selecione a conta de armazenamento a editar.

Parar a exportação contínua

Para parar a exportação, selecione Desativar. Quando seleciona Ativar novamente, a exportação é reiniciada com novos dados. Não obterá os dados que chegaram ao portal enquanto a exportação foi desativada.

Para parar a exportação permanentemente, elimine-a. Fazê-lo não elimina os seus dados do armazenamento.

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

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

Que eventos obtém?

Os dados exportados são a telemetria não processada que recebemos da sua aplicação com dados de localização adicionados do endereço IP do cliente.

Os dados que foram eliminados pela amostragem não estão incluídos nos dados exportados.

Outras métricas calculadas não estão incluídas. Por exemplo, não exportamos a utilização média da CPU, mas exportamos a telemetria não processada a partir da qual a média é calculada.

Os dados também incluem os resultados de quaisquer testes Web de disponibilidade que tenha configurado.

Nota

Se a aplicação enviar muitos dados, a funcionalidade de amostragem poderá funcionar e enviar apenas uma fração da telemetria gerada. Saiba mais sobre amostragem.

Inspecionar os dados

Pode inspecionar o armazenamento diretamente no portal. Selecione Base no menu mais à esquerda. Na parte superior, onde diz Serviços do Azure, selecione Contas de armazenamento. Selecione o nome da conta de armazenamento e, na página Descrição geral, selecioneBlobsde Serviços>. Por fim, selecione o nome do contentor.

Para inspecionar o Armazenamento do Azure no Visual Studio, selecione Ver>Cloud Explorer. Se não tiver esse comando de menu, terá de instalar o SDK do Azure. Abra a caixa de diálogo Novo Projeto , expanda Visual C#/Cloud e selecione Obter o SDK do Microsoft Azure para .NET.

Quando abrir o seu arquivo de blobs, verá um contentor com um conjunto de ficheiros de blobs. Verá o URI de cada ficheiro derivado do nome do recurso do Application Insights, da respetiva chave de instrumentação e do tipo de telemetria, data e hora. O nome do recurso está todo em minúsculas e a chave de instrumentação omite os traços.

Captura de ecrã que mostra a inspeção do arquivo de blobs com uma ferramenta adequada.

Nota

A 31 de março de 2025, o suporte da ingestão de chaves de instrumentação terminará. A ingestão de chaves de instrumentação continuará a funcionar, mas deixaremos de fornecer atualizações ou suporte para a funcionalidade. Transição para cadeias de ligação para tirar partido das novas capacidades.

A data e hora são UTC e são quando a telemetria foi depositada na loja, não a hora em que foi gerada. Por este motivo, se escrever código para transferir os dados, estes podem ser movidos linearmente pelos dados.

Eis a forma 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 teste interno.
  • blobDeliveryTimeUtc é a hora em que o blob é copiado para o armazenamento de destino de exportação.

Formato de dados

Os dados são formatados de modo a:

  • Cada blob é um ficheiro de texto que contém várias \nlinhas separadas. Contém a telemetria processada durante um período de tempo de aproximadamente meio minuto.

  • Cada linha representa um ponto de dados telemétrico, como uma vista de pedido ou de página.

  • Cada linha é um documento JSON não formatado. Se quiser ver as linhas, abra o blob no Visual Studio e selecione Editar>Ficheiro de FormatoAvançado>.

    Captura de ecrã que mostra a visualização da telemetria com uma ferramenta adequada

As durações de tempo estão em tiques, em que 10 000 tiques = 1 ms. Por exemplo, estes valores mostram uma hora de 1 ms para enviar um pedido a partir do browser, 3 ms para recebê-lo e 1,8 s para processar a página no browser:

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

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

Processar os dados

Em pequena escala, pode escrever algum código para separar os seus dados e lê-los numa folha de cálculo. 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 obter um exemplo de código maior, veja Utilizar uma função de trabalho.

Eliminar os seus dados antigos

É responsável por gerir a capacidade de armazenamento e eliminar dados antigos, se necessário.

Regenerar a chave de armazenamento

Se alterar a chave do armazenamento, a Exportação contínua deixará de funcionar. Verá uma notificação na conta do Azure.

Selecione o separador Exportação Contínua e edite a exportação. Edite o valorExportar Destino , mas deixe o mesmo armazenamento selecionado. Selecione OK para confirmar.

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

Exportar exemplos

Para exportar exemplos, veja:

Em escalas maiores, considere os clusters do HDInsight Hadoop na cloud. O HDInsight fornece várias tecnologias para gerir e analisar macrodados. Pode utilizá-lo para processar dados que foram exportados do Application Insights.

Perguntas mais frequentes

Esta secção fornece respostas a perguntas comuns.

Posso obter uma transferência única de um gráfico?

Podes fazer isso. Na parte superior do separador, selecione Exportar Dados.

Configurei uma exportação, mas por que motivo não existem dados no meu arquivo?

O Application Insights recebeu alguma telemetria da sua aplicação desde que configurou a exportação? Só receberá novos dados.

Tentei configurar uma exportação, mas por que motivo me foi negado o acesso?

Se a conta for propriedade da sua organização, tem de ser membro dos grupos Proprietários ou Contribuidores.

Posso exportar diretamente para a minha própria loja no local?

N.º Atualmente, o nosso motor de exportação só funciona com o Armazenamento do Azure.

Existe algum limite para a quantidade de dados que colocou no meu arquivo?

N.º Continuaremos a enviar dados por push até eliminar a exportação. Vamos parar se atingirmos os limites externos do Armazenamento de Blobs, mas esse limite é enorme. Cabe-lhe a si controlar a quantidade de armazenamento que utiliza.

Quantos blobs devo ver no armazenamento?

  • Para cada tipo de dados que selecionou para exportar, é criado um novo blob a cada minuto, se os dados estiverem disponíveis.
  • Para aplicações com tráfego elevado, são alocadas unidades de partição adicionais. Neste caso, cada unidade cria um blob a cada minuto.

Regenerai a chave para o meu armazenamento ou alterei o nome do contentor, mas por que motivo a exportação não funciona?

Edite a exportação e selecione o separador Exportar destino . Deixe o mesmo armazenamento selecionado anteriormente e selecione OK para confirmar. A exportação será reiniciada. Se a alteração tiver sido efetuada nos últimos dias, não perderá os dados.

Posso colocar a exportação em pausa?

Sim. Selecione Desativar.

Exemplos de código

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

A exportação das definições de diagnóstico é preferencial porque fornece funcionalidades adicionais:

  • Contas de Armazenamento do Azure com redes virtuais, firewalls e ligações privadas.
  • Exportar para Hubs de Eventos do Azure.

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

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

Importante

Podem ser incorridos custos adicionais devido a um aumento das chamadas para o destino, como uma conta de armazenamento.

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

  1. Ative as Definições de Diagnóstico no Application Insights Clássico.
  2. Configurar a exportação de dados: selecione Definições> dediagnóstico Adicionar definição de diagnóstico a partir do recurso do Application Insights.
  3. Verifique se a sua nova exportação de dados está configurada da mesma forma que a Exportação Contínua

Atenção

Se quiser armazenar registos de diagnóstico numa área de trabalho do Log Analytics, existem dois pontos a considerar para evitar ver dados duplicados no Application Insights:

  • O destino não pode ser idêntico à área de trabalho do Log Analytics em que o recurso do Application Insights está baseado.
  • O utilizador do Application Insights não pode ter acesso a ambas as áreas de trabalho. Defina o modo de controlo de acesso do Log Analytics como Requer permissões de área de trabalho. Através do controlo de acesso baseado em funções do Azure, certifique-se de que o utilizador só tem acesso à área de trabalho do Log Analytics em que o recurso do Application Insights se baseia.

Estes passos são necessários, dado que o Application Insights acede à telemetria em todos os recursos do Application Insight, incluindo as áreas de trabalho do Log Analytics, de modo a proporcionar operações de transação ponto a ponto completas e mapas de aplicações precisos. Dado que os registos de diagnóstico utilizam os mesmos nomes de tabela, a telemetria duplicada poderá ser apresentada se o utilizador tiver acesso a vários recursos que contenham os mesmos dados.

Modelo de Dados de Exportação do Application Insights

Esta tabela lista as propriedades da telemetria enviadas dos SDKs do Application Insights para o portal. Verá estas propriedades na saída de dados da Exportação Contínua. Também aparecem em filtros de propriedades no Explorador de Métricas e na Pesquisa de Diagnósticos.

Pontos a ter em atenção:

  • [0] nestas tabelas, indica um ponto no caminho onde tem de inserir um índice; mas nem sempre é 0.
  • As durações de tempo são em décimos de um microssegundo, pelo que 100000000 == 1 segundo.
  • As datas e horas são 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 secção de contexto. Nem todos estes campos são transmitidos com todos os pontos de dados.

Caminho Tipo Notas
context.custom.dimensions [0] objeto [ ] Pares de cadeias chave-valor definidos pelo parâmetro de propriedades personalizadas. Comprimento máximo da chave 100, valores comprimento máximo 1024. Mais de 100 valores exclusivos, a propriedade pode ser pesquisada, mas não pode ser utilizada para segmentação. Máximo de 200 chaves por ikey.
context.custom.metrics [0] objeto [ ] Pares chave-valor definidos pelo parâmetro de medições personalizadas e por TrackMetrics. Comprimento máximo da chave 100, os valores podem ser numéricos.
context.data.eventTime string UTC
context.data.isSynthetic boolean O pedido parece ser proveniente de um bot ou teste Web.
context.data.samplingRate número Percentagem de telemetria gerada pelo SDK que é enviado para o portal. Intervalo 0.0-100.0.
context.device objeto Dispositivo 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 Anfitrião
context.device.roleInstance string ID do anfitrião do servidor
context.device.roleName string
context.device.screenResolution string
context.device.type string PC, Browser, ...
context.location objeto Derivado de clientip.
context.location.city string Derivado de clientip, se conhecido
context.location.clientip string O último octógono é anónimo para 0.
context.location.continent string
context.location.country string
context.location.province string Estado ou província
context.operation.id string Os itens que têm o mesmo operation id são apresentados como Itens Relacionados no portal. Normalmente, o request id.
context.operation.name string url ou nome do pedido
context.operation.parentId string Permite itens relacionados aninhados.
context.session.id string Id de um grupo de operações da mesma origem. Um período de 30 minutos sem uma operação sinaliza o fim de uma sessão.
context.session.isFirst boolean
context.user.accountAcquisitionDate string
context.user.accountId string
context.user.anonAcquisitionDate string
context.user.anonId string
context.user.authAcquisitionDate string Utilizador Autenticado
context.user.authId string
context.user.isAuthenticated boolean
context.user.storeRegion string
internal.data.documentVersion string
internal.data.id string Unique id que é atribuído quando um item é ingerido no Application Insights

Evento

Eventos personalizados gerados pelo TrackEvent().

Caminho Tipo Notas
contagem de eventos [0] número inteiro 100/(taxa de amostragem ). Por exemplo, 4 => 25%.
nome do evento [0] string Nome do evento. Comprimento máximo 250.
url do evento [0] string
evento [0] urlData.base string
evento [0] urlData.host string

Exceções

Comunica exceções no servidor e no browser.

Caminho Tipo Notas
basicException [0] assemblagem string
basicException [0] count número inteiro 100/(taxa de amostragem ). 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 boolean
basicException [0] id string
basicException [0] method (Método basicException [0] string
basicException [0] mensagem string Mensagem de exceção. Comprimento máximo de 10 mil.
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 (Método basicException [0] parsedStack [0] string
basicException [0] stack string Comprimento máximo de 10 mil
basicException [0] typeName string

Mensagens de Rastreio

Enviado por TrackTrace e pelos adaptadores de registo.

Caminho Tipo Notas
mensagem [0] loggerName string
parâmetros da mensagem [0] string
mensagem [0] não processada string A mensagem de registo, comprimento máximo de 10 mil.
message [0] severityLevel string

Dependência remota

Enviado por TrackDependency. Utilizado para comunicar o desempenho e a utilização de chamadas para dependências no servidor e chamadas AJAX no browser.

Caminho Tipo Notas
remoteDependency [0] async boolean
remoteDependency [0] baseName string
remoteDependency [0] commandName string Por exemplo, "home/index"
remoteDependency [0] count número inteiro 100/(taxa de amostragem ). Por exemplo, 4 => 25%.
remoteDependency [0] dependencyTypeName string HTTP, SQL, ...
remoteDependency [0] durationMetric.value número Tempo desde a chamada até à 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 HTTP
remoteDependency [0] success boolean
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

Pedidos

Enviado por TrackRequest. Os módulos padrão utilizam isto para relatar o tempo de resposta do servidor, medido no servidor.

Caminho Tipo Notas
contagem de pedidos [0] número inteiro 100/(taxa de amostragem ). Por exemplo: 4 => 25%.
pedido [0] durationMetric.value número Tempo do pedido que chega à resposta. 1e7 == 1s
pedido [0] id string Operation id
pedir [0] nome string GET/POST + url base. Comprimento máximo 250
pedido [0] responseCode número inteiro Resposta HTTP enviada ao cliente
pedido [0] êxito boolean Predefinição == (responseCode < 400)
pedido [0] url string Não inclui o anfitrião
pedido [0] urlData.base string
pedido [0] urlData.hashTag string
pedido [0] urlData.host string

Desempenho da Vista de Página

Enviado pelo browser. Mede o tempo para processar uma página, desde o utilizador que inicia o pedido para apresentar concluído (excluindo chamadas AJAX assíncronas).

Os valores de contexto mostram o SO cliente e a versão do browser.

Caminho Tipo Notas
clientPerformance [0] clientProcess.value número inteiro Tempo desde o fim da receção do HTML até à apresentação da página.
clientPerformance [0] name string
clientPerformance [0] networkConnection.value número inteiro Tempo necessário para estabelecer uma ligação de rede.
clientPerformance [0] receiveRequest.value número inteiro Hora do fim do envio do pedido para receber o HTML em resposta.
clientPerformance [0] sendRequest.value número inteiro Tempo decorrido para enviar o pedido HTTP.
clientPerformance [0] total.value número inteiro Hora de começar a enviar o pedido para apresentar a página.
clientPerformance [0] url string URL deste pedido
clientPerformance [0] urlData.base string
clientPerformance [0] urlData.hashTag string
clientPerformance [0] urlData.host string
clientPerformance [0] urlData.protocol string

Visualizações da Página

Enviado por trackPageView() ou stopTrackPage

Caminho Tipo Notas
ver [0] contagem número inteiro 100/(taxa de amostragem ). Por exemplo, 4 => 25%.
ver [0] durationMetric.value número inteiro Valor opcionalmente definido em trackPageView() ou por startTrackPage() - stopTrackPage(). Não é o mesmo que os valores clientPerformance.
ver [0] nome string Título da página. Comprimento máximo 250
ver [0] url string
ver [0] urlData.base string
ver [0] urlData.hashTag string
ver [0] urlData.host string

Disponibilidade

Comunica testes Web de disponibilidade.

Caminho Tipo Notas
disponibilidade [0] availabilityMetric.name string disponibilidade
disponibilidade [0] availabilityMetric.value número 1.0 ou 0.0
disponibilidade [0] contagem número inteiro 100/(taxa de amostragem ). Por exemplo, 4 => 25%.
disponibilidade [0] dataSizeMetric.name string
disponibilidade [0] dataSizeMetric.value número inteiro
disponibilidade [0] durationMetric.name string
disponibilidade [0] durationMetric.value número Duração do teste. 1e7==1s
mensagem de disponibilidade [0] string Diagnóstico de falha
disponibilidade [0] resultado string Aprovado/Reprovado
disponibilidade [0] runLocation string Origem geográfica de http req
disponibilidade [0] testName string
disponibilidade [0] testRunId string
disponibilidade [0] testTimestamp string

Métricas

Gerado por TrackMetric().

O valor da métrica encontra-se 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
          }
        }
      ]  
    }
  }
}

Acerca dos valores das métricas

Os valores das métricas, tanto nos relatórios de métricas como noutros locais, são comunicados 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 isto possa mudar no futuro - em todos os valores comunicados a partir dos módulos padrão do SDK e count==1 apenas os name campos e value são úteis. O único caso em que seriam diferentes seria se escrevesse as suas próprias chamadas TrackMetric nas quais definiria os outros parâmetros.

O objetivo dos outros campos é permitir que as métricas sejam agregadas no SDK, para reduzir o tráfego para o portal. Por exemplo, pode fazer uma média de várias leituras sucessivas antes de enviar cada relatório de métricas. Em seguida, calcularia o valor mínimo, máximo, desvio padrão e agregado (soma ou média) e definiria a contagem para o número de leituras representadas pelo relatório.

Nas tabelas acima, omitimos a contagem de campos raramente utilizados, min, max, stdDev e sampledValue.

Em vez de agregar métricas, pode utilizar a amostragem se precisar de reduzir o volume de telemetria.

Durações

Salvo indicação em contrário, as durações são representadas em décimos de um microssegundo, pelo que 100000000,0 significa 1 segundo.

Ver também