Elephantshark é uma ferramenta leve para monitorar, analisar e depurar o tráfego de rede do PostgreSQL. Ela ajuda desenvolvedores e administradores a entender como clientes, drivers e ORMs interagem com servidores PostgreSQL, proxies e pools de conexões.
Com ela, também é possível rastrear o tráfego entre servidores de réplica (standby) e principais (primary), assim como entre assinantes e publicadores em sistemas de replicação.
GitHub: neondatabase-labs/elephantshark
Recursos
Elephantshark foi criado como uma ferramenta de “escuta” e análise do tráfego Postgres sem a necessidade de modificar o banco de dados ou os aplicativos. Ele permite:
- Monitorar a atividade dos clientes - quais consultas são executadas, com que frequência e qual a latência.
- Compreender o comportamento de drivers e ORMs - como eles abrem conexões, quais parâmetros usam e quais comandos enviam.
- Depurar problemas de conexões e pools - por exemplo, conexões lentas ou que se desconectam.
- Analisar replicação - tráfego entre servidores primary/standby e publisher/subscriber.
- Operar sem invasão - a ferramenta não exige alterações na configuração do PostgreSQL.
O Elephantshark pode ser usado como uma ferramenta de diagnóstico ao configurar infraestrutura, realizar migrações ou depurar conexões instáveis.
Instalação
Para instalar o Elephantshark, clone o repositório e compile o binário a partir do código-fonte:
O binário gerado estará em
Você também pode baixar versões pré-compiladas (se disponíveis) em GitHub Releases.
Exemplos de uso
Iniciar a análise de tráfego em uma interface ou porta específica:
Ou ler um arquivo .pcap salvo anteriormente:
- O Elephantshark reconhece automaticamente pacotes PostgreSQL e exibe comandos, consultas e respostas decodificadas. Isso permite analisar em detalhe como o aplicativo interage com o banco de dados.
Por que experimentar o Elephantshark
- Feito especificamente para PostgreSQL. Entende o protocolo interno do Postgres, incluindo comandos avançados e processos de handshake.
- Sem interferência. Atua como um sniffer passivo, sem afetar o desempenho.
- Ideal para análise de problemas. Permite identificar rapidamente consultas com erro, timeouts ou falhas no pool de conexões.
- Perfeito para DevOps e DBAs. Essencial na configuração de sistemas PostgreSQL de alta performance e tolerância a falhas.
Conclusão
Elephantshark é um “microscópio de rede” para PostgreSQL. Ele ajuda a visualizar como seu aplicativo se comunica com o banco de dados, encontrar pontos fracos e melhorar a estabilidade geral. Se você gerencia infraestrutura, desenvolve drivers ou simplesmente quer entender mais profundamente a comunicação de rede no PostgreSQL - o Elephantshark será uma excelente adição ao seu conjunto de ferramentas.
Perguntas frequentes (FAQ)
- Posso usar o Elephantshark em produção?
Sim, mas é recomendado executá-lo em modo de monitoramento passivo ou com cópias do tráfego, para não impactar as conexões ativas. - Preciso de acesso ao banco de dados?
Não. O Elephantshark analisa apenas o tráfego de rede e não requer login nem senha do PostgreSQL. - Qual o impacto de desempenho?
Mínimo - a ferramenta apenas escuta pacotes, sem interferir na transmissão. - O Elephantshark suporta conexões SSL?
Não, ele não consegue descriptografar tráfego SSL, mas funciona perfeitamente com conexões não criptografadas (como em redes locais). - Funciona com pgbouncer ou outros pools?
Sim, o Elephantshark reconhece o tráfego entre clientes, proxies, pools e servidores PostgreSQL.