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
- A partir de 29 de fevereiro de 2024, a exportação contínua é descontinuada.
- Ao migrar para um recurso do Application Insights baseado em workspace, você precisa usar configurações de diagnóstico na exportação da telemetria. Todos os recursos de Application Insights baseados em workspace devem utilizar configurações de diagnóstico.
- A exportação de configurações de diagnóstico pode aumentar os custos. Para mais informações, confira Exportação baseada em configurações de diagnóstico.
Antes de configurar a exportação contínua, há algumas alternativas que você talvez queira considerar:
- O botão Exportar na parte superior de uma métrica ou da guia de pesquisa permite transferir tabelas e gráficos para uma planilha do Excel.
- O Log Analytics fornece uma linguagem de consulta eficiente para telemetria. Ele também pode exportar os resultados.
- No caso da exploração de dados no Power BI, não é preciso usar a exportação contínua se você migrou para um recurso baseado em workspace.
- A API REST de acesso a dados permite que você acesse a telemetria programaticamente.
- Você também pode acessar a configuração da exportação contínua por meio do PowerShell.
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:
- Uso de firewalls do Armazenamento Rede Virtual/Azure do Azure com Armazenamento de Blobs do Azure.
- Azure Data Lake Storage Gen2.
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.
No recurso do Application Insights do seu aplicativo, em Configurar à esquerda, abra Exportação contínua e selecione Adicionar.
Escolha a telemetria de tipos de dados que você deseja exportar.
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.
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.
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.
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
- Exemplo do Stream Analytics
- Exportar para o SQL usando o Stream Analytics
- referência de modelo de dados detalhados para os valores e tipos de propriedades
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:
- Habilite as configurações de diagnóstico no Classic Application Insights.
- 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.
- 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.