Zusätzliche APM-Browser-Agent-Injection-Einstellungen konfigurieren

Sobald dieses APM-Browser-Agent-Feature aktiviert ist, können Sie die Standardeinstellungen anpassen und je nach Ihren Anforderungen weitere hinzufügen.

ProbeConfig.acml-Datei aktualisieren

In der Datei ProbeConfig.acml befindet sich ein Abschnitt mit dem Namen INJECTION, in dem zusätzliche Einstellungen zur Anpassung der Injektion des Browser-Agent verfügbar sind. Jede Einstellung hat einen Kommentar, der erklärt, was sie tut.

INJECTION:
  ### Exclusion Settings ###
  # URLs that end in these extensions will be skipped for browser agent injection.
  excluded_extensions:
...
Mit diesen Einstellungen können Sie:
  • Legen Sie fest, auf welche Seiten der Browser-Agent injiziert werden soll oder nicht.

  • Die Position auf der Seite, in der der der Browser-Agent injiziert werden soll.

  • Erfahren Sie, wie Sie auf Fälle reagieren, in denen der Anwendungsserver nicht die erforderlichen Informationen für die Injektion des Browser-Agents bereitstellt. Beispiel: Zeichensatz und MIME-Typ der Seite.

Alle diese Einstellungen können aktualisiert werden, ohne dass der Anwendungsserver neu gestartet werden muss.

Das Standardverhalten ist:
  • Der Browser-Agent wird nach dem <head>-Tag der HTML-Seite injiziert.

    Dies wird durch die Einstellungen inject_location_tag und inject_before gesteuert.

    Wenn das Tag fehlt, wird es an das Ende der Datei angehängt. Dies wird durch die Einstellung inject_mode gesteuert.

  • Nur MIME-Typen "text/html" und "application/xhtml+xml" werden für die Injektion berücksichtigt.

    Dies wird durch die Einstellung valid_mime_types gesteuert.

  • URLs, die insbesondere Dateierweiterungen wie json, txt, gif und andere enden, überspringen die Injection von Browser-Agents.

    Dies wird durch die Einstellung excluded_extensions gesteuert.

  • Anwendungen mit bestimmten Kontext-Roots überspringen die Injection von Browser-Agents.

    Dies wird durch die Einstellung excluded_context_roots gesteuert.

BrowserAgentTemplate.txt aktualisieren

Diese Datei bestimmt, welcher HTML-Code in die Seite eingefügt wird.

Das Standardverhalten für APM Agent 1.3 und eine höhere Version ist:
<script type="application/javascript">
window.apmrum = (window.apmrum || {});
window.apmrum.serviceName='@@SERVICE_NAME@@';
window.apmrum.webApplication='@@WEB_APPLICATION@@';
window.apmrum.ociDataUploadEndpoint='@@UPLOAD_ENDPOINT@@';
window.apmrum.OracleAPMPublicDataKey='@@PUBLIC_KEY@@';
</script>
<script type="application/javascript"async crossorigin="anonymous"src="@@UPLOAD_ENDPOINT@@/static/jslib/apmrum.min.js"></script>

Die von @@ umgebenen Werte werden vor der Injektion ersetzt, und sie sind Werte, die aus der Datei AgentConfig.properties abgerufen werden.

Diese Vorlage kann angepasst werden, um Konfigurationen auf Browsermittlungsseite zu berücksichtigen, die in den anderen Abschnitten dieser Dokumentation aufgeführt werden, wie window.apmrum.rewriteRules. Weitere Informationen finden Sie unter Personally Identible Information ausblenden.

Alle an dieser Datei vorgenommenen Änderungen werden automatisch übernommen und erfordern keinen Neustart des Anwendungsservers.

MIME-Typen aktualisieren

Damit Injection den im Header "Content-Type" in der HTTP-Antwort angegebenen MIME-Typ erfolgreich ausführen kann, muss immer "text/html" enthalten sein. Es dürfen keine Probleme/Probleme auftreten, wenn dieser Header korrekt festgelegt ist.

Einige Anwendungen reagieren jedoch mit einem falschen MIME-Typ oder ohne MIME-Typ. Wenn kein MIME-Typ angegeben wird, verwendet die Injection des Browser-Agents den Parameter "default_mime_type" in der Datei ProbeConfig.acml, um zu entscheiden, was zu tun ist. Der Standardwert für diesen Parameter ist "text/plain". Daher wird die Injection nicht in allen Fällen ausgeführt, in denen der Header fehlt.

Wenn Sie in diesen Fällen Injection verwenden möchten, müssen Sie den Parameter "default_mime_type" in "text/html" ändern, damit diese Injection zulässig ist.

Wenn der Header "Content-Type" in der HTTP-Antwort "text/html" enthält, der tatsächliche Inhalt jedoch nicht "HTML" ist, verwenden wir einen ausgefeilten Algorithmus zur signatur-/heuristischen Inhaltsanalyse, um zu entscheiden, ob er injiziert wird oder nicht. Wenn der Inhalt eines Typs festgelegt wird, der kein HTML ist, werden keine Inhalte in den Stream aufgenommen.