Attribute für tatsächliches Benutzermonitoring konfigurieren

Sie können Application Performance Monitoring so konfigurieren, dass verschiedene Endbenutzeraktivitäten besser klassifiziert werden können, indem Sie zusätzliche Attribute hinzufügen.

Im APM-Browser-Agent definierte Attribute werden den Bereichen hinzugefügt, die der Browser-Agent in den APM-Service hochlädt.

Die benutzerdefinierten Textattribute des APM-Browser-Agents werden im Trace-Explorer als Dimensionen dargestellt und können auch zur Definition von Metrikgruppen verwendet werden. Die benutzerdefinierten numerischen Attribute des APM-Browser-Agents werden im Trace-Explorer als Metriken dargestellt. Die numerischen Attribute können aggregiert und in Alerts im Monitoring-Service verwendet werden. Weitere Informationen zu Dimensionen im Trace-Explorer finden Sie unter Informationen zu Trace- und Span-Attributen.

Benutzerdefinierte Attribute konfigurieren

Die benutzerdefinierten Attribute können am einfachsten über die Eigenschaft udfAttributes des Objekts apmrum hinzugefügt werden.

Jedes Mal, wenn der Browser-Agent-Code eine Spanne erstellt, werden diese Daten gesucht und verwendet, um die Spanne mit den gewünschten Attributen zu füllen. Die Definition kann eine Zeichenfolge, eine Zahl oder eine Funktion sein (die eine Zeichenfolge oder eine Zahl zurückgibt).

Wenn eine Funktion verwendet wird, wird diese Funktion jedes Mal ausgeführt, wenn der Span erstellt wird und der Wert für das Attribut benötigt wird. Wenn Funktionen verwendet werden, um negative Auswirkungen auf die Performance zu vermeiden, ist eine besondere Aufmerksamkeit erforderlich.

Hinweis

Ein neues Attribut wird erst nach dem fünften Vorkommen und nur dann automatisch aktiviert, wenn auto-activate aktiviert ist. Andernfalls kann sie auf der Seite Span-Attribute manuell aktiviert werden.

Beispiel für eine einfache Konfiguration

Der folgende Code ist ein einfaches Beispiel, mit dem einige benutzerdefinierte Felder hinzugefügt werden können:
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(); } }
];
Die obige Beispielkonfiguration zeigt, wie ein Zeichenfolgenwert zugewiesen werden kann.
  • Das Attribut/die Dimension ‘mySiteId’ wird in der UI mit dem Wert ‘TheWebSiteId’ erstellt. Dies kann nützlich sein, wenn die HTML-Vorlage verschiedene Werte für sie zuweisen kann oder wenn verschiedene Deployments dies verwenden.
  • Das Attribut ‘resultsOnPage’ erstellt die Metrik mit diesem Namen in der UI. Der Vorteil eines numerischen Wertes besteht darin, dass er summiert werden kann und der Durchschnitt für ihn sowie andere numerische Funktionen berechnet werden kann.

Es ist wichtig zu beachten, dass so etwas wie eine productNumber nicht als Zahl angegeben werden sollte, sondern als Zeichenfolge verwendet werden sollte, um die Auswahl bestimmter Produkte sowie die Gruppierung nach dem Produkt zu ermöglichen. Beispiel: Wenn die productid oder productNumber in javascript als numerisches Feld verfügbar ist, muss sie in eine Zeichenfolge konvertiert werden, um sicherzustellen, dass sie von Application Performance Monitoring korrekt verarbeitet wird.

Komplexe Konfiguration - Beispiel

Das folgende Beispiel zeigt eine komplexere Konstruktion mit intermittierender Eigenschaft auf dem apmrum-Objekt zum Austausch von Daten:
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';

Die klarste Implementierung besteht darin, dass die Attribute an einem Ort generiert werden. Wenn ein bestimmter Wert bei bestimmten Aufrufen bekannt oder als Status festgelegt wird, können diese einer Eigenschaft im apmrum-Objekt zugewiesen werden, die mit ‘tmp’ im Namen beginnt. Dieser Wert kann in udfAttributes abgerufen werden, um den Wert zu melden. Wenn der Wert ‘undefined’ lautet, wird die Eigenschaft nicht gesendet.

Einschränkungen

Die bereitgestellten Daten beschränken sich darauf, dass die Berichterstattung sinnvoll ist. Hauptziel ist es sicherzustellen, dass willkürliche Daten nicht versehentlich übertragen werden.

