Configurar Atributos para Monitoramento de Usuário Real

Você pode configurar o serviço Application Performance Monitoring para permitir uma melhor classificação de diferentes atividades do usuário final, adicionando outros atributos.

Os atributos definidos no agente do navegador APM são adicionados aos intervalos que o agente do navegador faz upload para o serviço APM.

Os atributos de texto personalizados do agente do browser do APM são representados como dimensões no Trace Explorer e também podem ser usados para definir grupos de métricas. Os atributos numéricos personalizados do agente do browser do APM são representados como métricas no Trace Explorer. Os atributos numéricos podem ser agregados e usados em alertas no serviço Monitoring. Para obter detalhes sobre dimensões no Trace Explorer, consulte Sobre Atributos de Rastreamento e Intervalo.

Configurar Atributos Personalizados

Os atributos personalizados podem ser adicionados mais facilmente por meio da propriedade udfAttributes do objeto apmrum.

Toda vez que o código do agente do navegador cria um intervalo, esses dados são pesquisados e usados para preencher o intervalo com os atributos desejados. A definição pode ser uma string, um número ou uma função (que retorna uma string ou um número).

Quando uma função é usada, ela é executada toda vez que o intervalo é criado e o valor do atributo é necessário. Atenção a detalhes é necessária ao usar funções para evitar impacto negativo no desempenho.

Observação

Um novo atributo será ativado automaticamente somente após a quinta ocorrência e somente se auto-activate estiver ativado. Caso contrário, ele poderá ser ativado manualmente usando a página Atributos de Intervalo.

Exemplo de Configuração Simples

O código a seguir é um exemplo básico que pode ser usado para adicionar alguns campos personalizados:
window.apmrum.udfAttributes = [
    { name: 'mySiteId', value: "TheWebSiteId" },
    { name: 'resultsOnPage', value: 123 },

     // calling a user-supplied javascript function to calculate shopping cart totals
    { name: 'shoppingCart', value: () => { productsInBasket(); } }
];
A configuração de amostra acima mostra como um valor de string pode ser atribuído.
  • O atributo/dimensão ‘mySiteId’ será criado na IU com o valor ‘TheWebSiteId’. Isso pode ser útil se o modelo html permitir designar diferentes valores para ele ou se diferentes implantações estiverem usando isso.
  • O atributo ‘resultsOnPage’ criará a métrica com esse nome na interface do usuário. O benefício de um valor numérico é que ele pode ser somado, e a média pode ser calculada para ele, bem como outras funções numéricas.

É importante observar que algo como um productNumber não deve ser fornecido como um número, mas deve ser usado como uma string, para permitir a seleção de produtos específicos, bem como o agrupamento pelo produto. Por exemplo, quando o productid ou productNumber estiver disponível em javascript como um campo numérico, ele precisará ser convertido em uma string para garantir que o serviço Application Performance Monitoring o trate corretamente.

Exemplo de Configuração Complexa

O exemplo a seguir mostra uma construção mais complexa com a propriedade intermitente no objeto apmrum para trocar dados:
window.apmrum.udfAttributes = [
    { name: 'myDynamicSiteId', value: () => window.apmrum.tmpSiteId },
    { name: 'curProductNumber', value: '123456' },
];

// on other locations in the code:
window.apmrum.tmpSiteId = 'siteA';

 // on some other locations in the code
window.apmrum.tmpSiteId = 'siteB';

A implementação mais clara é ter os atributos gerados em um único local. Se um valor específico for conhecido ou definido como algum estado durante chamadas específicas, elas poderão ser designadas a uma propriedade no objeto apmrum que começa com ‘tmp’ no nome. Esse valor pode ser selecionado em udfAttributes para reportar o valor. Quando o valor for ‘undefined’, a propriedade não será enviada.

Limitações

Os dados fornecidos são limitados para garantir que a geração de relatórios sobre eles faça sentido. O principal objetivo é garantir que dados arbitrários não sejam enviados acidentalmente.

Nome Limite Descrição
attrNameLenMax 50 Número máximo de caracteres para um nome (imposto pela adição de pontos ao nome, se o nome fornecido for muito longo)
attrValueLenMax 500 Número máximo de caracteres no valor (forçar adicionando pontos ao valor, se o valor fornecido for muito longo)
attrMax 50 Número máximo de flexfields permitidos

Configurar Atributo de Nome de Usuário

