Queue times
Een veelvoorkomende opzet voor Ruby-applicaties is dat de Ruby-webserver, zoals Unicorn of Puma, achter een andere (externe) webserver draait, zoals Nginx of Apache. Die worden meestal gebruikt om bijvoorbeeld SSL-verbindingen af te sluiten en statische assets af te handelen. Wanneer uw Ruby-webserver bezig is met het verwerken van requests, kunnen Nginx of Apache nog steeds nieuwe verbindingen accepteren en wachten tot een Ruby-proces beschikbaar wordt om de request af te handelen. De externe webserver zet de request in de tussentijd in een queue. Idealiter is er voldoende capaciteit zodat de externe webserver nooit op Ruby hoeft te wachten, maar in de praktijk kan dit gebeuren bij een plotselinge piek aan requests. Een goede indicator van capaciteit is daarom de queue time-metric, oftewel de hoeveelheid tijd tussen het moment waarop de externe webserver de request accepteerde en het moment waarop Ruby de request afhandelt. Een lange queue time gedurende een langere periode geeft aan dat u het aantal Ruby-processen/threads moet opschalen om requests af te handelen, of meer webservers moet opschalen. U vindt de queue time-metrics op de Performance Graphs-pagina:
Setup
AppSignal trackt de queue time automatisch op Heroku, maar als u uw eigen server draait met NGINX of Apache, moet u de juiste headers instellen om queue time-tracking te laten werken.NGINX
U kunt de variabele${msec} gebruiken met NGINX 1.2.6 of hoger. Dit is de huidige tijd in milliseconden.
Apache
In Apache exposeert mod_headers een"$t"-variabele die kan worden gebruikt om de queue time te tracken. Voeg de header als volgt toe: