Posted on: April 24, 2025 04:02 PM
Posted by: Renato
Categories: Laravel
Views: 237
Aqui está o código PHP:
Se quiser que o valor 500 dentro do if também use a variável $maxTimeLimit, posso ajustar isso para você!
Claro! Aqui está um pequeno artigo explicando o funcionamento do código e a lógica por trás da exceção para monitoramento de consultas lentas em Laravel:
Monitoramento de Consultas Lentas em Laravel (Sem Pacotes Externos)
Em aplicações Laravel, é comum lidarmos com situações onde determinadas consultas ao banco de dados estão mais lentas do que o aceitável. Consultas lentas podem impactar diretamente a performance da aplicação e a experiência do usuário final. Felizmente, o próprio Laravel oferece uma forma elegante de monitorar o tempo de execução de queries sem a necessidade de instalar pacotes externos.
Como funciona?
O código abaixo, geralmente colocado no método boot() de um ServiceProvider (como o AppServiceProvider), utiliza o listener de eventos de query do Laravel para capturar todas as consultas SQL executadas pela aplicação:
Explicação do código
-
DB::listen(...): Registra um listener para todas as queries executadas. -
$event->time: Retorna o tempo (em milissegundos) que a query levou para ser executada. -
$maxTimeLimit: Define o tempo máximo permitido para a execução de uma query (500ms no exemplo). -
QueryException: Se o tempo da query ultrapassar o limite, uma exceção personalizada é lançada.
Por que lançar uma exceção?
Lançar uma exceção pode parecer radical, mas é extremamente útil durante o desenvolvimento ou testes de performance. Isso força os desenvolvedores a corrigirem as consultas lentas antes que cheguem em produção, além de ajudar a identificar gargalos com precisão.
No ambiente de produção, ao invés de lançar uma exceção, uma alternativa mais segura seria logar o evento em um arquivo específico ou enviar para um sistema de monitoramento.
Alternativa para produção:
Conclusão
Este tipo de monitoramento é uma forma simples, nativa e eficiente de identificar problemas de performance causados por queries mal otimizadas. Ao utilizar os recursos do próprio Laravel, você ganha mais controle sobre a execução da aplicação sem depender de soluções externas.
Se quiser posso estender o artigo com sugestões de otimização de consultas ou como integrar com ferramentas de logging e performance. Deseja isso?
Donate to Site
Renato
Developer