Você precisa definir o atributo apmrum.username para ativar a filtragem de dados de Monitoramento do Usuário Real por nome de usuário.

Antes de continuar, você deve fazer o seguinte:
  • Identifique a origem original do nome de usuário. Isso depende do aplicativo monitorado e do mecanismo de autenticação usado.
  • Incorpore scripts nas páginas do aplicativo (ou na página inicial do aplicativo). Designe o valor de nome do usuário à variável apmrum.username. Isso disponibiliza o nome do usuário para geração de relatórios.
A origem original do nome do usuário depende do aplicativo monitorado e do mecanismo de autenticação usado. Veja a seguir alguns exemplos de como os nomes de usuário podem ser coletados em diferentes ambientes:
  • get username do Windows no Internet Explorer:
    var WinNetwork = new ActiveXObject("WScript.Network");
    window.apmrum || (apmrum = {} );
    apmrum.username =  WinNetwork.UserName
    
  • get username lógica do código PHP:
    window.apmrum || (apmrum = {} );
    apmrum.username = '<?php echo $username; ?>';
    
  • get username da página:

    Você pode usar isso se a página estiver usando DOM e a página contiver algo como: <div id="welcomeMsg">Welcome <user> (last visit <mm–dd-yyyy>)</div>.

    var Loginname = document.getElementById("welcomeMsg").innerHTML ;   
    var end = Loginname.indexOf("("); 
    var nameOnly = Loginname.substring(8, end);
    window.apmrum || (apmrum = {} );
    apmrum.username = nameOnly;
Observação

Se você estiver usando aplicativos Oracle, consulte Soluções do APM para obter detalhes sobre como capturar o atributo de nome de usuário ao configurar a injeção automática no Agente do APM, dependendo do aplicativo Oracle específico.

Configurar Atributos Personalizados em Ambientes Legados

Se você migrou do produto Oracle Management Cloud Application Performance Monitoring para o serviço Oracle Cloud Infrastructure (OCI) Application Performance Monitoring, poderá usar as mesmas propriedades na configuração do OCI, conforme mostrado nesta seção.

Os valores desses atributos fornecem uma perspectiva mais próxima do desempenho do aplicativo no site do usuário. Esses atributos são exibidos como dimensões na interface do usuário do serviço Application Performance Monitoring, que pode ser usada para filtrar dados. Para adicionar os atributos, inclua o seguinte código JavaScript nas páginas que você deseja monitorar:

apmrum.udfAttribute1 = function()
{
    // return desired value of attribute 1
    return "Attribute value 1"; 
};
apmrum.udfAttribute2 = function()
{
    // return desired value of attribute 2
    return "Attribute value 2"; 
};

Por padrão, attribute1 será preenchido com o diretório de nível superior do URL e attribute2..9 permanecerá vazio e poderá ser configurado por você. No serviço Application Performance Monitoring, você pode configurar até nove atributos.

Por exemplo, no URL https://www.sample.com/calendar/render, attribute1 será preenchido com a string calendar.

O título do documento da página do aplicativo e o texto visível para o usuário podem ser úteis no relatório, mas podem conter informações de identificação pessoal (PII) que não podem ser capturadas por padrão. Se quiser capturar esses valores, você poderá usar a definição trackScreenText que precisa ser definida explicitamente como verdadeira usando o seguinte: window.apmrum.trackScreenText=true.

O título da página pode ser redefinido definindo o atributo apmrum.udfAttributeDt. No relatório de contexto, os dados em attribute1 são mais genéricos, udfAttributeDt é mais específico (nível de página) e apmrum.udfAttribute2 é considerado para apontar para/descrever aproximadamente a área em uma tela ativa durante uma chamada AJAX ou a área que é clicada.

A lógica de nomenclatura do elemento pode ser redefinida configurando o atributo getElmLabelFn. Essa função recebe o 'Elemento' (destino do evento) que foi clicado/ativado pelo usuário como um argumento. Usando o atributo getElmLabelFn, você tem mais controle sobre as informações relatadas e reduz o risco de expor PII acidentalmente.

Veja um exemplo:

apmrum.trackScreenText=true;
apmrum.udfAttributeDt = function()
{     
    // return desired value of page title
    return "New Page Title";
};
apmrum.getElmLabelFn = function(e)
{
    // return desired value for element
    return "elm: "+e.tagName+"["+e.id+"]"; 
}