> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upgraden van AppSignal voor Ruby gem 2.x naar 3.x

AppSignal voor Ruby 3.0 is een major release omdat het de manier verandert waarop andere gems geïnstrumenteerd worden, de ondersteuning voor oudere Ruby-versies verwijdert, de geïntegreerde JavaScript-integratie verwijdert en eerder verouderde modules verwijdert. Volg deze gids om het upgradeproces soepeler te laten verlopen.

## Upgrade naar de laatste 2.x-serie

Voordat u upgradet naar AppSignal voor Ruby gem 3.0, upgrade dan eerst naar de laatste gem uit de 2.x-serie. Deze versie logt en print deprecatiewaarschuwingen voor zaken die in versie 3.x van de gem verwijderd worden. Voer de tests uit voor uw app waarmee de gem geïntegreerd is, los eventuele deprecatiewaarschuwingen en fouten op die u tegenkomt. Deze upgrade-stap maakt het upgraden gemakkelijker.

Werk eerst in het `Gemfile` van de app de versievergrendeling bij naar `~> 2.0` en voer `bundle update appsignal` uit in een terminal in dezelfde directory als het `Gemfile`.

<CodeGroup>
  ```ruby Ruby theme={null}
  # Gemfile

  gem "appsignal", "~> 2.0"
  ```
</CodeGroup>

Nadat alle deprecatiewaarschuwingen zijn opgelost die tijdens het testen en draaien van de app verschenen, verwijdert u de versievergrendeling uit het `Gemfile` en voert u opnieuw `bundle update appsignal` uit om te updaten naar AppSignal voor Ruby 3.0.

<CodeGroup>
  ```ruby Ruby theme={null}
  # Gemfile

  gem "appsignal"
  ```
</CodeGroup>

## Ondersteuning voor Ruby 1.9 verwijderd

