Configuration d'attributs pour la surveillance des utilisateurs réels

Vous pouvez configurer Application Performance Monitoring de façon à améliorer la classification des différentes activités de l'utilisateur final en ajoutant des attributs supplémentaires.

Les attributs définis dans l'agent de navigateur APM sont ajoutés aux étendues téléchargées par l'agent de navigateur vers le service APM.

Les attributs de texte personnalisés de l'agent de navigateur APM sont représentés sous forme de dimensions dans l'explorateur de traces. Ils peuvent également être utilisés pour définir des groupes de mesures. Les attributs numériques personnalisés de l'agent de navigateur APM sont représentés sous forme de mesures dans l'explorateur de traces. Les attributs numériques peuvent être agrégés et utilisés dans les alertes du service Monitoring. Pour plus d'informations sur les dimensions dans l'explorateur de traces, reportez-vous à A propos des attributs de trace et d'étendue.

Configurer des attributs personnalisés

Les attributs personnalisés peuvent être ajoutés plus facilement à l'aide de la propriété udfAttributes de l'objet apmrum.

Chaque fois que le code de l'agent de navigateur crée une étendue, ces données sont recherchées et utilisées pour remplir la plage avec les attributs souhaités. La définition peut être une chaîne, un nombre ou une fonction (qui renvoie une chaîne ou un nombre).

Lorsqu'une fonction est utilisée, elle est exécutée à chaque création de l'étendue et la valeur de l'attribut est requise. Une attention particulière est requise lors de l'utilisation de fonctions pour éviter un impact négatif sur les performances.

Remarque

Un nouvel attribut est activé automatiquement uniquement après la cinquième occurrence et uniquement si auto-activate est activé. Sinon, il peut être activé manuellement à l'aide de la page Attributs d'étendue.

Exemple de configuration simple

Le code suivant est un exemple de base qui peut être utilisé pour ajouter des champs personnalisés :
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(); } }
];
L'exemple de configuration ci-dessus montre comment affecter une valeur de chaîne.
  • L'attribut/la dimension ‘mySiteId’ sera créé dans l'interface utilisateur avec la valeur ‘TheWebSiteId’. Cela peut être utile si le modèle HTML permet d'affecter des valeurs différentes pour celui-ci, ou si différents déploiements l'utilisent.
  • L'attribut ‘resultsOnPage’ créera la mesure portant ce nom dans l'interface utilisateur. L'avantage d'une valeur numérique est qu'elle peut être additionnée et la moyenne peut être calculée pour elle, ainsi que pour d'autres fonctions numériques.

Il est important de noter que quelque chose comme productNumber ne doit pas être fourni comme un nombre, mais il doit être utilisé comme une chaîne, pour permettre la sélection de produits spécifiques ainsi que le regroupement par produit. Par exemple, lorsque productid ou productNumber est disponible en javascript en tant que champ numérique, il doit être converti en chaîne pour s'assurer que Application Performance Monitoring le gère correctement.

Exemple de configuration complexe

L'exemple suivant illustre une construction plus complexe avec une propriété intermittente sur un objet apmrum pour échanger des données :
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';

L'implémentation la plus claire consiste à générer les attributs sur un seul point. Si une valeur particulière est connue ou définie en tant qu'état lors d'appels spécifiques, ces derniers peuvent être affectés à une propriété dans l'objet apmrum qui commence par ‘tmp’ dans le nom. Cette valeur peut être sélectionnée dans udfAttributes pour signaler la valeur. Lorsque la valeur est ‘undefined’, la propriété n'est pas envoyée.

Limites

Les données fournies sont limitées pour s'assurer qu'elles sont pertinentes. L'objectif principal est de s'assurer que les données arbitraires ne sont pas transmises accidentellement.

