|
1 |
| -# sentry-sample |
| 1 | +# Instrumentando uma Aplicação com o Sentry |
| 2 | + |
| 3 | +Este projeto demonstra como instrumentar uma aplicação Flask com o Sentry para monitoramento de erros e desempenho (APM - Application Performance Monitoring). |
| 4 | + |
| 5 | +## Funcionalidades |
| 6 | + |
| 7 | +- **Monitoramento de Erros**: Captura e reporta erros ocorridos na aplicação. |
| 8 | +- **APM (Application Performance Monitoring)**: Monitora o desempenho da aplicação, incluindo tempos de resposta e gargalos. |
| 9 | + |
| 10 | +## O que é o Sentry? |
| 11 | + |
| 12 | +O Sentry é uma plataforma de monitoramento de erros e desempenho que ajuda desenvolvedores a identificar, rastrear e corrigir problemas em tempo real. Ele oferece: |
| 13 | + |
| 14 | +- **Captura de Erros**: Reporta exceções não tratadas e erros de código. |
| 15 | +- **APM**: Monitora o desempenho da aplicação, ajudando a identificar gargalos e melhorar a performance. |
| 16 | + |
| 17 | +## Configuração do Sentry |
| 18 | + |
| 19 | +No arquivo [`__init__.py`](./__init__.py), o Sentry é inicializado com o DSN (Data Source Name) e integrações necessárias: |
| 20 | + |
| 21 | +```python |
| 22 | +import sentry_sdk |
| 23 | +from sentry_sdk.integrations.flask import FlaskIntegration |
| 24 | + |
| 25 | +sentry_sdk.init( |
| 26 | + dsn="https://[email protected]/4508019434979328", |
| 27 | + integrations=[FlaskIntegration()], |
| 28 | + traces_sample_rate=1.0, |
| 29 | + profiles_sample_rate=1.0, |
| 30 | +) |
| 31 | +``` |
| 32 | + |
| 33 | +Para configurar o Sentry, é necessário criar uma conta no [site oficial](https://sentry.io) e criar um projeto. Após a criação do projeto, é possível obter o DSN para integração com a aplicação. |
| 34 | + |
| 35 | +## Executando o projeto localmente |
| 36 | + |
| 37 | +1. Clone o repositório: |
| 38 | + |
| 39 | +```bash |
| 40 | +git https://github.com/Tech-Preta/sentry-sample.git |
| 41 | +``` |
| 42 | + |
| 43 | +2. Crie um ambiente virtual e instale as dependências: |
| 44 | + |
| 45 | +```bash |
| 46 | +python -m venv venv |
| 47 | +source venv/bin/activate # No Windows use `venv\Scripts\activate` |
| 48 | +pip install -r requirements.txt |
| 49 | +``` |
| 50 | + |
| 51 | +3. Execute a aplicação: |
| 52 | + |
| 53 | +```bash |
| 54 | +export FLASK_APP=__init__.py |
| 55 | +flask run |
| 56 | +``` |
| 57 | + |
| 58 | +A aplicação estará disponível em `http://127.0.0.1:5000/`. |
| 59 | + |
| 60 | +## Testando o Sentry |
| 61 | + |
| 62 | +Para testar a integração com o Sentry, você pode clicar no botão "Trigger Test Error" na página inicial (`index.html`). Isso irá gerar um erro de teste que será capturado e reportado pelo Sentry. |
| 63 | + |
| 64 | +```html |
| 65 | +<button id="test-error">Trigger Test Error</button> |
| 66 | +<script> |
| 67 | + const button = document.getElementById('test-error'); |
| 68 | + button.addEventListener('click', () => { |
| 69 | + throw new Error('This is a test error'); |
| 70 | + }); |
| 71 | +</script> |
| 72 | +``` |
| 73 | + |
| 74 | +## CI/CD com Github Actions |
| 75 | + |
| 76 | +O projeto inclui um pipeline de CI/CD configurado no arquivo [`.github`](dependabot.yml) para atualizar as dependências necessárias. |
| 77 | +.github/ |
| 78 | + |
| 79 | +```yml |
| 80 | +version: 2 |
| 81 | +updates: |
| 82 | + - package-ecosystem: "pip" |
| 83 | + directory: "/" |
| 84 | + schedule: |
| 85 | + interval: "weekly" |
| 86 | +``` |
| 87 | +
|
| 88 | +## Contribuindo |
| 89 | +
|
| 90 | +Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests. |
| 91 | +
|
| 92 | +## Licença |
| 93 | +
|
| 94 | +Este projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](./LICENSE) para mais detalhes. |
0 commit comments