Informações coletadas pelo cliente da Web CloudWatch RUM - Amazon CloudWatch

Informações coletadas pelo cliente da Web CloudWatch RUM

Esta seção documenta o esquema PutRumEvents, que define a estrutura dos dados que você pode coletar de sessões do usuário usando o CloudWatch RUM.

Uma solicitação PutrumEvents envia uma estrutura de dados com os campos a seguir para o CloudWatch RUM.

  • O ID deste lote de eventos do RUM

  • Detalhes do monitor de aplicações, que incluem o seguinte:

    • ID do monitor de aplicações

    • Versão da aplicação monitorado

  • Detalhes do usuário, que incluem o seguinte. Isso é coletado somente se o monitor de aplicações tiver cookies habilitados.

    • Um ID de usuário gerado pelo cliente da Web

    • ID de sessão

  • A matriz de RUM eventsneste lote.

Esquema de evento do RUM

A estrutura de cada evento do RUM inclui os campos a seguir.

Metadados de evento do RUM

Os metadados incluem metadados de página, metadados do atendente do usuário, metadados de geolocalização e metadados de domínio.

Metadados da página

Os metadados da página incluem o seguinte:

  • ID da página

  • Título da página

  • ID da página pai. Isso será coletado somente se o monitor de aplicações tiver cookies habilitados.

  • Profundidade da interação: Isso será coletado somente se o monitor de aplicações tiver cookies habilitados.

  • Tags de página: é possível adicionar tags aos eventos de página para agrupar as páginas. Para ter mais informações, consulte Usar grupos de páginas.

Metadados do atendente do usuário

Os metadados do atendente do usuário incluem o seguinte:

  • Idioma do navegador

  • Nome do navegador

  • Versão do navegador

  • Nome do sistema operacional

  • Versão do sistema operacional

  • Tipo de dispositivo

  • Tipos de plataforma

Metadados de localização geográfica

Os metadados de geolocalização incluem o seguinte:

  • Código do país

  • Código de subdivisão

Metadados do domínio

Os metadados do domínio incluem o domínio da URL.

Detalhes do evento do RUM

Os detalhes de um evento seguem um dos tipos de esquemas a seguir, dependendo do tipo de evento.

Evento de início da sessão

Esse evento não contém campos. Isso é coletado somente se o monitor de aplicações tiver cookies habilitados.

Esquema de visualização de página

Um evento de Page View (Exibição de página) contém as seguintes propriedades. Você pode desativar a coleção de exibição de página configurando o cliente da Web. Para obter mais informações, consulte a Documentação do cliente da Web do CloudWatch RUM.

Nome Tipo Descrição

ID da página

String

Um ID que representa exclusivamente esta página dentro da aplicação. Por padrão, esse é o caminho do URL.

ID da página pai

String

O ID da página em que o usuário estava quando navegou para a página atual. Isso é coletado somente se o monitor de aplicações tiver cookies habilitados.

Profundidade de interação

String

Isso é coletado somente se o monitor de aplicações tiver cookies habilitados.

Esquema de erro do JavaScript

Os eventos de erro JavaScript gerados pelo atendente contêm as propriedades a seguir. O cliente da Web coleta esses eventos somente se você selecionou a coleta de telemetria de erros.

Nome Tipo Descrição

Tipo de erro

String

O nome do erro, se existir algum erro. Para obter mais informações, consulte Error.prototype.Name.

Alguns navegadores podem não ser compatíveis com tipos de erro.

Mensagem de erro

String

A mensagem do erro. Para obter mais informações, consulte Error.prototype.message. Se o campo de erro não existir, esta é a mensagem do evento de erro. Para obter mais informações, consulte ErrorEvent.

As mensagens de erro podem não ser consistentes em navegadores diferentes.

Rastreamento

String

O rastreamento de pilha do erro, se houver, reduzido a 150 caracteres. Para obter mais informações, consulte Error.prototype.Stack.

Alguns navegadores podem não suportar rastreamentos de pilha.

Esquema de eventos DOM

Os eventos do modelo de objeto de documento (DOM) gerados pelo atendente contêm as propriedades a seguir. Esses eventos não são coletados por padrão. Eles serão coletados apenas se você ativar a telemetria das interações. Para obter mais informações, consulte a Documentação do cliente da Web do CloudWatch RUM.

Nome Tipo Descrição

Evento

String