Nom Limite Description
attrNameLenMax 50 Nombre maximum de caractères pour un nom (forcé par l'ajout de points au nom si le nom fourni est trop long)
attrValueLenMax 500 Nombre maximum de caractères dans la valeur (appliquer en ajoutant des points à la valeur si la valeur fournie est trop longue)
attrMax 50 Nombre maximum de champs flexibles autorisés

Configuration de l'attribut de nom utilisateur

Vous devez définir l'attribut apmrum.username pour permettre le filtrage des données de surveillance des utilisateurs réels par nom utilisateur.

Avant de continuer, vous devez effectuer les opérations suivantes :
  • Identifiez la source d'origine du nom utilisateur. Elle dépend de l'application surveillée et du mécanisme d'authentification utilisé.
  • Intégrez des scripts dans les pages de l'application (ou dans la page de destination de l'application). Affectez la valeur de nom utilisateur à la variable apmrum.username. Le nom utilisateur est ainsi disponible pour la génération de rapports.
La source d'origine du nom utilisateur dépend de l'application surveillée et du mécanisme d'authentification utilisé. Voici quelques façons de collecter les noms utilisateur dans différents environnements :
  • get username à partir de Windows dans Internet Explorer :
    var WinNetwork = new ActiveXObject("WScript.Network");
    window.apmrum || (apmrum = {} );
    apmrum.username =  WinNetwork.UserName
    
  • Logique get username à partir du code PHP :
    window.apmrum || (apmrum = {} );
    apmrum.username = '<?php echo $username; ?>';
    
  • get username à partir de la page :

    Vous pouvez utiliser cette méthode si la page utilise DOM et qu'elle contient un élément de type <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;
Remarque

Si vous utilisez des applications Oracle, reportez-vous à Solutions APM pour obtenir des détails sur la capture de l'attribut de nom utilisateur lors de la configuration de l'injection automatique dans l'agent APM en fonction de l'application Oracle spécifique.

Configurer des attributs personnalisés dans les environnements hérités

Si vous avez migré du produit Oracle Management Cloud Application Performance Monitoring vers le service Oracle Cloud Infrastructure (OCI) Application Performance Monitoring, vous pouvez utiliser les mêmes propriétés dans la configuration OCI que celles indiquées dans cette section.

Les valeurs de ces attributs offrent un aperçu plus détaillé des performances de l'application sur le site de l'utilisateur. Ces attributs sont affichés sous forme de dimensions dans l'interface utilisateur d'Application Performance Monitoring, pouvant servir à filtrer les données. Pour ajouter les attributs, ajoutez le code JavaScript suivant aux pages à surveiller :

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"; 
};

Par défaut, l'attribut attribute1 est renseigné avec le répertoire de niveau supérieur de l'URL et les attributs attribute2..9 restent vides, mais vous pouvez les configurer. Dans Application Performance Monitoring, vous pouvez configurer jusqu'à neuf attributs.

Par exemple, dans l'URL https://www.sample.com/calendar/render, attribute1 est renseigné avec la chaîne calendar.

Le titre du document de la page de l'application et le texte affiché à l'utilisateur peuvent être utiles pour la génération de rapports, mais ils peuvent contenir des informations d'identification personnelle dont la capture n'est pas autorisée par défaut. Pour capturer ces valeurs, vous pouvez utiliser le paramètre trackScreenText qui doit être défini explicitement sur True à l'aide du code suivant : window.apmrum.trackScreenText=true.

Vous pouvez modifier le titre de la page en définissant l'attribut apmrum.udfAttributeDt. Dans le cadre de la génération de rapports contextuels, les données de attribute1 sont les plus génériques, celles de udfAttributeDt sont plus spécifiques (niveau page) et celles de apmrum.udfAttribute2 sont censées pointer vers/décrire approximativement la zone d'un écran actif lors d'un appel AJAX ou la zone sur laquelle l'utilisateur clique.

Vous pouvez modifier la logique de dénomination des éléments en configurant l'attribut getElmLabelFn. Cette fonction reçoit l'élément (cible d'événement) sur lequel l'utilisateur a cliqué ou qu'il a activé en tant qu'argument. L'utilisation de l'attribut getElmLabelFn vous permet de mieux contrôler les informations des rapports et de réduire le risque d'exposition accidentelle des informations d'identification personnelle.

Voici un exemple :

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+"]"; 
}