webfür Web-Anfragenfrontendfür Front-end-JavaScriptbackgroundfür Background-Jobs

Das obige Bild zeigt Beispieldiagramme mit mehreren Namespaces, die eine GraphQL-API und den Web-Namespace aufteilen.
Namespaces konfigurieren
Namespaces werden durch den Code Ihrer Anwendung definiert. Mit kleinen Helfern können Sie den Namespace einer Aktion anpassen. Dieser Leitfaden zeigt Ihnen, wie Sie Anfragen in verschiedene Namespaces aufteilen. Für diesen Leitfaden erstellen wir einen “admin”- und einen “critical”-Namespace für Background-Jobs.Konfigurationen pro Sprache
Ruby
In Rails können wir denbefore_action-Callback verwenden, um eine Methode aufzurufen, bevor eine Anfrage verarbeitet wird. Im untenstehenden Codebeispiel haben wir einen before_action erstellt, der die Methode set_appsignal_namespace aufruft. In dieser Methode rufen wir die Appsignal.set_namespace-Hilfsmethode auf, um “admin” als Namespace für diese Anfrage zu konfigurieren. Dies funktioniert auch, wenn andere Controller Unterklassen des AdminController sind.
Appsignal.monitor-Helfer zu konfigurieren. Er akzeptiert den Namespace als Schlüsselwortargument.
set_namespace-Methode verwenden, um den Namespace der Transaktion zu konfigurieren, wie im untenstehenden Beispiel:
Ein Hinweis zur Helfer-Position
Die in diesem Leitfaden verwendetenset_namespace-Helfer können in jeder Aktion aufgerufen werden, die Teil eines AppSignal-Samples ist. Wir empfehlen, dies so früh wie möglich in der Anfrage oder im Background-Job aufzurufen, sodass die Transaktion mit dem angegebenen Namespace konfiguriert wird, bevor ein Fehler auftritt. Andernfalls, wenn ein Fehler auftritt oder etwas anderes den Prozess stoppt, wird die Transaktion an AppSignal gesendet, bevor der set_namespace-Helfer aufgerufen wird, und das Sample wird stattdessen unter dem Standard-Namespace gemeldet.
Mehr lesen
Elixir
In Phoenix-Controllern verwenden wir einplug, um eine Funktion aufzurufen, bevor die Anfrage von Phoenix verarbeitet wird. Im untenstehenden Codebeispiel verwenden wir plug, um die Funktion set_appsignal_namespace aufzurufen (Zeile 5). In dieser Funktion rufen wir den Appsignal.Span.set_namespace-Helfer auf, um den Namespace für diese Anfrage zu konfigurieren (Zeile 10).
Appsignal.Span.set_namespace am Anfang der Funktion vor anderem Code aufgerufen werden, wie in Zeile 4 des untenstehenden Codebeispiels:
Ein Hinweis zur Helfer-Position
Die in diesem Leitfaden verwendetenset_namespace-Helfer können in jeder Aktion aufgerufen werden, die eine AppSignal-Transaktion startet. Wir empfehlen, dies so früh wie möglich in der Anfrage oder im Background-Job aufzurufen, sodass die Transaktion mit dem angegebenen Namespace konfiguriert wird, bevor ein Fehler auftritt. Andernfalls, wenn ein Fehler auftritt – oder etwas anderes den Prozess stoppt – wird die Transaktion an AppSignal gesendet, bevor der set_namespace-Code aufgerufen wird, und sie wird stattdessen unter dem Standard-Namespace gemeldet.
Mehr lesen
- Dokumentation der Hilfsmethode
Appsignal.Span.set_namespace - Elixir-Namespace-Decorator
- Elixir-Namespace-Instrumentation-Helper
Node.js
In Node.js-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten verwendet, z. B. zu welchem Namespace ein Span gehört. Verwenden Sie die HilfsfunktionsetNamespace wie unten gezeigt, um den Namespace für den Trace des aktiven Spans festzulegen.
PHP
In PHP-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten verwendet, z. B. zu welchem Namespace ein Span gehört. Verwenden Sie die HilfsmethodeAppsignal::setNamespace, um den Namespace für den Trace des aktiven Spans festzulegen.
Python
In Python-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten verwendet, z. B. zu welchem Namespace ein Span gehört. Verwenden Sie die Hilfsfunktionset_namespace wie unten gezeigt, um den Namespace für den Trace des aktiven Spans festzulegen.
Front-end JavaScript
In Front-end-JavaScript-Anwendungen arbeitet AppSignal mit Spans, um Metadaten wie den Namespace eines Spans zu verfolgen. Beim Erstellen dieses Spans rufen SiesetNamespace mit einem String-Wert des gewünschten Namespace-Namens auf, wie im untenstehenden Beispiel gezeigt:
Go
In Go-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten verwendet, z. B. zu welchem Namespace ein Span gehört. Setzen Sie an einem beliebigen Span im Trace ein Attributappsignal.namespace mit einem String-Wert des neuen Namespaces.
appsignal.namespace-Attribut gefunden werden, ist der Span mit dem neuesten Zeitstempel maßgebend.
Mehr darüber lesen, wie benutzerdefinierte Instrumentierung in Go funktioniert.
Java
In Java-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten verwendet, z. B. zu welchem Namespace ein Span gehört. Setzen Sie an einem beliebigen Span im Trace ein Attributappsignal.namespace mit einem String-Wert des neuen Namespaces.
appsignal.namespace-Attribut gefunden werden, ist der Span mit dem neuesten Zeitstempel maßgebend.
Mehr darüber lesen, wie benutzerdefinierte Instrumentierung in Java funktioniert.