Tempos de fila
Uma configuração comum para aplicações Ruby é que o webserver Ruby como Unicorn ou Puma roda atrás de outro webserver (externo) como Nginx ou Apache. Estes geralmente são usados para terminar conexões SSL e lidar com assets estáticos, por exemplo. Quando seu webserver Ruby está ocupado processando requisições, o Nginx ou Apache ainda pode aceitar novas conexões e esperar que um processo Ruby fique disponível para lidar com a requisição. O webserver externo enfileira a requisição enquanto isso. O ideal é que haja capacidade suficiente para que o webserver externo nunca tenha que esperar pelo Ruby, mas na prática isso pode acontecer quando há um pico repentino de requisições. Um bom indicador de capacidade é, portanto, a métrica de queue time, ou seja, a quantidade de tempo entre quando o webserver externo aceitou a requisição e o Ruby lida com a requisição. Um queue time longo por um período prolongado indica que você precisará escalar a quantidade de processos/threads Ruby para lidar com requisições, ou escalar mais webservers. Você pode encontrar as métricas de queue time na página de gráficos de Performance:
Configuração
O AppSignal rastreia automaticamente o queue time no Heroku, mas se você rodar seu próprio servidor com NGINX ou Apache, precisará configurar os headers corretos para que o rastreamento de queue time funcione.NGINX
Você pode usar a variável${msec} com NGINX 1.2.6 ou superior. Esse é o tempo atual em milissegundos.
Apache
No Apache, mod_headers expõe uma variável"$t" que pode ser usada para rastrear o queue time. Adicione o header da seguinte forma: