Pular para conteúdo

Monitoramento Sentry (Sentry)

A extensão Sentry integra o Moodle à plataforma de observabilidade Sentry.io (ou GlitchTip/Self-hosted). Ela monitora a saúde da aplicação em tempo real, capturando erros e gargalos de performance.

No Moodle padrão, quando ocorre um "Erro 500" ou uma tela branca, o administrador precisa acessar o servidor via SSH e ler arquivos de log brutos para tentar adivinhar o que aconteceu. Com esta extensão, o erro aparece no painel do Sentry com o Stack Trace completo, dados do usuário e contexto da requisição, permitindo uma correção proativa.


Para que serve?

  1. Detecção Proativa: Descobrir que uma funcionalidade quebrou antes que o aluno abra um chamado no suporte.
  2. Diagnóstico Rico: Saber exatamente em qual linha do código o erro ocorreu, qual navegador o usuário estava usando e quais foram os passos anteriores (Breadcrumbs).
  3. Monitoramento de Performance: Identificar quais páginas do curso estão lentas e por quê (ex: consulta de banco demorada).

Funcionalidades Principais

1. Captura de Erros (PHP e JavaScript)

A extensão monitora tanto o Backend (servidor) quanto o Frontend (navegador do aluno). * Se um botão não funciona no Chrome do aluno, o Sentry captura o erro de JavaScript e avisa a equipe de TI.

2. Enriquecimento de Contexto

Um erro genérico diz: "Call to undefined function". O erro via MIDDAG Sentry diz: * Usuário: ID 54 (João Silva) * Curso: ID 10 (Matemática Financeira) * URL: /course/view.php?id=10 * Release: Versão 2.5.0 do plugin

3. Rastreamento de Performance (Tracing)

A extensão instrumenta o carregamento das páginas. Você consegue visualizar um gráfico em cascata mostrando quanto tempo o Moodle gastou: * Conectando ao Banco de Dados. * Carregando o Tema. * Processando Webhooks.

4. Gestão de Releases

Ao fazer um deploy de uma nova versão do Moodle ou de um plugin, o Sentry marca esse evento na linha do tempo. Se o número de erros disparar logo após a atualização, você sabe exatamente qual commit causou o problema.


Casos de Uso

Falha de Pagamento Silenciosa

O webhook do gateway de pagamento está dando erro 500, mas o aluno não vê isso (acontece no background). O Sentry alerta a equipe de TI no Slack imediatamente, permitindo corrigir a falha antes de perder vendas.

Lentidão no Quiz

Alunos reclamam que a prova demora para carregar. O Performance Monitoring mostra que uma consulta SQL específica no banco está levando 4 segundos, orientando o DBA a criar um índice.


Como Configurar

  1. No Sentry.io:
    • Crie um Projeto (PHP ou Laravel).
    • Copie o DSN (Client Key).
  2. No Moodle:
    • Acesse Administração do Site > Extensões > Integrações > Sentry.
    • DSN: Cole a chave copiada.
    • Ambiente: Defina como production, staging ou local.
    • Traces Sample Rate: Defina a porcentagem de tráfego a ser monitorada (ex: 0.1 para 10%, recomendado para não estourar a cota em sites grandes).
    • Capturar JS: Ative para monitorar erros de navegador.

Perguntas Frequentes

Isso expõe dados sensíveis (LGPD)? A extensão possui uma configuração de Sanitização de Dados. Por padrão, ela remove senhas, tokens de sessão e pode ser configurada para não enviar o IP ou E-mail do usuário (enviando apenas o ID), garantindo a privacidade.

Deixa o site lento? O impacto é insignificante. O envio de erros é feito de forma assíncrona (no JavaScript) ou no final da execução do script (no PHP), não bloqueando a navegação do usuário.

Preciso pagar o Sentry? O Sentry tem um plano gratuito generoso para desenvolvedores. Para grandes instituições com milhões de requisições, pode ser necessário um plano pago ou hospedar uma versão Self-Hosted (gratuita, mas exige servidor próprio).