Exportar telemetria a partir do Application Insights
Deseja manter sua telemetria por 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 este fim. 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 seus dados e escrever qualquer código necessário para processá-los.
Importante
- A partir de 29 de fevereiro de 2024, a exportação contínua é aposentada.
- Ao migrar para um recurso do Application Insights baseado em espaço de trabalho, você deve usar configurações de diagnóstico para exportar telemetria. Todos os recursos do Application Insights baseados em espaço de trabalho devem usar configurações de diagnóstico.
- A exportação de definições de diagnóstico pode aumentar os custos. Para obter mais informações, consulte Exportação baseada em configurações de diagnóstico.
Antes de configurar a exportação contínua, há algumas alternativas que você pode querer considerar:
- O botão Exportar na parte superior de uma métrica ou separador de pesquisa permite-lhe transferir tabelas e gráficos para uma folha de cálculo do Excel.
- O Log Analytics fornece uma linguagem de consulta poderosa para telemetria. Também pode exportar resultados.
- Se você estiver procurando explorar seus dados no Power BI, poderá fazer isso sem usar a exportação contínua se tiver migrado para um recurso baseado em espaço de trabalho.
- A API REST de acesso a dados permite que você acesse sua telemetria programaticamente.
- Você também pode acessar a configuração para exportação contínua via PowerShell.
Depois que a exportação contínua copia seus dados para o armazenamento, onde eles podem permanecer o tempo que você quiser, eles ainda estarão disponíveis no Application Insights durante o período de retenção usual.
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
- Brasil Sudeste
- 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 no Leste dos EUA e na Europa Ocidental 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 na Europa Ocidental, independentemente de quando o aplicativo foi criado.
Configuração avançada de armazenamento de exportação contínua
A exportação contínua não suporta os seguintes recursos ou configurações do Armazenamento do Azure:
- Uso de firewalls de Rede Virtual do Azure/Armazenamento do Azure com o Armazenamento de Blob do Azure.
- Azure Data Lake Storage Gen2.
Criar uma exportação contínua
Nota
Um aplicativo não pode exportar mais de 3 TB de dados por dia. Se mais de 3 TB por dia for exportado, a exportação será desativada. Para exportar sem limite, use a exportação baseada em configurações de diagnóstico.
No recurso Application Insights para seu aplicativo, em Configurar à esquerda, abra Exportação contínua e selecione Adicionar.
Escolha os tipos de dados de telemetria que deseja exportar.
Crie ou selecione uma conta de Armazenamento do Azure onde você deseja 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>conta de armazenamento de destino>de exportação. Em seguida, crie uma nova loja ou escolha uma loja existente.
Aviso
Por padrão, o local de armazenamento será definido para a mesma região geográfica do recurso do Application Insights. Se você armazenar em uma região diferente, poderá incorrer em taxas de transferência.
Crie ou selecione um contêiner no armazenamento.
Nota
Depois de criar sua exportação, os dados recém-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 após a ativação da exportação contínua. Os dados que existiam antes de permitir a exportação contínua não serão exportados. Não há nenhuma maneira suportada de exportar retroativamente dados criados anteriormente usando a exportação contínua.
Pode haver um atraso de cerca de uma hora antes que os dados apareçam no armazenamento.
Após a conclusão da primeira exportação, você encontrará a seguinte estrutura no contêiner de Armazenamento de Blobs. (Essa estrutura varia dependendo dos dados que você está coletando.)
Nome | Descrição |
---|---|
Disponibilidade | Relatórios de testes web de disponibilidade. |
Evento | Eventos personalizados gerados por TrackEvent(). |
Exceções | Relata exceções no servidor e no navegador. |
Mensagens | Enviado pelo TrackTrace e pelos adaptadores de log. |
Métricas | Gerado por chamadas métricas de API. |
PerformanceCounters | Contadores de desempenho coletados pelo Application Insights. |
Pedidos | Enviado por TrackRequest. Os módulos padrão usam solicitações para relatar 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 ser editada.
Parar a exportação contínua
Para interromper a exportação, selecione Desativar. Quando você seleciona Ativar novamente, a exportação é reiniciada com novos dados. Você não obterá os dados que chegaram ao portal enquanto a exportação foi desativada.
Para interromper a exportação permanentemente, exclua-a. Isso não exclui seus dados do armazenamento.
Não é possível 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 recebe?
Os dados exportados são a telemetria bruta que recebemos do seu aplicativo com dados de localização adicionados do endereço IP do cliente.
Os dados que foram descartados por amostragem não sã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 bruta a partir da qual a média é calculada.
Os dados também incluem os resultados de quaisquer testes da Web de disponibilidade que você tenha configurado.
Nota
Se seu aplicativo enviar muitos dados, o recurso de amostragem poderá operar e enviar apenas uma fração da telemetria gerada. Saiba mais sobre a amostragem.
Inspecionar os dados
Você pode inspecionar o armazenamento diretamente no portal. Selecione Início 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 Visão geral, selecione Blobs de serviços>. Por fim, selecione o nome do contêiner.
Para inspecionar o Armazenamento do Azure no Visual Studio, selecione Exibir o Gerenciador de>Nuvem. Se você não tiver esse comando de menu, precisará instalar o SDK do Azure. Abra a caixa de diálogo Novo Projeto, expanda Visual C#/Cloud e selecione Obter SDK do Microsoft Azure para .NET.
Ao abrir sua loja de blob, você verá um contêiner com um conjunto de arquivos de blob. Você verá o URI de cada arquivo derivado do nome do recurso do Application Insights, sua chave de instrumentação e o tipo, data e hora da telemetria. O nome do recurso é todo minúsculo e a chave de instrumentação omite traços.
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 não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar os novos recursos.
A data e a hora são UTC e são quando a telemetria foi depositada na loja, não a hora em que foi gerada. Por esse motivo, se você escrever código para baixar os dados, ele poderá se mover linearmente pelos dados.
Aqui está 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 preparo interno.blobDeliveryTimeUtc
é o momento em que o blob é copiado para o armazenamento de destino de exportação.
Formato dos dados
Os dados são formatados de modo a que:
Cada blob é um arquivo de texto que contém várias
\n
linhas separadas. Contém a telemetria processada durante um período de tempo de aproximadamente meio minuto.Cada linha representa um ponto de dados de telemetria, como uma solicitação ou 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>arquivo de formato avançado.>
As durações de tempo são em ticks, onde 10 000 ticks = 1 ms. Por exemplo, esses valores mostram um tempo de 1 ms para enviar uma solicitação do navegador, 3 ms para 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 obter uma referência de modelo de dados detalhada para os tipos e valores de propriedade, consulte Modelo de dados de exportação do Application Insights.
Processar os dados
Em pequena escala, você pode escrever algum código para 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 obter um exemplo de código maior, consulte Usando uma função de trabalho.
Eliminar os seus dados antigos
Você é responsável por gerenciar sua capacidade de armazenamento e excluir dados antigos, se necessário.
Regenere a sua 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 a guia Exportação contínua e edite sua exportação. Edite ovalor Exportar destino , mas deixe o mesmo armazenamento selecionado. Selecionar OK para confirmar.
A exportação contínua será reiniciada.
Exportar amostras
Para amostras de exportação, consulte:
Em escalas maiores, considere clusters Hadoop HDInsight na nuvem. O HDInsight fornece várias tecnologias para gerenciar e analisar big data. Você pode usá-lo para processar dados que foram exportados do Application Insights.
Perguntas mais frequentes
Esta secção fornece respostas a 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, mas por que não há dados na minha loja?
O Application Insights recebeu alguma telemetria do seu aplicativo desde que você configurou a exportação? Você só receberá novos dados.
Tentei configurar uma exportação, mas por que me foi negado o acesso?
Se a conta pertencer à sua organização, tem de ser membro dos grupos Proprietários ou Colaboradores.
Posso exportar diretamente para a minha própria loja local?
N.º Atualmente, nosso mecanismo de exportação só funciona com o Armazenamento do Azure no momento.
Existe algum limite para a quantidade de dados que você coloca na minha loja?
N.º Continuaremos enviando dados até que você exclua a exportação. Vamos parar se atingirmos os limites externos para o 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 selecionado para exportação, um novo blob é criado a cada minuto, se os dados estiverem disponíveis.
- Para aplicações com alto tráfego, unidades de partição extras são alocadas. Neste caso, cada unidade cria um blob a cada minuto.
Eu regenerei a chave do meu armazenamento ou alterei o nome do contêiner, mas por que a exportação não funciona?
Edite a exportação e selecione a guia Exportar destino . Deixe o mesmo armazenamento selecionado como antes e selecione OK para confirmar. A exportação será reiniciada. Se a alteração ocorreu nos últimos dias, você não perderá dados.
Posso pausar a exportação?
Sim. Selecione Desativar.
Amostras de código
- Exemplo do Stream Analytics
- Exportar para SQL usando o Stream Analytics
- Referência detalhada do modelo de dados para tipos e valores de propriedade
Exportação baseada em definições de diagnóstico
A exportação de configurações de diagnóstico é preferida porque fornece recursos extras:
- Contas de Armazenamento do Azure com redes virtuais, firewalls e links privados.
- Exporte 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 serem enviados em lotes.
Importante
Custos adicionais podem ser incorridos devido a um aumento nas chamadas para o destino, como uma conta de armazenamento.
Para migrar para a exportação de configurações de diagnóstico:
- Habilite as configurações de diagnóstico no Classic Application Insights.
- Configurar a exportação de dados: selecione Configurações de diagnóstico Adicione a>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
Atenção
Se você quiser armazenar logs de diagnóstico em um espaço de trabalho do Log Analytics, há 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 controle de acesso do Log Analytics como Requer permissões de espaço de trabalho. Por meio do controle de acesso baseado em função do Azure, certifique-se de que o usuário só tenha acesso ao espaço de trabalho do Log Analytics no qual 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. Você verá essas propriedades na saída de dados da Exportação Contínua. Eles também aparecem em filtros de propriedade no Metric Explorer e na Pesquisa de Diagnóstico.
Pontos a ter em conta:
[0]
nestas tabelas denota um ponto no caminho onde você tem que inserir um índice; mas nem sempre é 0.- As durações de tempo são em décimos de um microssegundo, então 10000000 == 1 segundo.
- As datas e horas são UTC e são indicadas 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 todos os pontos de dados.
Caminho | Type | Notas |
---|---|---|
context.custom.dimensions [0] | objeto [ ] | Pares de cadeia de caracteres chave-valor definidos pelo parâmetro de propriedades personalizadas. Comprimento máximo da chave 100, valores comprimento máximo 1024. Mais de 100 valores únicos, o imóvel pode ser pesquisado, mas não pode ser usado para segmentação. Max 200 teclas por ikey. |
context.custom.metrics [0] | objeto [ ] | Pares chave-valor definidos por 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 | A solicitação parece vir de um bot ou teste da Web. |
context.data.samplingRate | Número | Porcentagem de telemetria gerada pelo SDK que é enviada ao portal. Intervalo 0,0-100,0. |
context.device | objeto | Dispositivo cliente |
context.device.browser | string | IE, Chrome, ... |
context.device.browserVersão | 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 | |
contexto.device.os | string | |
context.device.osVersion | string | SO Anfitrião |
context.device.roleInstance | string | ID do host do servidor |
context.device.roleName | string | |
context.device.screenResolução | string | |
context.device.type | string | PC, Navegador, ... |
contexto.localização | objeto | Derivado de clientip . |
contexto.localização.cidade | string | Derivado de clientip , se conhecido |
context.location.clientip | string | O último octógono é anonimizado para 0. |
contexto.localização.continente | string | |
contexto.localização.país | string | |
contexto.localização.província | string | Distrito |
context.operation.id | string | Os itens que têm o mesmo operation id são mostrados como Itens Relacionados no portal. Normalmente, o request id . |
context.operation.name | string | URL ou nome da solicitação |
context.operation.parentId | string | Permite aninhar itens relacionados. |
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 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 | Usuário 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 ao Application Insights |
evento
Eventos personalizados gerados por TrackEvent().
Caminho | Type | Notas |
---|---|---|
contagem de eventos [0] | integer | 100/(taxa de amostragem ). Por exemplo, 4 => 25%. |
nome do evento [0] | string | Nome do evento. Comprimento máximo 250. |
evento [0] url | string | |
evento [0] urlData.base | string | |
evento [0] urlData.host | string |
Exceções
Relata exceções no servidor e no navegador.
Caminho | Type | Notas |
---|---|---|
montagem basicException [0] | string | |
contagem basicException [0] | integer | 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 | |
método basicException [0] | string | |
mensagem basicException [0] | 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 | |
montagem basicException [0] parsedStack [0] | string | |
basicException [0] parsedStack [0] nome_do_arquivo | string | |
basicException [0] nível parsedStack [0] | integer | |
linha basicException [0] parsedStack [0] | integer | |
método basicException [0] parsedStack [0] | string | |
pilha basicException [0] | string | Comprimento máximo 10k |
basicException [0] typeName | string |
Mensagens de rastreamento
Enviado pelo TrackTrace e pelos adaptadores de log.
Caminho | Type | Notas |
---|---|---|
mensagem [0] loggerName | string | |
parâmetros da mensagem [0] | string | |
mensagem [0] raw | string | A mensagem de log, comprimento máximo 10k. |
mensagem [0] severityLevel | string |
Dependência remota
Enviado por TrackDependency. Usado para relatar o desempenho e o uso de chamadas para dependências no servidor e chamadas AJAX no navegador.
Caminho | Type | Notas |
---|---|---|
remoteDependency [0] assíncrono | boolean | |
remoteDependency [0] nome_base | string | |
remoteDependency [0] commandName | string | Por exemplo, "home/index" |
contagem remoteDependency [0] | integer | 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é a conclusão da resposta por dependência |
remoteDependency [0] id |
string | |
nome remoteDependency [0] | string | Url. Comprimento máximo 250. |
remoteDependency [0] resultCode | string | da dependência HTTP |
Êxito de remoteDependency [0] | boolean | |
tipo remoteDependency [0] | string | Http, Sql,... |
url remoteDependency [0] | 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 do
Enviado por TrackRequest. Os módulos padrão usam isso para relatar o tempo de resposta do servidor, medido no servidor.
Caminho | Type | Notas |
---|---|---|
solicitar [0] contagem | integer | 100/(taxa de amostragem ). Por exemplo: 4 => 25%. |
solicitação [0] durationMetric.value | Número | Tempo desde a chegada do pedido até à resposta. 1e7 == 1s |
pedido [0] id |
string | Operation id |
solicitar [0] nome | string | GET/POST + base url. Comprimento máximo 250 |
request [0] responseCode | integer | Resposta HTTP enviada ao cliente |
pedido [0] sucesso | boolean | Padrão == (responseCode < 400) |
solicitar [0] url | string | Não inclui anfitrião |
solicitação [0] urlData.base | string | |
solicitação [0] urlData.hashTag | string | |
solicitação [0] urlData.host | string |
Desempenho da Visualização de Página
Enviado pelo navegador. Mede o tempo para processar uma página, desde o usuário iniciar a solicitação até a exibição completa (excluindo chamadas AJAX assíncronas).
Os valores de contexto mostram o sistema operacional do cliente e a versão do navegador.
Caminho | Type | Notas |
---|---|---|
clientPerformance [0] clientProcess.value | integer | Tempo desde o fim do recebimento do HTML até a exibição da página. |
nome clientPerformance [0] | string | |
clientPerformance [0] networkConnection.value | integer | Tempo necessário para estabelecer uma conexão de rede. |
clientPerformance [0] receiveRequest.value | integer | Tempo desde o final do envio do pedido até à receção do HTML em resposta. |
clientPerformance [0] sendRequest.value | integer | Tempo necessário para enviar a solicitação HTTP. |
clientPerformance [0] total.value | integer | Tempo desde o início do envio do pedido até à apresentação da página. |
url clientPerformance [0] | 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 de página
Enviado por trackPageView() ou stopTrackPage
Caminho | Type | Notas |
---|---|---|
ver [0] contagem | integer | 100/(taxa de amostragem ). Por exemplo, 4 => 25%. |
ver [0] durationMetric.value | integer | 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
Relatórios de testes web de disponibilidade.
Caminho | Type | Notas |
---|---|---|
Disponibilidade [0] availabilityMetric.name | string | disponibilidade |
disponibilidade [0] availabilityMetric.value | Número | 1,0 ou 0,0 |
Contagem de disponibilidade [0] | integer | 100/(taxa de amostragem ). Por exemplo, 4 => 25%. |
Disponibilidade [0] dataSizeMetric.name | string | |
disponibilidade [0] dataSizeMetric.value | integer | |
Disponibilidade [0] durationMetric.name | string | |
disponibilidade [0] durationMetric.value | Número | Duração do ensaio. 1e7==1s |
Mensagem de disponibilidade [0] | string | Diagnóstico de falhas |
Disponibilidade [0] Resultado | string | Aprovado/Reprovado |
disponibilidade [0] runLocation | string | Fonte 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 é 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 métricos
Os valores métricos, tanto em relatórios de métricas quanto em outros lugares, 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 a partir dos módulos SDK padrão, count==1
e apenas os name
campos e value
são úteis. O único caso em que eles seriam diferentes seria se você escrevesse suas próprias chamadas TrackMetric nas quais você define 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, você pode calcular a média de várias leituras sucessivas antes de enviar cada relatório de métrica. Em seguida, você calcularia o min, max, desvio padrão e valor agregado (soma ou média) e definiria a contagem para o número de leituras representado pelo relatório.
Nas tabelas acima, omitimos os campos raramente usados count, min, max, stdDev e sampledValue.
Em vez de pré-agregar métricas, você pode usar amostragem se precisar reduzir o volume de telemetria.
Durações
Salvo indicação em contrário, as durações são representadas em décimos de microssegundo, de modo que 10000000.0 significa 1 segundo.