{"id":24581342,"url":"https://github.com/tech-preta/sentry-sample","last_synced_at":"2025-03-17T16:19:10.930Z","repository":{"id":258434772,"uuid":"874954413","full_name":"Tech-Preta/sentry-sample","owner":"Tech-Preta","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-09T04:14:37.000Z","size":24,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T02:55:51.470Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://nataliagranato.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tech-Preta.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-18T19:17:58.000Z","updated_at":"2024-10-18T21:00:32.000Z","dependencies_parsed_at":"2024-10-19T04:38:53.575Z","dependency_job_id":null,"html_url":"https://github.com/Tech-Preta/sentry-sample","commit_stats":null,"previous_names":["tech-preta/sentry-sample"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fsentry-sample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fsentry-sample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fsentry-sample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fsentry-sample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tech-Preta","download_url":"https://codeload.github.com/Tech-Preta/sentry-sample/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244066189,"owners_count":20392407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-24T02:56:06.300Z","updated_at":"2025-03-17T16:19:10.898Z","avatar_url":"https://github.com/Tech-Preta.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Instrumentando uma Aplicação com o Sentry\n\nEste projeto demonstra como instrumentar uma aplicação Flask com o Sentry para monitoramento de erros e desempenho (APM - Application Performance Monitoring).\n\n## Funcionalidades\n\n- **Monitoramento de Erros**: Captura e reporta erros ocorridos na aplicação.\n- **APM (Application Performance Monitoring)**: Monitora o desempenho da aplicação, incluindo tempos de resposta e gargalos.\n\n## O que é o Sentry?\n\nO Sentry é uma plataforma de monitoramento de erros e desempenho que ajuda desenvolvedores a identificar, rastrear e corrigir problemas em tempo real. Ele oferece:\n\n- **Captura de Erros**: Reporta exceções não tratadas e erros de código.\n- **APM**: Monitora o desempenho da aplicação, ajudando a identificar gargalos e melhorar a performance.\n\n## Configuração do Sentry\n\nNo arquivo [`__init__.py`](./__init__.py), o Sentry é inicializado com o DSN (Data Source Name) e integrações necessárias:\n\n```python\nimport sentry_sdk\nfrom sentry_sdk.integrations.flask import FlaskIntegration\n\nsentry_sdk.init(\n    dsn=\"https://dc0ebf02fd7083942671659182a50341@sentry.io/4508019434979328\",\n    integrations=[FlaskIntegration()],\n    traces_sample_rate=1.0,\n    profiles_sample_rate=1.0,\n)\n```\n\nPara 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.\n\n## Executando o projeto localmente\n\n1. Clone o repositório:\n\n```bash\ngit https://github.com/Tech-Preta/sentry-sample.git\n```\n\n2. Crie um ambiente virtual e instale as dependências:\n\n```bash\npython -m venv venv\nsource venv/bin/activate  # No Windows use `venv\\Scripts\\activate`\npip install -r requirements.txt\n```\n\n3. Execute a aplicação:\n\n```bash\nexport FLASK_APP=__init__.py\nflask run\n```\n\nA aplicação estará disponível em `http://127.0.0.1:5000/`.\n\n## Testando o Sentry\n\nPara 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.\n\n```html\n\u003cbutton id=\"test-error\"\u003eTrigger Test Error\u003c/button\u003e\n\u003cscript\u003e\n    const button = document.getElementById('test-error');\n    button.addEventListener('click', () =\u003e {\n        throw new Error('This is a test error');\n    });\n\u003c/script\u003e\n```\n\n## CI/CD com Github Actions\n\nO projeto inclui um pipeline de CI/CD configurado no arquivo [`.github`](dependabot.yml) para atualizar as dependências necessárias.\n.github/\n\n```yml\nversion: 2\nupdates:\n  - package-ecosystem: \"pip\" \n    directory: \"/\" \n    schedule:\n      interval: \"weekly\"\n```\n\n## Contribuindo\n\nContribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.\n\n## Licença\n\nEste projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](./LICENSE) para mais detalhes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech-preta%2Fsentry-sample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftech-preta%2Fsentry-sample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech-preta%2Fsentry-sample/lists"}