Sobes.tech
Junior

Qual é a sua experiência com Sentry?

sobes.tech IA

Resposta da IA

Tenho experiência a trabalhar com Sentry como ferramenta de monitorização de erros e desempenho de aplicações. Utilizei-o para recolher e analisar erros tanto no frontend (JavaScript) como no backend (Python, Node.js).

As principais tarefas em que apliquei o Sentry:

  • Detecção automática de erros: Integração do SDK do Sentry nas aplicações para capturar automaticamente exceções e erros.
  • Recolha de informações contextuais: Configuração do Sentry para recolher dados sobre o utilizador, o ambiente, a pilha de chamadas e as variáveis para melhor compreensão das causas dos erros.
  • Monitorização de desempenho: Uso do Sentry Performance Monitoring para acompanhar a velocidade de carregamento das páginas, a duração das requisições e outras métricas de desempenho.
  • Configuração de alertas: Definição de limites e condições para gerar notificações (via Slack, email) quando ocorrerem erros críticos ou deterioração do desempenho.
  • Análise e depuração: Uso da interface do Sentry para agrupar erros, visualizar rastros, analisar a frequência de ocorrência e priorizar correções.
  • Integração com CI/CD: Configuração de integração com sistemas CI/CD para marcar automaticamente as versões de lançamento no Sentry, facilitando a correlação de erros com implementações específicas.

Exemplo de integração do Sentry numa aplicação Python usando Django:

# settings.py

import os

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn=os.environ.get("SENTRY_DSN"),  # Obtemos o DSN das variáveis de ambiente
    integrations=[
        DjangoIntegration(),
    ],
    # Definir traces_sample_rate a 1.0 para capturar 100%
    # de transações para monitorização de desempenho.
    # Recomendamos ajustar este valor em produção.
    traces_sample_rate=1.0,
    send_default_pii=True, # Envio de informações pessoalmente identificáveis (considerando a privacidade)
)

# views.py

from django.http import HttpResponse

def faulty_view(request):
    # Exemplo de geração de erro
    print(1 / 0)
    return HttpResponse("Esta view tem um erro")

Utilização de volumes Docker para guardar dados do Sentry ao fazer deploy:

# docker-compose.yml
version: '3.8'

services:
  sentry:
    image: sentry/sentry:latest
    ports:
      - "9000:9000"
    environment:
      SENTRY_SECRET_KEY: 'a_sua_chave_secreta' # Substitua pela sua chave secreta
    volumes:
      - sentry-data:/var/lib/sentry # Armazenamento de dados do Sentry

volumes:
  sentry-data: # Definição do volume para armazenamento de dados

De modo geral, a minha experiência com Sentry permitiu-me monitorizar eficazmente o estado das aplicações, responder rapidamente a problemas emergentes e melhorar a estabilidade do sistema.