Mise à niveau vers la dernière série 3.x
Avant de passer à la gem AppSignal pour Ruby 4.0, effectuez la mise à niveau vers la dernière gem de la série 3.x. Cette version imprimera et enregistrera des avertissements de dépréciation pour les éléments qui ont été supprimés dans la version 4.x de la gem Ruby. Exécutez les tests de votre application avec laquelle la gem est intégrée et corrigez tous les avertissements et erreurs de dépréciation que vous pourriez rencontrer. Tout d’abord, dans leGemfile de l’application, mettez à jour le verrou de version vers ~> 3.0 et exécutez bundle update appsignal dans un terminal, dans le même répertoire que le Gemfile.
appsignal.log pendant son fonctionnement.
Mise à niveau vers la dernière série 4.x
Une fois que tous les avertissements de dépréciation sont résolus à l’aide de la version 3 de la gem Ruby, supprimez le verrou de version duGemfile et exécutez à nouveau bundle update appsignal pour mettre à jour AppSignal pour Ruby vers la version 4.
Changements
Vous trouverez ci-dessous tous les changements notables entre la dernière version 3 de la gem Ruby et la nouvelle version 4. Veuillez les parcourir et mettre à jour votre application comme décrit.Bibliothèque principale
- La méthode
Appsignal.start_loggerest supprimée. Le logger est désormais démarré automatiquement parAppsignal.start. Les applications doivent supprimer l’appel àAppsignal.start_logger. - La configuration de la gem Ruby AppSignal est figée après l’appel à
Appsignal.start. La configuration ne peut plus être modifiée après le démarrage de la gem Ruby. - La méthode
Appsignal.startne peut être appelée qu’une seule fois. Les appels suivants sont ignorés par la gem Ruby.
Configuration
- AppSignal ne démarrera pas si le chargement du fichier
config/appsignal.ymlprovoque une erreur. Vérifiez la sortie de l’application ou le fichierappsignal.logpour tout avertissement. - Configurez AppSignal en Ruby avec le nouvel assistant
Appsignal.configure. Les applications utilisant le patternAppsignal.config = Appsignal::Config.new(...)doivent mettre à jour leurs applications pour utiliser cette méthode à la place. - La méthode
Appsignal.config =est supprimée. Utilisez plutôt l’assistantAppsignal.configurepour configurer AppSignal en Ruby. - L’option
skip_session_dataest supprimée. Utilisez plutôt l’optionsend_session_data. - L’option
debugest supprimée. Utilisez plutôt l’optionlog_level: debug. - L’option
transaction_debug_modeest supprimée. Utilisez plutôt l’optionlog_level: trace. - L’option
working_dir_pathest supprimée. Utilisez plutôt l’optionworking_directory_path.
Intégrations
- Le middleware
Appsignal::Rack::EventHandlerest ajouté. Il ajoutera le tagresponse_statusaux échantillons et suivra une métriqueresponse_statusavec le code de statut de réponse de la requête. Consultez notre documentation sur l’intégration Rack pour plus d’informations. - Le middleware
Appsignal::Rack::InstrumentationMiddlewareremplace le middlewareAppsignal::Rack::GenericInstrumentation. Ce nouveau middleware ne définit pas l’action sur « unknown » par défaut. Il est nécessaire de définir le nom de l’action dans chaque endpoint de l’application avecAppsignal.set_actionlorsque seul le middlewareInstrumentationMiddlewareest utilisé. Consultez notre documentation sur l’intégration Rack pour plus d’informations. Appsignal::Grape::Middlewareest renommé enAppsignal::Rack::GrapeMiddleware.Appsignal::Rack::StreamingListenerest remplacé parAppsignal::Rack::InstrumentationMiddleware.Appsignal::Hooks::SidekiqPluginest supprimé sans remplacement.- Les intégrations Grape, Hanami, Padrino et Sinatra utilisent désormais le mécanisme
Appsignal.loadpour s’intégrer à ces bibliothèques. Veuillez suivre les guides d’installation pour ces bibliothèques afin de passer au nouveau mécanisme de chargement.- Sinatra
- Hanami
- Grape
- Padrino
- Vous utilisez plusieurs de ces bibliothèques ou les montez sur une application Rails ? Suivez également ce guide.
- Les erreurs et problèmes de performance signalés par notre intégration Rake sont désormais signalés sous le namespace « rake ».
Instrumentation personnalisée
- L’assistant
Appsignal.report_errorfacilite le signalement systématique des erreurs, sans connaître la différence entre les assistantsAppsignal.set_erroretAppsignal.send_error.
- Plusieurs erreurs peuvent être signalées sur une seule transaction avec l’assistant
Appsignal.report_error. - Les assistants
Appsignal.monitor_transactionetAppsignal.monitor_single_transactionsont remplacés par les assistantsAppsignal.monitoretAppsignal.monitor_and_stop.- Remarque : les versions plus récentes de la gem Ruby ont déprécié l’assistant
Appsignal.monitor_and_stop.
- Remarque : les versions plus récentes de la gem Ruby ont déprécié l’assistant
- Nouveaux assistants pour ajouter des tags et des données d’échantillon (paramètres, en-têtes de requête, données de session et données personnalisées) aux transactions. Consultez la documentation des assistants de personnalisation pour plus d’informations.
- Les données d’échantillon sont modifiées par défaut. L’ajout de paramètres, d’en-têtes de requête, de données de session et de données personnalisées supplémentaires les fusionnera avec les valeurs précédemment définies. Consultez la documentation des assistants de personnalisation pour plus d’informations.
- L’assistant
Appsignal::Transaction::GenericRequestest supprimé. Utilisez nos assistants de personnalisation pour ajouter des métadonnées à la transaction. - Les clés d’environnement de requête
appsignal.actionetappsignal.routesont supprimées. Utilisez plutôt l’assistantAppsignal.set_actionpour définir le nom de l’action. - Les arguments
tagsetnamespaceont été supprimés des assistantsAppsignal.set_erroretAppsignal.send_error. Utilisez plutôt la méthode block pour personnaliser la transaction avant qu’elle ne soit envoyée. Consultez notre guide de gestion des exceptions pour plus d’informations. - La constante
Appsignal::Minutelyest renommée enAppsignal::Probes. - La méthode
Appsignal::Probes.probes.registerest remplacée parAppsignal::Probes.register. Consultez notre documentation sur les minutely probes pour plus d’informations. - Les assistants
Appsignal.set_host_gaugeetAppsignal.set_process_gaugesont supprimés sans remplacement. À la place, taguez la métrique avec le nom d’hôte ou l’ID du processus à l’aide de l’assistantAppsignal.set_gauge. - L’assistant
Appsignal.listen_for_errorest supprimé sans remplacement. À la place, attrapez manuellement les erreurs à l’aide derescue => erroret signalez-les avec l’assistantAppsignal.report_error.
Internes de la bibliothèque
Sont répertoriés ici les changements apportés aux composants internes de la bibliothèque qui ont pu être précédemment utilisés dans notre documentation ou nos dossiers de support. Nous vous recommandons de ne plus vous appuyer dessus. Ce sont des composants privés et peuvent changer à tout moment. Les changements importants incluent :- Les méthodes
Appsignal::Transaction.createetAppsignal::Transaction.newn’acceptent plus les argumentsid,requestetoptions. L’ID de transaction est désormais généré automatiquement.- Au lieu de créer manuellement un objet Transaction, utilisez plutôt l’assistant
Appsignal.monitor. - Pour définir des métadonnées sur la transaction, utilisez nos assistants de personnalisation.
- Au lieu de créer manuellement un objet Transaction, utilisez plutôt l’assistant
- La méthode
Appsignal::Transaction#set_http_or_background_actionest supprimée. Utilisez plutôt l’assistantAppsignal.set_action. - La méthode
Appsignal::Transaction#set_http_or_background_queue_startest supprimée. Utilisez plutôt l’assistantAppsignal::Transaction#set_queue_start. - L’assistant
AppSignal::Transaction#params=est supprimé. Utilisez plutôt l’assistantAppsignal.add_params.