O tipo de evento DOM, como clicar, rolar ou passar o mouse. Para obter mais informações, consulte Event reference.

Elemento

String

O tipo de elemento DOM

Element ID (ID de elemento)

String

Se o elemento que gerou o evento tiver uma ID, essa propriedade armazenará essa ID. Para obter mais informações, consulteElement.id.

CSSLocator

String

O localizador CSS usado para identificar o elemento DOM.

InteractionId

String

Um ID exclusivo para a interação entre o usuário e a interface do usuário.

Esquema de eventos de navegação

Os eventos de navegação só serão coletados se o monitor de aplicações tiver telemetria de performance ativada.

Os eventos de navegação usam as APIs Navigation timing Level 1 e Navigation timing Level 2. As APIs de nível 2 não são compatíveis com todos os navegadores, portanto, esses campos mais novos são opcionais.

nota

As Métricas de timestamp são baseadas em DomHighrestimestamp. Com APIs de Nível 2, todos os horários são, por padrão, relativos ao startTime. No entanto, para as de Nível 1, a métrica navigationStart é subtraída das métricas de timestamp para obter valores relativos. Todos os valores de timestamp estão em milissegundos.

Os eventos de navegação contêm as propriedades a seguir.

Nome Tipo Descrição Observações

initiatorType

String

Representa o tipo de recurso que iniciou o evento de performance.

Value: "navigation"

Level 1 (Nível 1): "navigation"

Level 2 (Nível 2): entryData.initiatorType

navigationType

String

Representa o tipo de navegação.

Esse atributo não é obrigatório.

Value: Esse valor deve ser um dos seguintes:

  • navigate é uma navegação que se inicia com a escolha de um link, a inserção de um URL na barra de endereços de um navegador, o envio de formulários ou uma operação de script diferente de reload ou back_forward .

  • reload é uma navegação através da operação de recarga do navegador ou location.reload() .

  • back_forward é uma navegação através da operação de passagem do histórico do navegador.

  • prerender é uma navegação iniciada por uma dica de pré-renderização. Para obter mais informações, consulte Pré-renderização.

startTime

Número

Indica quando o evento é acionado.

Value: 0

Level 1 (Nível 1): entryData.navigationStart - entryData.navigationStart

Level 2 (Nível 2): entryData.startTime

unloadEventStart

Número

Indica o momento em que o documento anterior na janela começou a descarregar após o lançamento do eventounload.

Value: (Valor). Se não houver documento anterior ou se o documento anterior ou um dos redirecionamentos necessários não for da mesma origem, o valor retornado será 0.

Level 1 (Nível 1):

entryData.unloadEventStart > 0 ? entryData.unloadEventStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.unloadEventStart

PromptForUnload

Número

O tempo necessário para descarregar o documento. Em outras palavras, o tempo entre unloadEventStart e unloadEventEnd. UnloadEventEnd representa o momento em milissegundos quando o manipulador de eventos de descarga termina.

Value: (Valor). Se não houver documento anterior ou se o documento anterior ou um dos redirecionamentos necessários não for da mesma origem, o valor retornado será 0.

Level 1 (Nível 1): entryData.unloadEventEnd - entryData.unloadEventStart

Level 2 (Nível 2): entryData.unloadEventEnd - entryData.unloadEventStart

redirectCount

Número

Um número que representa o número de redirecionamentos desde a última navegação sem redirecionamento no contexto de navegação atual.

Esse atributo não é obrigatório.

Value: (Valor) Se não houver redirecionamento ou se houver algum redirecionamento que não seja da mesma origem que o documento de destino, o valor retornado será 0.

Level 1 (Nível 1): não disponível

Level 2 (Nível 2): entryData.redirectCount

redirectStart

Número

O momento em que o primeiro redirecionamento HTTP é iniciado.

Value: (Valor) Se não houver redirecionamento ou se houver algum redirecionamento que não seja da mesma origem que o documento de destino, o valor retornado será 0.

Level 1 (Nível 1):

entryData.redirectStart > 0 ? entryData.redirectStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.redirectStart

redirectTime

Número

O tempo necessário para o redirecionamento HTTP. Essa é a diferença entre redirectStart e redirectEnd.

Level 1 (Nível 1): entryData.redirectEnd - entryData.redirectStart

Level 2 (Nível 2): entryData.redirectEnd - entryData.redirectStart

workerStart

Número

Esta é uma propriedade da interface PerformanceResourceTiming. Ela marca o início da operação do encadeamento do trabalhador.

