GlitchTip: Monitorização de Erros Auto-Alojado Alternativa ao Sentry
O GlitchTip é uma plataforma de código aberto de monitorização de erros que oferece compatibilidade total com a API do Sentry. Permite às equipas recolher, agrupar e resolver erros de aplicações sem custos de subscrição SaaS, alojando a instância nos próprios servidores via Docker.
ℹ O GlitchTip é compatível com a API do Sentry — as SDKs do Sentry funcionam sem alterações.
1. Introdução ao GlitchTip
O GlitchTip é um projecto de código aberto (licença MIT) desenvolvido em Django que replica a funcionalidade central do Sentry: captura de erros, agrupamento automático por semelhança, rastos de pilha detalhados e gestão de projectos. A principal vantagem é a compatibilidade com o protocolo do Sentry, o que significa que qualquer SDK oficial do Sentry — Python, JavaScript, Go, Java, Ruby, entre outros — funciona imediatamente sem adaptações.
Para PME que necessitam de observabilidade de aplicações mas não justificam o custo do plano Sentry SaaS, o GlitchTip oferece uma alternativa auto-alojada com controlo total sobre os dados. Os requisitos são modestos: 512 MB de RAM e PostgreSQL são suficientes para equipas pequenas (o mínimo oficial é 256 MB na configuração all-in-one, até 128 MB com swap). A documentação oficial cobre instalação, configuração e operação.
2. Instalação com Docker
A instalação recomendada utiliza Docker Compose com PostgreSQL, Valkey (ou Redis) e a imagem oficial glitchtip/glitchtip:6 em modo all-in-one. A documentação oficial não pede clone do código: basta descarregar o compose.sample.yml e editar as variáveis de ambiente — o código-fonte divide-se em dois repositórios (glitchtip-backend e glitchtip-frontend), relevantes apenas para quem compila ou contribui, não para quem instala.
# Descarregar o compose oficial e preparar a configuração
wget https://glitchtip.com/assets/compose.sample.yml -O compose.yml
# Editar as variáveis essenciais no compose.yml (secção x-environment)
# SECRET_KEY: gerar com openssl rand -hex 32
# DATABASE_URL: postgres://postgres:password@postgres:5432/postgres
# GLITCHTIP_DOMAIN: https://glitchtip.exemplo.pt
# DEFAULT_FROM_EMAIL: [email protected]
# Iniciar os serviços (postgres, valkey, web)
docker compose up -d
# Criar utilizador administrador
docker compose exec web ./manage.py createsuperuser
Após o arranque, a interface web fica disponível em http://localhost:8000. O superuser criado no último passo permite aceder ao painel de administração onde se criam projectos e equipas.
⚠ Configurar limitação de taxa para evitar enchimento da base de dados em produção.
3. Configurar Projectos e DSN
Depois de iniciar sessão no painel web, criar um projecto novo associado a uma equipa. Cada projecto gera uma DSN (Data Source Name) única que identifica a origem dos eventos. A DSN segue o formato https://[email protected]/1 onde o número final é o ID do projecto.
A DSN está disponível em Project Settings > Client Keys. Copiar o valor completo — inclui protocolo, chave pública, host e ID do projecto. Esta DSN é o único parâmetro necessário para inicializar qualquer SDK do Sentry na aplicação cliente.
4. Integrar com Aplicações
A integração usa as SDKs oficiais do Sentry — não existem SDKs próprias do GlitchTip. Isto significa documentação extensa, suporte para dezenas de frameworks e compatibilidade garantida. Basta substituir a DSN do Sentry pela DSN do GlitchTip.
Python
# Instalar SDK do Sentry para Python
pip install sentry-sdk
# Inicializar na aplicação
import sentry_sdk
sentry_sdk.init(
dsn="https://[email protected]/1",
traces_sample_rate=0.2,
environment="production"
)
JavaScript
# Instalar SDK do Sentry para browser
npm install @sentry/browser
# Inicializar na aplicação
import * as Sentry from "@sentry/browser";
Sentry.init({
dsn: "https://[email protected]/1",
tracesSampleRate: 0.2,
environment: "production"
});
O parâmetro traces_sample_rate controla a percentagem de transacções capturadas para monitorização de desempenho. Em produção, valores entre 0.1 e 0.5 equilibram visibilidade e volume de dados.
5. Alertas e Notificações
O GlitchTip suporta notificações por email nativamente. Para integração com chat e gestão de incidentes, oferece webhooks que enviam payloads JSON para endpoints externos. A configuração faz-se em Project Settings > Alerts, onde se definem regras por severidade, frequência e tipo de evento.
| Canal | Configuração | Latência |
|---|---|---|
| Nativo, sem configuração extra | Imediato | |
| Webhook | URL endpoint + segredo opcional | Sub-segundo |
| Slack/Discord | Via webhook incoming | 1-3 segundos |
Para equipas que já usam conjunto de observabilidade, o GlitchTip complementa ferramentas como o VictoriaMetrics para métricas e o Grafana Alloy para telemetria. Enquanto estas cobrem métricas e registos, o GlitchTip foca-se em erros de aplicação com rastos de pilha estruturados.
6. Comparação com Sentry
O GlitchTip não replica todas as funcionalidades do Sentry SaaS, mas cobre as essenciais para a maioria das PME. A tabela seguinte resume as diferenças principais:
| Funcionalidade | GlitchTip | Sentry SaaS |
|---|---|---|
| Licença | MIT (código aberto) | Proprietária |
| Alojamento | Auto-alojado (Docker) | SaaS |
| Custo | Gratuito (custo de infra) | Plano pago por eventos |
| SDKs compatíveis | Todas as do Sentry | Nativas |
| Monitorização de desempenho | Básico (rastreio) | Completo |
| Session replay | Não | Sim |
| Controlo de dados | Total (local) | Limitado |
A decisão entre GlitchTip e Sentry depende do orçamento, requisitos de privacidade e necessidade de funcionalidades avançadas como reprodução de sessão. Para PME com restrições orçamentais ou requisitos RGPD de dados local, o GlitchTip é frequentemente a opção mais adequada.
7. Erros Comuns e Lista de Verificação
Durante a instalação e configuração do GlitchTip, alguns problemas surgem frequentemente. A lista seguinte resume os mais comuns e as respectivas soluções:
| Problema | Causa | Solução |
|---|---|---|
| Eventos não chegam | DSN incorrecta ou URL errada | Verificar DSN em Client Keys |
| Base de dados cresce rápido | Sem limitação de taxa configurado | Definir quotas por projecto |
| Worker não processa | Redis não acessível | Verificar REDIS_URL no .env |
| Erros 502 no painel | Infraestrutura não iniciou | Verificar registos do docker-compose |
Lista de verificação para produção:
- Configurar HTTPS com certificados Let’s Encrypt ou proxy inverso (Nginx/Caddy)
- Definir
SECRET_KEYcom valor aleatório de pelo menos 50 caracteres - Activar limitação de taxa em Project Settings para limitar eventos por minuto
- Configurar backups periódicos da base de dados PostgreSQL
- Definir retenção de eventos (predefinido 30 dias, ajustar conforme volume)
- Configurar alertas por email ou webhook para erros críticos
- Monitorizar recursos do contentor com Prometheus ou Netdata
Para monitorização do próprio GlitchTip, recomenda-se integrar com o conjunto coberto no Dia 25 do Curso Linux 30 Dias — Monitorização com Prometheus e Grafana. As métricas de contentor Docker, latência de PostgreSQL e fila de Redis do GlitchTip podem ser recolhidas pelo mesmo conjunto de observabilidade.
Artigos Relacionados: