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
- A 29 de fevereiro de 2024, a exportação contínua será preterida como parte da preterição clássica do Application Insights.
- Quando migra para um recurso do Application Insights baseado na área de trabalho, tem de utilizar as definições de diagnóstico para exportar telemetria. Todos os recursos do Application Insights baseados na área de trabalho têm de utilizar definições de diagnóstico.
- A exportação das definições de diagnóstico pode aumentar os custos. Para obter mais informações, veja Exportação baseada em definições de diagnóstico.
Antes de configurar a exportação contínua, existem algumas alternativas que poderá considerar:
- O botão Exportar na parte superior de um separador de métricas ou pesquisa permite-lhe transferir tabelas e gráficos para uma folha de cálculo do Excel.
- O Log Analytics fornece uma linguagem de consulta avançada para telemetria. Também pode exportar resultados.
- Se quiser explorar os seus dados no Power BI, pode fazê-lo sem utilizar a exportação contínua se tiver migrado para um recurso baseado na área de trabalho.
- A API REST do Acesso a Dados permite-lhe aceder à telemetria através de programação.
- Também pode aceder à configuração para exportação contínua através do PowerShell.
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:
- Utilização de firewalls do Armazenamento do Azure Rede Virtual/Azure com Armazenamento de Blobs do Azure.
- Azure Data Lake Storage Gen2.
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.
No recurso do Application Insights para a sua aplicação em Configurar à esquerda, abra Exportação contínua e selecione Adicionar.
Escolha os tipos de dados telemétricos que pretende exportar.
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.
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.
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
\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 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>.
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
- Exemplo do Stream Analytics
- Exportar para o SQL com o Stream Analytics
- Referência detalhada do modelo de dados para tipos de propriedade e valores
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:
- Ative as Definições de Diagnóstico no Application Insights Clássico.
- Configurar a exportação de dados: selecione Definições> dediagnóstico Adicionar definição de diagnóstico a partir do recurso do Application Insights.
- 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.