Controller#action_name, BackgroundWorker#perform usw.).
Wenn der automatisch ermittelte Aktionsname nicht ausreicht, können Sie den Aktionsnamen anpassen.
Dieser Leitfaden erklärt, wie Sie Aktionsnamen in verschiedenen Sprachintegrationen anpassen.
Warum Aktionsnamen anpassen?
- Bessere Übersichtlichkeit: Stellen Sie aussagekräftigere Namen für komplexe Vorgänge bereit.
- Angepasste Gruppierung: Steuern Sie, wie Anwendungsdaten in AppSignal organisiert werden.
Wenn automatische Aktionsnamen nicht ausreichen
Hier einige Beispiele, in denen automatisch generierte Aktionsnamen möglicherweise nicht ausreichen:- Catch-all-Routen: In Anwendungen, die Catch-all-Routen oder dynamisches Routing verwenden (wie
/api/:entity/:action), könnte der Standard-Aktionsname etwas Generisches wieApiController#dispatchsein. - Mehrzweck-Aufgaben: Background-Worker und Skripte, die je nach Parametern verschiedene Arten von Arbeit verarbeiten und alle unter demselben Aktionsnamen gruppiert würden (z. B.
GenericWorker#perform). - GraphQL-Resolver: Diese könnten alle unter einem einzigen Aktionsnamen (z. B.
POST /graphql) gruppiert werden, obwohl sie viele verschiedene Arten von Vorgängen verarbeiten.
Aktionen pro Sprache anpassen
Ruby
In Ruby-Anwendungen können Sie den HelferAppsignal.set_action verwenden, um den Aktionsnamen anzupassen:
Appsignal.set_action setzen.
Es ist auch möglich, den Aktionsnamen beim Erstellen einer Transaktion mit dem Helfer Appsignal.monitor zu konfigurieren. Er akzeptiert den Aktionsnamen als Schlüsselwortargument.
Elixir
In Elixir-Anwendungen können Sie die FunktionAppsignal.Span.set_name/2 verwenden, um den Aktionsnamen am Root-Span anzupassen:
Appsignal.Span.set_name/2 setzen.
Node.js
In Node.js-Anwendungen können Sie den HelfersetRootName aus dem AppSignal-Paket verwenden, um Aktionsnamen anzupassen:
setRootName setzen.
Python
In Python-Anwendungen können Sie den Helferset_root_name aus dem AppSignal-Paket verwenden, um Aktionsnamen anzupassen:
set_root_name setzen.
Front-end JavaScript
In Front-end-JavaScript-Anwendungen können Sie den HelfersetAction aus dem AppSignal-Paket verwenden, um Aktionsnamen anzupassen:
Go
In Go-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten wie dem Aktionsnamen verwendet. Setzen Sie an einem beliebigen Span im Trace ein Attributappsignal.action_name mit einem String-Wert, um den Aktionsnamen anzupassen:
appsignal.action_name am aktiven Span setzen.
Java
In Java-Anwendungen arbeitet AppSignal mit OpenTelemetry, das Spans zur Nachverfolgung von Metadaten wie dem Aktionsnamen verwendet. Setzen Sie an einem beliebigen Span im Trace ein Attributappsignal.action_name mit einem String-Wert, um den Aktionsnamen anzupassen:
appsignal.action_name am aktiven Span setzen.
PHP
In PHP-Anwendungen können Sie die HilfsmethodeAppsignal::setAction() aus dem AppSignal-Paket verwenden, um Aktionsnamen anzupassen:
appsignal.action_name am aktiven Span setzen.
Best Practices
Befolgen Sie beim Anpassen von Aktionsnamen diese Richtlinien:- Seien Sie konsistent: Verwenden Sie ein einheitliches Benennungsschema in Ihrer gesamten Anwendung.
- Seien Sie spezifisch: Fügen Sie relevante Informationen hinzu, die helfen, den Vorgang zu identifizieren.
- Vermeiden Sie hohe Kardinalität: Fügen Sie keine eindeutigen IDs oder Werte ein, die pro Ausführung eindeutige Aktionsnamen erzeugen würden.
- Verwenden Sie statische Zeichenketten: Interpolieren Sie niemals Variablen oder dynamische Daten in Aktionsnamen.
- Folgen Sie der Benennung des Codebase: Verwenden Sie Benennungsschemata wie
Controller#action, die zu Ihrer Anwendungsstruktur passen, damit die Stelle im Code gefunden werden kann. - Verwenden Sie stattdessen Tags oder Metadaten: Verwenden Sie für die Nachverfolgung variabler Informationen wie Zahlungsanbieter oder Benutzertypen Tags und Metadaten, anstatt diese in Aktionsnamen einzubinden.
Wie Sie verschiedene Vorgänge mit demselben Aktionsnamen behandeln
Anstatt dynamische Aktionsnamen zu erstellen, verwenden Sie eine Kombination aus:- Statische Aktionsnamen: Verwenden Sie aussagekräftige, aber statische Aktionsnamen.
- Tags: Fügen Sie Tags hinzu mit den variablen Informationen (z. B.
provider: stripe,operation_type: refund). - Benutzerdefinierte Attribute: Fügen Sie zusätzliche Metadaten hinzu zur Trace/Transaktion.
- Verwandte Vorgänge unter einem einzigen Aktionsnamen zu gruppieren.
- Nach Tags zu filtern und zu suchen.
- Eine übersichtliche Vorfallsübersicht zu pflegen.