Esse atributo não é obrigatório.

Value: (Valor) Se um thread do Service Worker já estiver em execução ou imediatamente antes de seu início, essa propriedade retornará a hora imediatamente antes do envio FetchEvent. Ela retornará 0 se o recurso não for interceptado por um Service Worker.

Level 1 (Nível 1): não disponível

Level 2 (Nível 2): entryData.workerStart

workerTime

Número

Se o recurso for interceptado por um Service Worker, isso retornará o tempo necessário para a operação de thread do trabalhador.

Esse atributo não é obrigatório.

Level 1 (Nível 1): não disponível

Level 2 (Nível 2):

entryData.workerStart > 0 ? entryData.fetchStart - entryData.workerStart : 0

fetchStart

Número

O horário em que o navegador está pronto para buscar o documento usando uma solicitação HTTP. Isso ocorre antes de verificar qualquer cache de aplicação.

Level 1 (Nível 1):

: entryData.fetchStart > 0 ? entryData.fetchStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.fetchStart

domainLookupStart

Número

O momento em que a pesquisa do domínio é iniciada.

Value: (Valor) Se uma conexão persistente for usada ou se as informações forem armazenadas em um cache ou recurso local, o valor será o mesmo que fetchStart.

Level 1 (Nível 1):

entryData.domainLookupStart > 0 ? entryData.domainLookupStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.domainLookupStart

DNS

Número

O tempo necessário para a pesquisa de domínio.

Value: (Valor) Se os recursos e os registros DNS forem armazenados em cache, o valor esperado será 0.

Level 1 (Nível 1): entryData.domainLookupEnd - entryData.domainLookupStart

Level 2 (Nível 2): entryData.domainLookupEnd - entryData.domainLookupStart

nextHopProtocol

String

Uma string que representa o protocolo de rede usado para buscar o recurso.

Esse atributo não é obrigatório.

Level 1 (Nível 1): não disponível

Level 2 (Nível 2): entryData.nextHopProtocol

connectStart

Número

O momento imediatamente anterior ao atendente do usuário começar a estabelecer a conexão com o servidor para recuperar o documento.

Value (Valor): se uma conexão persistente RFC2616 for usada ou se o documento atual for recuperado de caches de aplicações relevantes ou recursos locais, esse atributo retornará o valor de domainLookupEnd.

Level 1 (Nível 1):

entryData.connectStart > 0 ? entryData.connectStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.connectStart

connect

Número

Mede o tempo necessário para estabelecer as conexões de transporte ou para executar a autenticação SSL. Também inclui o tempo bloqueado que é levado quando há muitas solicitações simultâneas emitidas pelo navegador.

Level 1 (Nível 1): entryData.connectEnd - entryData.connectStart

Level 2 (Nível 2): entryData.connectEnd - entryData.connectStart

SecureConnectionStart

Número

Se o esquema de URL da página atual for “https”, esse atributo retornará o momento imediatamente anterior ao atendente do usuário iniciar o processo de handshake para proteger a conexão atual. Ele retorna 0 se HTTPS não for usado. Para obter mais informações sobre esquemas de URL, consulteRepresentação de URL.

Formula: entryData.secureConnectionStart

tlsTime

Número

O tempo necessário para completar um Handshake do SSL.

Level 1 (Nível 1):

entryData.secureConnectionStart > 0 ? entryData.connectEnd - entryData.secureConnectionStart : 0

Level 2 (Nível 2):

entryData.secureConnectionStart > 0 ? entryData.connectEnd - entryData.secureConnectionStart : 0

requestStart

Número

O momento imediatamente anterior ao atendente do usuário começar a solicitar o recurso do servidor ou de caches de aplicações relevantes ou de recursos locais.

Level 1 (Nível 1):

: entryData.requestStart > 0 ? entryData.requestStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.requestStart

TimeToFirstByte

Número

O tempo necessário para receber o primeiro byte de informações após a solicitação ser feita. Esse tempo é relativo ao startTime.

Level 1 (Nível 1): entryData.responseStart - entryData.requestStart

Level 2 (Nível 2): entryData.responseStart - EntryData.requestStart

ResponseStart

Número

O tempo imediatamente posterior ao atendente analisador de HTTP do usuário receber o primeiro byte da resposta dos caches de aplicações relevantes, de recursos locais ou do servidor.

Level 1 (Nível 1):

