Integrationen
Rails-Anwendungen
Stellen Sie für Rails-Anwendungen sicher, dass Sie vom:environment-Task abhängig sind. Dieser lädt die Rails-Anwendung in den Speicher und startet AppSignal als Teil der Anwendung.
Rakefile
DieRakefile-Datei Ihrer Rails-Anwendung sollte etwa wie im folgenden Beispiel aussehen. Dies sollte bereits der Fall sein, eine Änderung ist nicht erforderlich.
< 1, müssen Sie die Rake-Integration manuell laden. Sie wird ab Version 1.x automatisch geladen.)
Ruby-Anwendungen
Für reine Ruby-Anwendungen sind einige zusätzliche Schritte erforderlich, um AppSignal zu laden. AppSignal muss eingebunden, konfiguriert und geladen werden. Siehe auch unseren Integrationsleitfaden.Performance von Rake-Tasks überwachen
Um die Performance von Rake-Tasks und alle Events, die im Task auftreten, zu überwachen, konfigurieren Sie AppSignal mit der Konfigurationsoptionenable_rake_performance_instrumentation auf true.
Wenn diese Funktion aktiviert ist, werden alle Rake-Tasks instrumentiert und auf Ihren Plan angerechnet.
Stop-Anforderung
Für Rake-Tasks, die auf kurzlebigen Hosts laufen, ist es erforderlich, das AppSignal-Ruby-Gem zu stoppen, bevor der Rake-Prozess beendet wird. Dadurch wird sichergestellt, dass die Daten der Rake-Tasks an AppSignal gemeldet werden, bevor der Host heruntergefahren wird. Dieses Verhalten ist nur in solchen Szenarien erforderlich:- Wenn ein geplanter Rake-Task (ein Cron-Job) von einem Hosting-Dienst ausgeführt wird.
- Wenn ein Rake-Task auf einem Container ausgeführt wird, der startet, um diesen Rake-Task auszuführen, und beim Beenden des Rake-Tasks herunterfährt.
- Wenn ein Rake-Task auf einem Heroku-Runner oder bei ähnlichen Hosting-Anbietern ausgeführt wird.
enable_at_exit_hook gesteuert.
Stellen Sie sicher, dass diese Option für Skripte, die das Stoppen von AppSignal erfordern, auf true gesetzt ist, falls sie nicht automatisch erkannt wird.
Möglicherweise muss ein zusätzlicher sleep-Aufruf von einigen Sekunden hinzugefügt werden, um sicherzustellen, dass genügend Zeit zum Senden aller Daten zur Verfügung steht. Verwenden Sie bei Bedarf das at_exit-Beispiel aus dem folgenden Code.
Legacy-Stop-Anforderung
Wenn ein einzelner Rake-Task auf einem kurzlebigen Host ausgeführt wird (z. B. mit Docker-Containern, Kubernetes oder Heroku-Schedulern), gibt es drei Anforderungen. Dies garantiert, dass die AppSignal-Extension der App Zeit hat, die Daten an den Agent zu übermitteln, und der Agent Zeit hat, die Daten an unsere API zu senden, bevor (der Container) heruntergefahren wird. Die Anforderungen sind:Appsignal.stopmuss im Rake-Task aufgerufen werden.- Wenn das Performance-Monitoring für Rake-Tasks aktiviert ist, geschieht dies automatisch für alle Tasks.
running_in_containermuss in der Konfiguration auf true gesetzt sein.- Für die meisten Container-Typen wird
running_in_containerautomatisch auf true gesetzt, wenn es erkannt wird, für andere ist eine manuelle Konfiguration erforderlich.
- Für die meisten Container-Typen wird
- Ein Sleep von z. B. 10 Sekunden, um dem AppSignal-Agent Zeit zum Senden der Daten zu geben
Appsignal.stop im Rakefile aufgerufen wird:
Appsignal.stop-Aufruf übermittelt alle aktuell in der AppSignal-Extension befindlichen Transaktionsdaten an unseren Agent.
Anschließend schläft er 10 Sekunden, um dem Agent das Senden der Daten vor dem Herunterfahren zu ermöglichen.