Upgrade naar de laatste 3.x-serie
Voordat u upgradet naar AppSignal voor Ruby gem 4.0, upgrade naar de laatste gem uit de 3.x-serie. Deze versie print en logt deprecatiewaarschuwingen voor zaken die in versie 4.x van de Ruby gem verwijderd zijn. Voer de tests voor uw app uit waarmee de gem geïntegreerd is en los eventuele deprecatiewaarschuwingen en fouten op die u tegenkomt. Werk eerst in hetGemfile van de app de versievergrendeling bij naar ~> 3.0 en voer bundle update appsignal uit in een terminal in dezelfde directory als het Gemfile.
appsignal.log tijdens de werking ervan.
Upgrade naar de laatste 4.x-serie
Nadat alle deprecatiewaarschuwingen zijn opgelost met versie 3 van de Ruby gem, verwijdert u de versievergrendeling uit hetGemfile en voert u opnieuw bundle update appsignal uit om AppSignal voor Ruby naar versie 4 te updaten.
Wijzigingen
Hieronder staan alle noemenswaardige wijzigingen tussen de laatste Ruby gem versie 3 en de nieuwe versie 4. Loop ze door en werk uw applicatie bij zoals beschreven.Hoofdbibliotheek
- De methode
Appsignal.start_loggeris verwijderd. De logger wordt nu automatisch gestart bijAppsignal.start. Applicaties moeten deAppsignal.start_logger-aanroep verwijderen. - De configuratie van de AppSignal Ruby gem wordt bevroren nadat
Appsignal.startis aangeroepen. De configuratie kan niet meer worden gewijzigd nadat de Ruby gem is gestart. - De methode
Appsignal.startkan slechts één keer worden aangeroepen. Volgende aanroepen worden door de Ruby gem genegeerd.
Configuratie
- AppSignal start niet als het laden van het
config/appsignal.yml-bestand een fout veroorzaakt. Controleer de output van de applicatie of het bestandappsignal.logop eventuele waarschuwingen. - Configureer AppSignal in Ruby met de nieuwe
Appsignal.configurehelper. Apps die het patroonAppsignal.config = Appsignal::Config.new(...)gebruiken, moeten hun apps bijwerken om in plaats daarvan deze methode te gebruiken. - De methode
Appsignal.config =is verwijderd. Gebruik in plaats daarvan deAppsignal.configurehelper om AppSignal in Ruby te configureren. - De optie
skip_session_datais verwijderd. Gebruik in plaats daarvan desend_session_data-optie. - De optie
debugis verwijderd. Gebruik in plaats daarvan delog_level: debug-optie. - De optie
transaction_debug_modeis verwijderd. Gebruik in plaats daarvan delog_level: trace-optie. - De optie
working_dir_pathis verwijderd. Gebruik in plaats daarvan deworking_directory_path-optie.
Integraties
- De middleware
Appsignal::Rack::EventHandleris toegevoegd. Deze voegt de tagresponse_statustoe aan samples en houdt een metricresponse_statusbij met de response-statuscode van de request. Zie onze Rack-integratiedocumentatie voor meer informatie. - De middleware
Appsignal::Rack::InstrumentationMiddlewarevervangt de middlewareAppsignal::Rack::GenericInstrumentation. Deze nieuwe middleware stelt de action standaard niet in op “unknown”. Het is vereist om de actienaam in elke app-endpoint in te stellen metAppsignal.set_actionwanneer alleen de middlewareInstrumentationMiddlewarewordt gebruikt. Zie onze Rack-integratiedocumentatie voor meer informatie. Appsignal::Grape::Middlewareis hernoemd naarAppsignal::Rack::GrapeMiddleware.- De
Appsignal::Rack::StreamingListenerwordt vervangen doorAppsignal::Rack::InstrumentationMiddleware. - De
Appsignal::Hooks::SidekiqPluginis verwijderd zonder vervanging. - De Grape-, Hanami-, Padrino- en Sinatra-integraties gebruiken nu het
Appsignal.load-mechanisme om met deze libraries te integreren. Volg de installatiegidsen voor deze libraries om bij te werken naar het nieuwe laadmechanisme.- Sinatra
- Hanami
- Grape
- Padrino
- Gebruikt u meer dan één van deze libraries of mount u ze op een Rails-app? Volg ook deze gids.
- De errors en performanceproblemen die door onze Rake-integratie worden gerapporteerd, worden nu gerapporteerd onder de namespace “rake”.
Custom instrumentation
- De
Appsignal.report_errorhelper maakt het eenvoudiger om errors altijd te rapporteren, zonder het verschil tussen de helpersAppsignal.set_errorenAppsignal.send_errorte kennen.
- Meerdere errors kunnen op één transactie worden gerapporteerd met de
Appsignal.report_errorhelper. - De helpers
Appsignal.monitor_transactionenAppsignal.monitor_single_transactionworden vervangen door deAppsignal.monitorenAppsignal.monitor_and_stophelpers.- Let op: nieuwere versies van de Ruby gem hebben de
Appsignal.monitor_and_stophelper afgeschaft.
- Let op: nieuwere versies van de Ruby gem hebben de
- Nieuwe helpers voor het toevoegen van tags en sample-data (parameters, request headers, sessiegegevens en aangepaste gegevens) aan transacties. Zie de documentatie over customization helpers voor meer informatie.
- Sample-data wordt standaard aangevuld. Het toevoegen van extra parameters, request headers, sessiegegevens en aangepaste gegevens voegt deze samen met de eerder ingestelde waarden. Zie de documentatie over customization helpers voor meer informatie.
- De helper
Appsignal::Transaction::GenericRequestis verwijderd. Gebruik onze customization helpers om metadata aan de transactie toe te voegen. - De request environment keys
appsignal.actionenappsignal.routezijn verwijderd. Gebruik in plaats daarvan de helperAppsignal.set_actionom de actienaam in te stellen. - De argumenten
tagsennamespacezijn verwijderd uit de helpersAppsignal.set_errorenAppsignal.send_error. Gebruik in plaats daarvan de blockmethode om de transactie aan te passen voordat deze wordt verzonden. Zie onze gids over exception handling voor meer informatie. - De constante
Appsignal::Minutelyis hernoemd naarAppsignal::Probes. - De methode
Appsignal::Probes.probes.registeris vervangen doorAppsignal::Probes.register. Zie onze documentatie over minutely probes voor meer informatie. - De helpers
Appsignal.set_host_gaugeenAppsignal.set_process_gaugezijn zonder vervanging verwijderd. Tag in plaats daarvan de metric met de hostname of process-ID met behulp van deAppsignal.set_gaugehelper. - De
Appsignal.listen_for_errorhelper is zonder vervanging verwijderd. Rescue in plaats daarvan errors handmatig metrescue => erroren rapporteer ze met deAppsignal.report_errorhelper.
Interne onderdelen van de bibliotheek
Hier worden wijzigingen vermeld in interne onderdelen van de bibliotheek die mogelijk eerder in onze documentatie of supportcases zijn gebruikt. We raden aan hier niet meer op te vertrouwen. Dit zijn private componenten en kunnen op elk moment wijzigen. Breaking changes zijn onder andere:- De methoden
Appsignal::Transaction.createenAppsignal::Transaction.newaccepteren niet langer de argumentenid,requestenoptions. De transactie-ID wordt nu automatisch gegenereerd.- In plaats van handmatig een Transaction-object aan te maken, gebruikt u de
Appsignal.monitorhelper. - Om metadata op de transactie in te stellen, gebruikt u onze customization helpers.
- In plaats van handmatig een Transaction-object aan te maken, gebruikt u de
- De methode
Appsignal::Transaction#set_http_or_background_actionis verwijderd. Gebruik in plaats daarvan de helperAppsignal.set_action. - De methode
Appsignal::Transaction#set_http_or_background_queue_startis verwijderd. Gebruik in plaats daarvan de helperAppsignal::Transaction#set_queue_start. - De helper
AppSignal::Transaction#params=is verwijderd. Gebruik in plaats daarvan deAppsignal.add_paramshelper.