Name Beschränkung Beschreibung
attrNameLenMax 50 Maximale Zeichenanzahl für einen Namen (durch Hinzufügen von Punkten zum Namen, wenn der angegebene Name zu lang ist)
attrValueLenMax 500 Maximale Anzahl von Zeichen im Wert (durch Hinzufügen von Punkten zum Wert erzwingen, wenn der angegebene Wert zu lang ist)
attrMax 50 Maximale Anzahl zulässige Flexfelder

Benutzernamensattribut konfigurieren

Sie müssen das Attribut apmrum.username festlegen, um die Filterung von Daten des tatsächlichen Benutzermonitorings nach Benutzername zu ermöglichen.

Bevor Sie fortfahren, müssen Sie folgende Schritte ausführen:
  • Ermitteln Sie die ursprüngliche Quelle des Benutzernamens. Dies ist von der überwachten Anwendung und dem verwendeten Authentifizierungsmechanismus abhängig.
  • Betten Sie Skripte auf den Anwendungsseiten (oder der Landingpage der Anwendung) ein. Weisen Sie den Benutzernamenswert der Variablen apmrum.username zu. Dadurch ist der Benutzername für das Reporting verfügbar.
Die ursprüngliche Quelle des Benutzernamens ist von der überwachten Anwendung und dem verwendeten Authentifizierungsmechanismus abhängig. Nachfolgend finden Sie einige Beispiele für die Erfassung von Benutzernamen in verschiedenen Umgebungen:
  • get username von Windows in Internet Explorer:
    var WinNetwork = new ActiveXObject("WScript.Network");
    window.apmrum || (apmrum = {} );
    apmrum.username =  WinNetwork.UserName
    
  • get username-Logik aus PHP-Code:
    window.apmrum || (apmrum = {} );
    apmrum.username = '<?php echo $username; ?>';
    
  • get username von der Seite:

    Sie können diese Option verwenden, wenn die Seite DOM verwendet und etwa Folgendes enthält: <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;
Hinweis

Wenn Sie Oracle-Anwendungen verwenden, finden Sie unter APM-Lösungen Details zum Erfassen des Benutzernamenattributs bei der Konfiguration der automatischen Injection in APM Agent, je nach spezifischer Oracle-Anwendung.

Benutzerdefinierte Attribute in Legacy-Umgebungen konfigurieren

Wenn Sie vom Oracle Management Cloud Application Performance Monitoring-Produkt zum Oracle Cloud Infrastructure (OCI) Application Performance Monitoring-Service migriert haben, können Sie dieselben Eigenschaften in der OCI-Konfiguration verwenden, wie in diesem Abschnitt gezeigt.

Die Werte für diese Attribute bieten genauere Informationen zur Anwendungsperformance am Benutzerstandort. Diese Attribute werden auf der Application Performance Monitoring-Benutzeroberfläche als Dimensionen angezeigt, die zum Filtern von Daten verwendet werden können. Um die Attribute hinzuzufügen, fügen Sie den folgenden JavaScript-Code auf den zu überwachenden Seiten ein:

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

Standardmäßig wird attribute1 mit dem Verzeichnis der obersten Ebene der URL aufgefüllt, und attribute2..9 bleibt leer und kann von Ihnen konfiguriert werden. In Application Performance Monitoring können Sie bis zu neun Attribute konfigurieren.

Beispiel: In der URL https://www.sample.com/calendar/render wird attribute1 mit der Zeichenfolge calendar aufgefüllt.

Der Dokumenttitel der Anwendungsseite und der für den Benutzer sichtbare Text können beim Reporting hilfreich sein, enthalten aber möglicherweise personenbezogene Daten, die nicht standardmäßig erfasst werden dürfen. Wenn Sie diese Werte erfassen möchten, können Sie die Einstellung trackScreenText verwenden, die wie folgt explizit auf "true" gesetzt werden muss: window.apmrum.trackScreenText=true.

Der Seitentitel kann durch Festlegen des Attributs apmrum.udfAttributeDt neu definiert werden. Im Kontextreporting sind die Daten in attribute1 am generischsten, udfAttributeDt ist spezifischer (Seitenebene), und apmrum.udfAttribute2 soll ungefähr auf den Bereich auf einem Bildschirm verweisen, der während eines AJAX-Aufrufs aktiv ist oder auf den geklickt wird.

Die Elementbenennungslogik kann durch Konfigurieren des Attributs getElmLabelFn neu definiert werden. Diese Funktion erhält das Element (Ereignisziel), das vom Benutzer als Argument durch Klicken aktiviert wurde. Durch Verwendung des Attributs getElmLabelFn haben Sie mehr Kontrolle über die gemeldeten Informationen und reduzieren das Risiko einer unbeabsichtigten Offenlegung personenbezogener Daten.

Beispiel:

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