Repolode
halilcosdu

halilcosdu/laravel-slower

Pacote para Laravel que captura consultas lentas ao banco, agrupa repetições e usa um LLM para sugerir índices e reescritas, com um dashboard integrado.

Estrelas
415
Forks
22
Issues abertas
1
Último commit
há 18 dias

O que é?

O Laravel Slower se conecta ao listener de consultas do Laravel e registra toda consulta que ultrapassa um limite configurável em milissegundos, junto com seus bindings, a conexão e a rota, o job ou o comando artisan que a disparou. Instruções repetidas são agrupadas por fingerprint para que os padrões lentos mais frequentes apareçam primeiro.

Opcionalmente, cada consulta capturada pode ser enviada a um LLM (OpenAI, Anthropic Claude, Google Gemini ou um modelo customizado ou hospedado por você via Prism), junto com o SQL parametrizado, o schema da tabela, os índices e um plano EXPLAIN somente para leitura. As recomendações retornadas sobre índices e reescritas são armazenadas e exibidas em markdown. Por padrão, apenas o SQL parametrizado sai da aplicação; o envio de SQL bruto e bindings exige ativação explícita e esses dados podem passar por um redator.

O pacote inclui um dashboard independente em /slower, restrito ao ambiente local por padrão. Ele oferece suporte a amostragem, limites de capturas por execução, jobs de análise em fila e eventos para alertas. A instalação é feita pelo Composer e exige duas etapas de migration.

Recursos principais

  • 01Captura consultas mais lentas que um limite configurável por meio de um hook DB::listen.
  • 02Agrupa formatos repetidos de consulta por fingerprint, com contagens de ocorrências e durações.
  • 03Registra a rota, a ação do controller, o job ou o comando, além do local no código que disparou cada consulta.
  • 04Envia SQL parametrizado e contexto do schema para drivers da OpenAI, Anthropic, Gemini ou customizados, a fim de obter recomendações.
  • 05Oferece um dashboard integrado com busca, filtros e análise por IA em um clique.
  • 06Oferece amostragem, limites por requisição e análise em segundo plano por fila.

Casos de uso

  • Encontrar as consultas lentas mais frequentes em um app Laravel durante a otimização de desempenho.
  • Obter sugestões de índices e reescritas de consultas sem executar EXPLAIN manualmente para cada instrução.
  • Alertar a equipe quando um novo formato de consulta lenta aparecer em produção.
  • Manter os logs de consultas lentas ativos sob tráfego intenso usando amostragem e limites.

Início rápido

  1. 1

    Instale o pacote com o Composer

    composer require halilcosdu/laravel-slower
  2. 2

    Publique as migrations

    php artisan vendor:publish --tag="slower-migrations"
  3. 3

    Execute as migrations e, em seguida, abra /slower no seu ambiente local

    php artisan migrate

Antes de usar

  • Requer PHP 8.3 ou superior e Laravel 11, 12 ou 13.
  • As recomendações de IA precisam de uma API key de um provedor de LLM pago, e cada análise é uma chamada cobrada.
  • Por padrão, o dashboard só pode ser acessado no ambiente local até você definir um gate viewSlower.

Em coleções

Tópicos

Perguntas frequentes

O que é laravel-slower?
Pacote para Laravel que captura consultas lentas ao banco, agrupa repetições e usa um LLM para sugerir índices e reescritas, com um dashboard integrado. O Laravel Slower se conecta ao listener de consultas do Laravel e registra toda consulta que ultrapassa um limite configurável em milissegundos, junto com seus bindings, a conexão e a rota, o job ou o comando artisan que a disparou. Instruções repetidas são agrupadas por fingerprint para que os padrões lentos mais frequentes apareçam primeiro.
laravel-slower é gratuito? Qual é a licença?
laravel-slower é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
laravel-slower ainda é mantido?
Manutenção ativa. O último commit de laravel-slower foi em 19 de out. de 2026.
Para que posso usar laravel-slower?
Encontrar as consultas lentas mais frequentes em um app Laravel durante a otimização de desempenho. Obter sugestões de índices e reescritas de consultas sem executar EXPLAIN manualmente para cada instrução. Alertar a equipe quando um novo formato de consulta lenta aparecer em produção. Manter os logs de consultas lentas ativos sob tráfego intenso usando amostragem e limites.
Como instalar laravel-slower?
Instale o pacote com o Composer: composer require halilcosdu/laravel-slower Publique as migrations: php artisan vendor:publish --tag="slower-migrations" Execute as migrations e, em seguida, abra /slower no seu ambiente local: php artisan migrate
Onde consigo laravel-slower?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/halilcosdu/laravel-slower

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados