Integraties
Rails-applicaties
Voor Rails-applicaties zorgt u ervoor dat u afhankelijk bent van de:environment-taak. Dit laadt de Rails-applicatie in het geheugen en start AppSignal als onderdeel van de applicatie.
Rakefile
HetRakefile van uw Rails-applicatie zou er ongeveer uit moeten zien als het onderstaande voorbeeld. Dit zou al het geval moeten zijn, u hoeft het niet te wijzigen.
< 1, moet u de Rake-integratie handmatig requiren. Deze wordt automatisch geladen voor versie 1.x en hoger.)
Ruby-applicaties
Voor pure Ruby-applicaties zijn er enkele extra stappen nodig om AppSignal te laden. AppSignal moet worden gerequired, geconfigureerd en geladen. Zie ook onze integratiehandleiding.Prestaties van Rake-taken monitoren
Om de prestaties van Rake-taken en alle events die in de taak plaatsvinden te monitoren, configureert u AppSignal met de configuratieoptieenable_rake_performance_instrumentation ingesteld op true.
Met deze functie ingeschakeld worden alle Rake-taken geïnstrumenteerd en meegeteld voor uw abonnement.
Stop-vereiste
Voor Rake-taken die op kortlevende hosts draaien, is het vereist om de AppSignal Ruby-gem te stoppen voordat het Rake-proces wordt afgesloten. Dit zorgt ervoor dat de gegevens van de Rake-taken aan AppSignal worden gerapporteerd voordat de host wordt afgesloten. Dit gedrag is alleen nodig in dergelijke scenario’s zoals:- Wanneer een geplande Rake-taak (een cron job) wordt uitgevoerd door een hostingservice.
- Wanneer een Rake-taak wordt uitgevoerd op een container die start om deze Rake-taak uit te voeren en wordt afgesloten wanneer de Rake-taak eindigt.
- Wanneer een Rake-taak wordt uitgevoerd op een Heroku-runner of vergelijkbare hostingproviders.
enable_at_exit_hook.
Zorg ervoor dat deze optie op true staat voor scripts waarvoor AppSignal moet worden gestopt, als dit niet automatisch wordt gedetecteerd.
Het kan nodig zijn om een extra sleep-aanroep van een paar seconden toe te voegen om ervoor te zorgen dat er voldoende tijd is om alle gegevens te verzenden. Gebruik indien nodig het at_exit-gebruiksvoorbeeld uit de onderstaande code.
Stop-vereiste legacy
Bij het uitvoeren van een enkele Rake-taak op een kortlevende host (bijv. met Docker-containers, Kubernetes of Heroku-schedulers) zijn er drie vereisten. Dit garandeert dat de AppSignal-extensie van de app tijd heeft om de gegevens naar de agent door te spoelen en dat de agent tijd heeft om de gegevens naar onze API te verzenden voordat (de container) wordt afgesloten. De vereisten zijn:Appsignal.stopmoet worden aangeroepen in de Rake-taak.- Wanneer Rake-taakprestatiemonitoring is ingeschakeld, gebeurt dit automatisch voor alle taken.
running_in_containermoet op true worden ingesteld in de configuratie.- Voor de meeste containertypes wordt
running_in_containerautomatisch op true ingesteld wanneer gedetecteerd, voor andere is handmatige configuratie vereist.
- Voor de meeste containertypes wordt
- Een sleep van bijv. 10 seconden om de AppSignal-agent tijd te geven om de gegevens te verzenden
Appsignal.stop in de Rakefile wordt aangeroepen:
Appsignal.stop spoelt alle transactiegegevens die zich momenteel in de AppSignal-extensie bevinden door naar onze agent.
Vervolgens slaapt het 10 seconden om de agent in staat te stellen de gegevens te verzenden voordat het wordt afgesloten.