Upgrade auf die neueste 3.x-Serie
Bevor Sie auf das AppSignal für Ruby-Gem 4.0 upgraden, upgraden Sie auf das neueste Gem der 3.x-Serie. Diese Version gibt Verfallswarnungen aus und protokolliert sie für Dinge, die in Version 4.x des Ruby-Gems entfernt wurden. Führen Sie die Tests für Ihre App, in die das Gem integriert ist, aus und beheben Sie alle Verfallswarnungen und Fehler, denen Sie begegnen. Aktualisieren Sie zunächst imGemfile der App die Versionssperre auf ~> 3.0 und führen Sie bundle update appsignal in einem Terminal im selben Verzeichnis wie das Gemfile aus.
appsignal.log protokolliert werden.
Upgrade auf die neueste 4.x-Serie
Nachdem alle Verfallswarnungen mit Version 3 des Ruby-Gems behoben wurden, entfernen Sie die Versionssperre aus demGemfile und führen Sie bundle update appsignal erneut aus, um AppSignal für Ruby auf Version 4 zu aktualisieren.
Änderungen
Nachstehend finden Sie alle nennenswerten Änderungen zwischen der neuesten Ruby-Gem-Version 3 und der neuen Version 4. Bitte gehen Sie sie durch und aktualisieren Sie Ihre Anwendung wie beschrieben.Hauptbibliothek
- Die Methode
Appsignal.start_loggerwurde entfernt. Der Logger wird jetzt automatisch beiAppsignal.startgestartet. Anwendungen müssen den Aufruf vonAppsignal.start_loggerentfernen. - Die Konfiguration des AppSignal Ruby-Gems wird eingefroren, nachdem
Appsignal.startaufgerufen wurde. Die Konfiguration kann nach dem Start des Ruby-Gems nicht mehr geändert werden. - Die Methode
Appsignal.startkann nur einmal aufgerufen werden. Nachfolgende Aufrufe werden vom Ruby-Gem ignoriert.
Konfiguration
- AppSignal startet nicht, wenn das Laden der
config/appsignal.yml-Datei einen Fehler verursacht. Prüfen Sie die Ausgabe der Anwendung oder dieappsignal.log-Datei auf Warnungen. - Konfigurieren Sie AppSignal in Ruby mit dem neuen
Appsignal.configure-Helper. Apps, die das MusterAppsignal.config = Appsignal::Config.new(...)verwenden, müssen ihre Apps aktualisieren, um stattdessen diese Methode zu verwenden. - Die Methode
Appsignal.config =wurde entfernt. Verwenden Sie stattdessen denAppsignal.configure-Helper, um AppSignal in Ruby zu konfigurieren. - Die Option
skip_session_datawurde entfernt. Verwenden Sie stattdessen diesend_session_data-Option. - Die Option
debugwurde entfernt. Verwenden Sie stattdessen die Optionlog_level: debug. - Die Option
transaction_debug_modewurde entfernt. Verwenden Sie stattdessen die Optionlog_level: trace. - Die Option
working_dir_pathwurde entfernt. Verwenden Sie stattdessen dieworking_directory_path-Option.
Integrationen
- Die Middleware
Appsignal::Rack::EventHandlerwurde hinzugefügt. Sie fügt das Tagresponse_statuszu Samples hinzu und verfolgt eineresponse_status-Metrik mit dem HTTP-Statuscode der Antwort der Anfrage. Weitere Informationen finden Sie in unserer Rack-Integrationsdokumentation. - Die Middleware
Appsignal::Rack::InstrumentationMiddlewareersetzt die MiddlewareAppsignal::Rack::GenericInstrumentation. Diese neue Middleware setzt die Action standardmäßig nicht auf “unknown”. Es ist erforderlich, den Action-Namen in jedem App-Endpunkt mitAppsignal.set_actionzu setzen, wenn nur dieInstrumentationMiddlewareverwendet wird. Weitere Informationen finden Sie in unserer Rack-Integrationsdokumentation. Appsignal::Grape::Middlewarewurde inAppsignal::Rack::GrapeMiddlewareumbenannt.Appsignal::Rack::StreamingListenerwurde durchAppsignal::Rack::InstrumentationMiddlewareersetzt.Appsignal::Hooks::SidekiqPluginwurde ersatzlos entfernt.- Die Integrationen für Grape, Hanami, Padrino und Sinatra verwenden jetzt den
Appsignal.load-Mechanismus, um sich in diese Bibliotheken zu integrieren. Bitte folgen Sie den Installationsanleitungen für diese Bibliotheken, um auf den neuen Lademechanismus umzustellen.- Sinatra
- Hanami
- Grape
- Padrino
- Verwenden Sie mehr als eine dieser Bibliotheken oder mounten Sie sie auf einer Rails-App? Folgen Sie auch diesem Leitfaden.
- Die von unserer Rake-Integration gemeldeten Fehler und Performance-Probleme werden jetzt unter dem Namespace “rake” gemeldet.
Benutzerdefinierte Instrumentierung
- Der
Appsignal.report_error-Helper macht es einfacher, Fehler immer zu melden, ohne den Unterschied zwischen den HelpernAppsignal.set_errorundAppsignal.send_errorzu kennen.
- Mehrere Fehler können in einer Transaktion mit dem
Appsignal.report_error-Helper gemeldet werden. - Die Helper
Appsignal.monitor_transactionundAppsignal.monitor_single_transactionwurden durch die HelperAppsignal.monitorundAppsignal.monitor_and_stopersetzt.- Hinweis: In neueren Versionen des Ruby-Gems wurde der Helper
Appsignal.monitor_and_stopals veraltet markiert.
- Hinweis: In neueren Versionen des Ruby-Gems wurde der Helper
- Neue Helper zum Hinzufügen von Tags und Sample-Daten (Parameter, Request-Header, Session-Daten und benutzerdefinierte Daten) zu Transaktionen. Weitere Informationen finden Sie in der Dokumentation zu den Anpassungs-Helpern.
- Sample-Daten werden standardmäßig ergänzt. Das Hinzufügen weiterer Parameter, Request-Header, Session-Daten und benutzerdefinierter Daten wird mit den zuvor gesetzten Werten zusammengeführt. Weitere Informationen finden Sie in der Dokumentation zu den Anpassungs-Helpern.
- Der Helper
Appsignal::Transaction::GenericRequestwurde entfernt. Verwenden Sie unsere Anpassungs-Helper, um der Transaktion Metadaten hinzuzufügen. - Die Request-Environment-Schlüssel
appsignal.actionundappsignal.routewurden entfernt. Verwenden Sie stattdessen den HelperAppsignal.set_action, um den Action-Namen zu setzen. - Die Argumente
tagsundnamespacewurden aus den HelpernAppsignal.set_errorundAppsignal.send_errorentfernt. Verwenden Sie stattdessen die Block-Methode, um die Transaktion vor dem Senden anzupassen. Weitere Informationen finden Sie in unserem Leitfaden zur Exception-Handhabung. - Die Konstante
Appsignal::Minutelywurde inAppsignal::Probesumbenannt. - Die Methode
Appsignal::Probes.probes.registerwurde durchAppsignal::Probes.registerersetzt. Weitere Informationen finden Sie in unserer Dokumentation zu Minutely-Probes. - Die Helper
Appsignal.set_host_gaugeundAppsignal.set_process_gaugewurden ersatzlos entfernt. Taggen Sie die Metrik stattdessen mit dem Hostnamen oder der Prozess-ID mit demAppsignal.set_gauge-Helper. - Der Helper
Appsignal.listen_for_errorwurde ersatzlos entfernt. Fangen Sie Fehler stattdessen manuell mitrescue => errorab und melden Sie sie mit demAppsignal.report_error-Helper.
Bibliotheks-Interna
Hier aufgeführt sind Änderungen an Bibliotheks-Interna, die zuvor möglicherweise in unserer Dokumentation oder in Support-Fällen verwendet wurden. Wir empfehlen, sich nicht mehr auf diese zu verlassen. Dies sind private Komponenten und können sich jederzeit ändern. Breaking Changes sind:- Die Methoden
Appsignal::Transaction.createundAppsignal::Transaction.newakzeptieren die Argumenteid,requestundoptionsnicht mehr. Die Transaktions-ID wird jetzt automatisch generiert.- Anstatt ein Transaction-Objekt manuell zu erstellen, verwenden Sie stattdessen den
Appsignal.monitor-Helper. - Um Metadaten auf der Transaktion zu setzen, verwenden Sie unsere Anpassungs-Helper.
- Anstatt ein Transaction-Objekt manuell zu erstellen, verwenden Sie stattdessen den
- Die Methode
Appsignal::Transaction#set_http_or_background_actionwurde entfernt. Verwenden Sie stattdessen den HelperAppsignal.set_action. - Die Methode
Appsignal::Transaction#set_http_or_background_queue_startwurde entfernt. Verwenden Sie stattdessen den HelperAppsignal::Transaction#set_queue_start. - Der Helper
AppSignal::Transaction#params=wurde entfernt. Verwenden Sie stattdessen denAppsignal.add_params-Helper.