Estamos servindo o Django via nginx / uwsgi. Usamos o AWS ELB por trás de um VPC.
Este é um serviço Web para clientes móveis.
Tivemos relatos de tempos limite durante o desenvolvimento, por isso adicionamos um conceito de request_id a cada solicitação
- cliente gera id de solicitação
- envia GET / request? _request_id = ABDFEFE
- se ocorrer um erro, o erro será relatado ao servidor junto com o ID da solicitação
O problema que estou tendo agora é que estou recebendo relatórios de erros de Tempos
ocorreu em estado selvagem. No entanto, os request_ids associados não aparecem em nenhum registro nginx ou uwsgi.
Eu sou um pouco desconfiado do balanceador de carga elástica amazon. No entanto, não tenho certeza. Como é um tempo limite, não temos cabeçalhos de ELB para examinar, ou código de status ou corpo de resposta ou qualquer coisa.
Usamos o newrelic para monitorar nosso back-end. Ocasionalmente, registra uma 'transação lenta' de 3-4 segundos. (Nada como os tempos limite de 30 segundos que são típicos com a maioria dos clientes)
A pergunta atual: onde procurar a seguir? Segundo eu e os dados que tenho no servidor NADA é realmente errado, no entanto, os tempos limite persistem. Neste ponto, eu nem sei como começar a depurar isso. Os servidores de aplicativos estão sendo executados com uma capacidade de 10% (wrt para mem e cpu) Consultas SQL lentas estão sendo registradas
(com nada interessante também)
(Também estou analisando o erro do lado do cliente separadamente)
Obrigado antecipadamente.