De 3.x-serie van de Ruby gem ondersteunt Ruby 1.9 en oudere versies niet meer. Ruby 1.9 is End of Life sinds [23 februari 2015](https://www.ruby-lang.org/en/news/2015/02/23/support-for-ruby-1-9-3-has-ended/) en zou niet meer in productie gebruikt moeten worden. Toekomstige versies van de AppSignal voor Ruby gem laten mogelijk andere End of Life versies van Ruby vallen.

Upgrade naar een nieuwere versie van Ruby om AppSignal voor Ruby in de toekomst te blijven gebruiken.

## Compatibiliteit met andere instrumentation-gems

In de 3.x-serie heeft de AppSignal voor Ruby gem de interne werking veranderd van al zijn integraties met andere gems. In plaats van methodes te aliassen om instrumentation te bieden, gebruikt de 3.x-serie `Module.prepend` (geïntroduceerd in Ruby 2.0), een methode om Ruby-modules in klassen op te nemen en ervoor te zorgen dat de geïncludeerde module als eerste wordt aangeroepen.

**Wat betekent dit voor uw apps?**

Andere instrumentation-gems kunnen ofwel methode-aliasing ofwel de `Module.prepend`-methode gebruiken om instrumentation te bieden. Deze instrumentation-methoden zijn **incompatibel** met elkaar als ze op dezelfde Ruby-methoden gebruikt worden. Als de ene gem methode-aliasing gebruikt en de andere `Module.prepend`, raakt de app in een lus en wordt een [`stack level too deep (SystemStackError)`][module prepend issue] geworpen.

Het Ruby-ecosysteem lijkt te bewegen richting de `Module.prepend`-methode voor het bieden van instrumentation, dus heeft de AppSignal gem zijn instrumentation-methode bijgewerkt om beter compatibel te zijn met andere gems.

Als een app dit probleem begint te ondervinden met de AppSignal voor Ruby 3.x-serie, upgrade dan andere APM- en error-reporting gems in de app. Mogelijk zijn ze ook bijgewerkt om met `Module.prepend` te instrumenteren.

Als het probleem zich blijft voordoen, neem dan contact op met de onderhouders van de andere gems om hun implementatie naar `Module.prepend` bij te werken, en downgrade de AppSignal voor Ruby gem voorlopig naar de 2.x-serie. [Laat het ons ook weten][contact], zodat we een lijst met compatibele gems kunnen bijhouden.

Voor meer informatie en achtergrond van deze wijziging, zie [issue 603 in de issue tracker van de Ruby gem][module prepend issue].

## Verplaatste modules

Sommige modules in de gem zijn verplaatst of hernoemd. De 2.x-serie van de gem print een waarschuwing als hij een module tegenkomt met de nieuwe locatie van de aangeroepen module. Deze waarschuwing wordt geprint door een fallback wanneer de oude modulenaam wordt aangeroepen. Deze waarschuwing wordt niet meer geprint als de nieuwe modulenaam in plaats daarvan wordt aangeroepen.

Als een app een AppSignal-module heeft uitgebreid of gemonkeypatcht, moet de modulenaam worden bijgewerkt om de patch weer te laten werken. Let op: we bieden geen ondersteuning voor deze patches. Als een privé-module zonder vervanging is verwijderd, bieden we die integratie niet meer aan of is deze samengevoegd met een andere module.

## JavaScript-integratie verwijderd

De AppSignal voor Ruby gem bevatte een JavaScript exception tracking middleware, die in de 3.x-serie is verwijderd. In plaats daarvan raden we u aan onze dedicated [AppSignal voor Front-end JavaScript-integratie](/front-end/) te gebruiken.

### Verwijderde opties

De volgende opties hebben geen effect meer op de AppSignal voor Ruby gem en kunnen uit uw apps verwijderd worden.

* `enable_frontend_error_catching` - verwijderde config-optie
  * `APPSIGNAL_ENABLE_FRONTEND_ERROR_CATCHING` - verwijderde config-optie via omgevingsvariabele
* `frontend_error_catching_path` - verwijderde config-optie
  * `APPSIGNAL_FRONTEND_ERROR_CATCHING_PATH` - verwijderde config-optie via omgevingsvariabele

### Verwijderde klassen

De volgende klassen zijn uit de Ruby gem verwijderd en het aanroepen ervan resulteert in een `NameError`.

* `Appsignal::JSExceptionTransaction` - verwijderde JavaScript transaction-klasse
* `Appsignal::Rack::JSExceptionCatcher` - verwijderde middleware

## Het `appsignal notify_of_deploy`-commando verwijderd

Het `appsignal notify_of_deploy`-commando is verwijderd. In plaats daarvan raden we aan de [`revision`](/ruby/configuration/options#option-revision) config-optie te gebruiken om deploys nauwkeuriger te rapporteren. Voor meer informatie over deploy markers, zie onze [deploy markers-sectie](/application/markers/deploy-markers).

Als de `revision`-optie geen goede vervanging is voor uw deploy-methode, gebruik dan onze [deploy markers API-pagina](/api/markers) over hoe u de request kunt sturen om AppSignal van deploys op de hoogte te stellen. En zie onze [Push & deploy-pagina](https://appsignal.com/redirect-to/app?to=info) voor uw app voor een voorbeeld met de config van uw app.

## Verwijderde deprecaties

In de AppSignal voor Ruby 2.x-serie en ouder zijn sommige gedragingen van de AppSignal gem als verouderd gemarkeerd. De meeste van deze deprecaties zijn in de 3.x-serie verwijderd.

In de laatste release van de AppSignal voor Ruby 2.x-serie zouden al deze deprecaties een waarschuwing moeten printen naar STDERR en naar het [`appsignal.log`](/support/debugging#log-location) wanneer ze nog gebruikt worden. Controleer de output en logs van de app terwijl u op de laatste 2.x-serie gem zit en los alle deprecatiewaarschuwingen op voor het upgraden. Elke deprecatie zou een waarschuwing moeten printen/loggen met de veranderingen die nodig zijn om de waarschuwing op te lossen.

## Welkom bij 3.x!

Deze gids zou het upgraden van de meeste Ruby-applicaties naar 3.x moeten dekken. Als u vragen heeft, fouten tegenkomt of hulp wilt bij het upgraden naar de nieuwe versie, neem dan gerust [contact op met support][contact].

[contact]: mailto:support@appsignal.com

[module prepend issue]: https://github.com/appsignal/appsignal-ruby/issues/603