entryData.responseStart > 0 ? entryData.responseStart - entryData.navigationStart : 0

Level 2: entryData.responseStart

ResponseTime

String

O tempo necessário para receber uma resposta completa na forma de bytes dos caches de aplicações relevantes, de recursos locais ou do servidor.

Level 1 (Nível 1):

entryData.responseStart > 0 ? entryData.responseEnd - entryData.responseStart : 0

Level 2 (Nível 2):

entryData.responseStart > 0 ? entryData.responseEnd - entryData.responseStart : 0

domInteractive

Número

O momento em que o analisador terminou seu trabalho no documento principal e o HTML DOM é construído. Neste momento, seu Document.readyState se altera para "interativo" e o evento correspondente readystatechange lançado.

Level 1 (Nível 1):

entryData.domInteractive > 0 ? entryData.domInteractive - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.domInteractive

domContentLoadedEventStart

Número

Representa o valor de tempo igual ao tempo imediatamente anterior ao atendente do usuário acionar o evento DOMContentLoaded no documento atual. O evento DOMContentLoaded é acionado quando o documento HTML inicial estiver completamente carregado e analisado. Neste momento, o documento HTML principal terminou a análise, o navegador começa a construir a árvore de renderização e os sub-recursos ainda precisam ser carregados. Ele não espera que folhas de estilo, imagens e subquadros terminem o carregamento.

Level 1 (Nível 1):

entryData.domContentLoadedEventStart > 0 ? entryData.domContentLoadedEventStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.domContentLoadedEventStart

domContentLoaded

Número

Esse horário de início e término da construção da árvore de renderização é marcado pelos domContentLoadedEventStart e domContentLoadedEventEnd. Ele permite que o CloudWatch RUM rastreie a execução. Essa propriedade é a diferença entre domContentLoadedStart e domContentLoadedEnd.

Durante esse período, o DOM e o CSSOM estão prontos. Essa propriedade aguarda a execução do script, exceto scripts assíncronos e criados dinamicamente. Se os scripts dependem de folhas de estilo, o domContentLoaded aguarda nas folhas de estilo, também. Ele não aguarda nas imagens.

nota

Os valores reais de domContentLoadedStart e domContentLoadedEnd se aproximam de domContentLoaded no painel Rede do Google Chrome. Ele indica o tempo de construção da árvore de renderização HTML DOM + CSSOM desde o início do processo de carregamento da página. No caso das métricas de navegação, o valor de domContentLoaded representa a diferença entre os valores inicial e final, que é o tempo necessário somente para baixar sub-recursos e construção de árvore de renderização.

Level 2 (Nível 2): entryData.domContentLoadedEventEnd - entryData.domContentLoadedEventStart

Level 2 (Nível 2): entryData.domContentLoadedEventEnd - entryData.domContentLoadedEventStart

domComplete

Número

O momento imediatamente anterior ao navegador definir a prontidão do documento atual para a sua conclusão. Nesse ponto, o carregamento de sub-recursos, como imagens, está completo. Isso inclui o tempo necessário para baixar conteúdo de bloqueio, como CSS e JavaScript síncrono. Isso se aproxima de loadTime no painel Rede do Google Chrome.

Level 1 (Nível 1):

entryData.domComplete > 0 ? entryData.domComplete - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.domComplete

domProcessingTime

Número

O tempo total entre a resposta e o início do evento de carga.

Level 1 (Nível 1): entryData.loadEventStart - entryData.responseEnd

Level 2 (Nível 2): entryData.loadEventStart - entryData.responseEnd

loadEventStart

Número

O tempo imediatamente anterior ao disparo do evento load do documento atual.

Level 1 (Nível 1):

entryData.loadEventStart > 0 ? entryData.loadEventStart - entryData.navigationStart : 0

Level 2 (Nível 2): entryData.loadEventStart

loadEventTime

Número

A diferença entre loadEventStart e loadEventEnd. Funções adicionais ou lógicas aguardando esse evento de carregamento serão disparadas durante esse período.

Level 1 (Nível 1): entryData.loadEventEnd - entryData.loadEventStart

Level 2 (Nível 2): entryData.loadEventEnd - entryData.loadEventStart

duration

String

A duração é o tempo total de carregamento da página. Ela registra o tempo para baixar a página principal e todos os seus sub-recursos síncronos, e também para renderizar a página. Recursos assíncronos, como scripts, continuam sendo baixados posteriormente. Essa é a diferença entre as propriedades loadEventEnd e startTime propriedades.

