Skripte überwachen
Ein AppSignal-Sample besteht aus zwei Elementen: einer Transaktion und Events. Bevor Sie Events mit unseren Instrumentierungs-Helpern melden, müssen Sie zuerst eine Transaktion erstellen. Verwenden Sie denAppsignal.monitor-Helper, um eine Transaktion zu erstellen und sie für die Dauer des angegebenen Blocks aktiv zu machen.
Der Monitor-Helper meldet den instrumentierten Codeblock als Performance-Messungen, die im Performance-Bereich in der AppSignal-UI aufgeführt werden, gruppiert nach Action-Name. Er verfolgt die Dauer des Blocks und meldet Exceptions, die darin auftreten.
monitor-Helper akzeptiert zwei Keyword-Argumente:
namespace(optional): Passen Sie den Namespace der Transaktion an. Standardmäßig “web”.action(erforderlich): Wir gruppieren die Samples des Skripts nach diesem Action-Namen für die Erstellung von Issues und Benachrichtigungen. Ohne Action-Name werden keine Informationen über den überwachten Block gemeldet, da wir nicht wissen, wie wir die Daten gruppieren sollen.
Action-Namen später setzen
Dasaction-Argument des Appsignal.monitor-Helpers kann auf nil belassen oder explizit auf :set_later gesetzt werden, jedoch nur, wenn der Helper Appsignal.set_action weiterhin innerhalb des Blocks aufgerufen wird, um den Action-Namen zu setzen. Ohne Action-Name werden keine Daten über den instrumentierten Block gemeldet. Diese Methode zum Setzen des Action-Namens kann hilfreich sein, wenn der Action-Name nur in einem Verarbeitungsschritt innerhalb des Blocks bestimmt werden kann.
Instrumentierungs-Events
Standardmäßig meldet das Ruby-Gem Events von unterstützten Integrationen. Diese Events erscheinen in der Event-Timeline. Verwenden Sie unsere Instrumentierungs-Helper, um Ihre eigenen Events zur Event-Timeline hinzuzufügen. Dies erzeugt eine detailliertere Aufschlüsselung dessen, was im überwachten Block geschieht.Stopp-Anforderung
Für Skripte, die auf kurzlebigen Hosts laufen, ist es erforderlich, das AppSignal Ruby-Gem zu stoppen, bevor das Skript beendet wird. Dies stellt sicher, dass die Daten aus dem Skript an AppSignal gemeldet werden, bevor der Host heruntergefahren wird. Dieses Verhalten ist nur in solchen Szenarien erforderlich:- Wenn ein geplanter Task (ein Cron-Job) von einem Hosting-Dienst ausgeführt wird.
- Wenn ein Skript auf einem Container ausgeführt wird, der zur Ausführung dieses Skripts startet und herunterfährt, wenn das Skript beendet wird.
- Wenn ein Skript auf einem Heroku-Runner oder ähnlichen Hosting-Anbietern ausgeführt wird.
enable_at_exit_hook-Option gesteuert.
Stellen Sie sicher, dass diese Option auf true gesetzt ist für Skripte, die ein Stoppen von AppSignal erfordern, falls dies nicht automatisch erkannt wird.
Möglicherweise müssen Sie einen zusätzlichen sleep-Aufruf von einigen Sekunden hinzufügen, um sicherzustellen, dass genügend Zeit ist, um alle Daten zu senden. Verwenden Sie bei Bedarf das at_exit-Verwendungsbeispiel aus dem unten stehenden Code.
Monitor-and-Stop-Helper
Wenn Ihr Prozess immer einen Task/Job ausführt und unmittelbar danach beendet wird, können Sie denAppsignal.monitor_and_stop-Helper verwenden. Dies stellt sicher, dass AppSignal nach der Ausführung des Blocks automatisch stoppt.