appsignal-wrap, een tool om processen op uw server te monitoren, zoals uw cron jobs, uw databaseserver of andere processen die bij uw applicatie horen.
De tool appsignal-wrap integreert naadloos met de cron- en heartbeat-procesmonitoren, logging en foutrapportage van AppSignal. Hij kan worden gebruikt om elk proces op uw servers te monitoren, ongeacht de taal of het framework waarin het is geschreven.
AppSignal Wrap helpt antwoord te geven op vragen zoals:
Is mijn databaseproces actief en draaiend?
Draait mijn cron job op tijd?
Wat ging er mis met mijn backup-script?
Is mijn applicatieserver niet gestart?
Belangrijkste functies van appsignal-wrap
Na het installeren vanappsignal-wrap kunt u de tool gebruiken om processen te starten die u wilt monitoren. De tool appsignal-wrap zal vervolgens:
De standaarduitvoer en standaardfout van het proces rapporteren als logs die u kunt filteren en doorzoeken in AppSignal Logging.
Cron-procesmonitoren versturen om te rapporteren dat het proces succesvol is gestart en voltooid, of heartbeat-procesmonitoren om de uptime bij te houden.
Mislukte exit-statussen rapporteren als errors aan AppSignal.
Installatie
De eenvoudigste manier omappsignal-wrap te installeren, is door het volgende commando uit te voeren:
appsignal-wrap voor uw OS (besturingssysteem) en architectuur, en installeert deze in het $PATH van uw server.
Zowel Linux als macOS worden ondersteund, in de x86 64-bit (Intel)- en ARM 64-bit (Apple Silicon)-architecturen. Alpine Linux wordt ook ondersteund via onze musl-geactiveerde builds voor beide architecturen.
Alternatief kunt u de laatste release downloaden van de GitHub releases-pagina voor uw besturingssysteem en architectuur, en handmatig installeren in het $PATH van uw server.
Gebruik
Om een proces te monitoren metappsignal-wrap, geeft u het commando dat u wilt monitoren als laatste argument mee aan appsignal-wrap. Bijvoorbeeld:
[NAME] de naam die u wilt gebruiken om het proces in AppSignal te identificeren, en [COMMAND] is het commando dat u wilt monitoren. Zowel de naam als het commando zijn verplicht. Bijvoorbeeld:
appsignal-wrap doorgeven als argument bij de command-line-optie --api-key, of als de omgevingsvariabele APPSIGNAL_APP_PUSH_API_KEY.
Standaard rapporteert appsignal-wrap de standaarduitvoer en standaardfout van het proces als logs aan AppSignal, en rapporteert alle mislukte exit-statussen aan AppSignal als errors.
Procesmonitoring
Standaard stuurtappsignal-wrap geen procesmonitor-events. U kunt de command-line opties --cron
of --heartbeat gebruiken om respectievelijk cron- of heartbeat-procesmonitors in te schakelen.
De appsignal-wrap-tool gebruikt de naam die als eerste argument is opgegeven als de identifier van de procesmonitor. Bijvoorbeeld, om cron-procesmonitor-events te rapporteren met backup-script als identifier van de procesmonitor:
Cron-procesmonitors
Bij gebruik van--cron om cron-procesmonitors te verzenden, stuurt appsignal-wrap een start-cron-procesmonitor-event wanneer het proces start, en een finish-cron-procesmonitor-event als het proces succesvol wordt afgerond.
Als het proces eindigt met een mislukte exit-status, stuurt appsignal-wrap geen finish-cron-procesmonitor-event.
Heartbeat-procesmonitors
Bij gebruik van--heartbeat om heartbeat-procesmonitors te verzenden, stuurt appsignal-wrap continu heartbeat-procesmonitor-events tijdens de levensduur van het proces.
Aangepaste identifier
Om procesmonitor-events naar AppSignal te sturen met een identifier die verschilt van de naam die als eerste argument is opgegeven, kunt u een andere identifier als argument doorgeven aan de command-line opties--cron of --heartbeat. Bijvoorbeeld:
appsignal-wrap cron-procesmonitor-events met daily-backup als identifier van de procesmonitor, maar gebruikt het nog steeds backup als naam om het proces te identificeren bij het rapporteren van logs en errors.
Logging
Standaard stuurtappsignal-wrap zowel de standaard output als de standaard error van het proces dat het monitort als logs naar AppSignal. De logs verschijnen onder de bron “application”, en de naam die als eerste argument is opgegeven, wordt gebruikt als de log group.
Logging uitschakelen
Om het verzenden van ofwel de standaard output of de standaard error als logs uit te schakelen, kunt u respectievelijk de command-line opties--no-stdout of --no-stderr gebruiken.
Om het verzenden van logs helemaal uit te schakelen, kunt u de command-line optie --no-log gebruiken.
Aangepaste log group
Om logs als een andere log group te verzenden, kunt u deze als argument doorgeven aan de command-line optie--log. Bijvoorbeeld:
appsignal-wrap db als de log group bij het verzenden van logs naar AppSignal, maar wordt nog steeds mysql gebruikt als naam om het proces te identificeren bij het rapporteren van procesmonitors en errors.
Aangepaste log-bron
Om logs naar een andere log-bron te verzenden, kunt u de API-sleutel van de log-bron, die u verkrijgt bij het aanmaken van een log-bron, als argument doorgeven aan de command-line optie--log-source, of als de omgevingsvariabele APPSIGNAL_LOG_SOURCE_API_KEY. Bijvoorbeeld:
Foutrapportage
Standaard rapporteertappsignal-wrap alle mislukte exit-statussen van het proces dat het monitort als errors aan AppSignal. De errors worden gegroepeerd op de naam die als eerste argument is opgegeven.
Foutrapportage uitschakelen
Om het rapporteren van errors volledig uit te schakelen, kunt u de command-line-optie--no-error gebruiken.
Uitvoer in foutmeldingen
Bij het rapporteren van errors aan AppSignal voegtappsignal-wrap de laatste regels van de standaarduitvoer en standaardfout van het proces toe als foutmelding.
Door de command-line-opties --no-stdout of --no-stderr te gebruiken voorkomt u dat de standaarduitvoer of standaardfout in de foutmelding wordt opgenomen.
Door beide opties te gebruiken, worden er helemaal geen logs in de foutmelding opgenomen.
Aangepaste foutgroepering
Om errors anders te groeperen, kunt u een andere naam meegeven als argument aan de command-line-optie--error. Bijvoorbeeld:
appsignal-wrap errors met user-backup als foutgroep, maar gebruikt nog steeds backup als naam om het proces te identificeren bij het rapporteren van logs en procesmonitoren.
Applicatierevisie
Als een revisie wordt opgegeven via de vlag--revision of de omgevingsvariabele APPSIGNAL_REVISION, worden errors gegroepeerd met de deployment voor die revisie.
Procesgedrag
De toolappsignal-wrap streeft ernaar transparant te zijn — dat wil zeggen, het uitvoeren van een commando met appsignal-wrap zou hetzelfde gedrag moeten hebben als het uitvoeren van datzelfde commando op zichzelf.
Nadat het gemonitorde proces is voltooid, wacht
appsignal-wrap korte tijd (meestal een seconde of minder) voordat het wordt afgesloten, om ervoor te zorgen dat alle logs en procesmonitoren naar AppSignal worden verzonden.Als u appsignal-wrap aanroept in een loop, kan de vertraging veroorzaakt door dit wachten ervoor zorgen dat de loop langzamer draait dan verwacht.Omgevingsvariabelen
Het proces erft automatisch de omgevingsvariabelen van hetappsignal-wrap-bovenliggende proces.
Exit-status
Als het proces dat het monitort wordt afgesloten met een exit-code, wordtappsignal-wrap afgesloten met dezelfde mislukte exit-code.
Als het proces dat het monitort wordt beëindigd door een signaal, wordt appsignal-wrap afgesloten met een mislukte exit-code van 128 + signal, waarbij signal het nummer is dat het signaal vertegenwoordigt dat ervoor heeft gezorgd dat het proces werd beëindigd. Welk signaal dit nummer vertegenwoordigt is afhankelijk van het besturingssysteem.
Invoer en uitvoer
Het proces erft automatisch zijn standaardinvoer-descriptor van hetappsignal-wrap-bovenliggende proces.
Naast het rapporteren ervan aan AppSignal, worden de standaarduitvoer en standaardfout van het proces doorgesluisd naar de standaarduitvoer en standaardfout van het appsignal-wrap-bovenliggende proces.
Bij gebruik van --no-stdout of --no-stderr erft het proces automatisch respectievelijk de standaarduitvoer- of standaardfout-descriptor van het appsignal-wrap-bovenliggende proces.
Dit betekent dat u appsignal-wrap kunt gebruiken in een pipeline of de uitvoer kunt omleiden naar een bestand, bijvoorbeeld:
Signalen
Wanneer hetappsignal-wrap-proces een signaal ontvangt dat kan worden afgehandeld, stuurt het dit door naar het proces dat het monitort.
Bijvoorbeeld, het sturen van een SIGTERM-signaal naar het appsignal-wrap-bovenliggende proces zorgt ervoor dat het proces dat het monitort een SIGTERM-signaal ontvangt.
Wanneer het appsignal-wrap-bovenliggende proces een signaal ontvangt dat niet kan worden afgehandeld, zoals SIGKILL en SIGSTOP, of als het onverwacht crasht, wordt een SIGTERM-signaal verzonden naar het proces dat het monitort.