Level 1 (Nível 1): entryData.loadEventEnd - entryData.navigationStart

Level 2 (Nível 2): entryData.duration

headerSize

Número

Devolve a diferença entre transferSize e encodedBodySize.

Esse atributo não é obrigatório.

Level 1 (Nível 1): não disponível

Level 2 (Nível 2): entryData.transferSize - entryData.encodedBodySize

Level 2 (Nível 2): entryData.transferSize - entryData.encodedBodySize

compressionRatio

Número

A proporção de encodedBodySize e decodedBodySize. O valor deencodedBodySize é o tamanho compactado do recurso, excluindo os cabeçalhos HTTP. O valor de decodedBodySize é o tamanho descompactado do recurso, excluindo os cabeçalhos HTTP.

Esse atributo não é obrigatório.

Level 1 (Nível 1): não disponível

Level 2 (Nível 2):

entryData.encodedBodySize > 0 ? entryData.decodedBodySize / entryData.encodedBodySize : 0

navigationTimingLevel

Número

A versão da API de tempo de navegação.

Value: (Valor) 1 ou 2

Esquema de eventos de recurso

Os eventos de recurso são coletados somente se o monitor de aplicações tiver a telemetria de performance ativada.

Métricas de timestamp são baseadas em The DOMHighResTimeStamp typedef. Com APIs de Nível 2, por padrão, todos os horários são relativos ao startTime. Mas para APIs de Nível 1, a métrica navigationStart é subtraída das métricas de timestamp para obter valores relativos. Todos os valores de timestamp estão em milissegundos.

Os eventos de recursos gerados pelo atendente contêm as propriedades a seguir.

Nome Tipo Descrição Observações

TargetUrl

String

Retorna a URL do recurso.

Fórmula: entryData.name

InitiatorType

String

Representa o tipo de recurso que iniciou o evento de recurso de performance.

Value: "resource"

Fórmula: entryData.InitiatorType

duration

String

Retorna a diferença entre as propriedades responseEnd e startTime.

Esse atributo não é obrigatório.

Formula: entryData.duration

transferSize

Número

Retorna o tamanho (em octetos) do recurso buscado, incluindo os campos do cabeçalho de resposta e o corpo da carga útil da resposta.

Esse atributo não é obrigatório.

Formula: entryData.transferSize

fileType

String

Extensões derivadas do padrão de URL de destino.

Esquema de evento largest contentful paint (maior exibição de conteúdos)

Os eventos de largest contentful paint event contêm as propriedades a seguir.

Esses eventos só são coletados se a telemetria de performance do monitor de aplicações estiver ativada.

Nome Descrição

Valor

Para obter mais informações, consulte Web Vitals.

Evento de first input delay (atraso da primeira entrada)

Os primeiros eventos first input delay contêm as seguintes propriedades.

Esses eventos só são coletados se a telemetria de performance do monitor de aplicações estiver ativada.

Nome Descrição

Valor

Para obter mais informações, consulte Web Vitals.

Evento de cumulative layout shift (deslocamento cumulativo de layout)

Os eventos de cumulative layout shift contêm as propriedades a seguir.

Esses eventos só são coletados se a telemetria de performance do monitor de aplicações estiver ativada.

Nome Descrição

Valor

Para obter mais informações, consulte Web Vitals.

Evento HTTP

Os eventos HTTP podem conter as propriedades a seguir. Ele conterá um campo Response ou um campo Error, mas não ambos.

Esses eventos só são coletados se a telemetria HTTP do monitor de aplicações estiver ativada.

Nome Descrição

Solicitação

O campo de solicitação inclui o seguinte:

  • O campo Method, que pode ter valores como GET, POST e assim por diante.

  • O URL

Resposta

O campo de resposta inclui o seguinte:

  • Status, como 2xx, 4xx ou 5xx

  • Texto de status

Erro

O campo de erros inclui o seguinte:

  • Tipo

  • Message

  • Nome do arquivo

  • Line number

  • Número da coluna

  • Rastreamento

Esquema de eventos de rastreamento do X-Ray

Esses eventos são coletados somente se o monitor de aplicações tiver o rastreamento de X-Ray ativado.

Para obter informações sobre esquemas de eventos de rastreamento de X-Ray, consulte Documentos de segmento do AWS X-Ray.