Configurer les attributs de surveillance des utilisateurs réels

Vous pouvez configurer Application Performance Monitoring pour permettre une meilleure classification des différentes activités des utilisateurs finaux en ajoutant des attributs supplémentaires.

Les attributs définis dans l'agent de navigateur APM sont ajoutés aux portées 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 trace et 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 trace. Les attributs numériques peuvent être agrégés et utilisés dans les alertes du service de surveillance. Pour plus de détails sur les dimensions dans l'explorateur de trace, voir À propos des attributs de trace et d'intervalle.

Configurer les attributs personnalisés

Les attributs personnalisés peuvent être ajoutés très facilement au moyen de la propriété udfAttributes de l'objet apmrum.

Chaque fois que le code de l'agent du navigateur crée une plage, ces données sont recherchées et utilisées pour alimenter 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 nécessaire. Une attention particulière est requise lorsque vous utilisez des fonctions pour éviter un impact négatif sur les performances.

Note

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

Exemple de configuration simple

Le code suivant est un exemple de base pouvant ê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/dimension ‘mySiteId’ sera créé dans l'interface utilisateur avec la valeur ‘TheWebSiteId’. Cela peut s'avérer utile si le modèle HTML permet d'affecter différentes valeurs ou si des déploiements différents l'utilisent.
  • L'attribut ‘resultsOnPage’ crée 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 un 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 le produit. Par exemple, lorsque le produit ou productNumber est disponible dans javascript en tant que champ numérique, il doit être converti en chaîne pour s'assurer qu'Application Performance Monitoring le gère correctement.

Exemple de configuration complexe

L'exemple suivant montre une construction plus complexe avec une propriété intermittente sur l'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';

Limplémentation la plus claire consiste à générer les attributs en un seul clic. Si une valeur particulière est connue ou définie comme un état lors d'appels spécifiques, elle peut être affectée à une propriété de l'objet apmrum qui commence par ‘tmp’ dans le nom. Cette valeur peut être sélectionnée dans udfAttributes pour déclarer la valeur. Lorsque la valeur est ‘undefined’, la propriété ne sera pas envoyée.

Limitations

Les données fournies sont limitées à ce que les rapports soient pertinents. L'objectif principal est de s'assurer que les données arbitraires ne sont pas poussées accidentellement.

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

Configurer l'attribut de nom d'utilisateur

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

Avant de continuer, vous devez effectuer les opérations suivantes :
  • Identifier la source initiale du nom d'utilisateur. Cela dépend de l'application surveillée et du mécanisme d'authentification utilisé.
  • Intégrer des scripts dans les pages de l'application (ou la page de renvoi de l'application). Affecter la valeur du nom d'utilisateur à la variable apmrum.username. Le nom d'utilisateur est ainsi disponible pour la production de rapports.
La source initiale du nom d'utilisateur dépend de l'application surveillée et du mécanisme d'authentification utilisé. Voici quelques exemples de la manière dont les noms d'utilisateur peuvent être collectés dans différents environnements :
  • get username de Windows dans Internet Explorer :
    var WinNetwork = new ActiveXObject("WScript.Network");
    window.apmrum || (apmrum = {} );
    apmrum.username =  WinNetwork.UserName
    
  • Logique get username 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 quelque chose comme : <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;
Note

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

Configurer les attributs personnalisés dans les environnements existants

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

Les valeurs de ces attributs fournissent des informations plus précises sur la performance des applications sur le site de l'utilisateur. Ces attributs sont affichés en tant que dimensions dans l'interface utilisateur du service de surveillance de la performance des applications, qui peuvent être utilisées pour filtrer les données. Pour ajouter les attributs, incluez le code JavaScript suivant dans les 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, attribute1 sera alimenté avec le répertoire de niveau supérieur de l'URL et attribute2..9 resteront vides et pourront être configurés par vous. Dans le service de surveillance de la performance des applications, vous pouvez configurer jusqu'à neuf attributs.

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

Le titre du document de la page d'application et le texte visible par l'utilisateur peuvent être utiles pour la production de rapports, mais ils peuvent contenir des informations d'identification personnelle (IIP) dont la saisie n'est pas autorisée par défaut. Si vous voulez saisir ces valeurs, vous pouvez utiliser le paramètre trackScreenText qui doit être réglé explicitement à la valeur "true" à l'aide du code suivant : window.apmrum.trackScreenText=true.

Le titre de la page peut être redéfini en configurant l'attribut apmrum.udfAttributeDt. Dans la production de rapports contextuels, les données de attribute1 sont les plus génériques, udfAttributeDt est plus spécifique (niveau de la page) et apmrum.udfAttribute2 est censé pointer ou décrire de manière approximative la zone d'un écran qui est active pendant un appel AJAX ou la zone sur laquelle l'utilisateur a cliqué.

La logique d'attribution de nom aux éléments peut être redéfinie en configurant l'attribut getElmLabelFn. Cette fonction reçoit l'élément (cible d'événement) activé par l'utilisateur comme argument ou sur lequel il a cliqué. En utilisant l'attribut getElmLabelFn, vous avez plus de contrôle sur les informations faisant l'objet du rapport et cela réduit 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+"]"; 
}