getsentry / getsentry/sentry-python
Allow inclusion of _IGNORED_LOGGERS in breadcrumbs in LoggingIntegration
- Linguagem predominante
- Python
- Estrelas
- 2.2k
- Forks
- 669
- Merge médio
- 1d 40min
- PRs com merge (30d)
- 212
Descrição
I am trying to investigate some http connection pooling issues when making a lot of http requests.
I'm getting a lovely sentry report on the failures, but with 'Pool is closed' errors I **really** want to see DEBUG logs from urllib3 in my breadcrumbs.
So, I tried setting up `LoggingIntegration(level=logging.DEBUG)` and `logging.getLogger("urllib3").setLevel(logging.DEBUG)`
But I see nothing.
And, then I see [_IGNORED_LOGGERS](https://github.com/getsentry/sentry-python/blob/ed4ba68cad42ebfbab162b37bf7edad25ebeae55/sentry_sdk/integrations/logging.py#L34) in that LogginIntegration and the reasons why:
* https://github.com/getsentry/sentry-python/issues/788
* https://github.com/getsentry/sentry-python/issues/655
Which are great reasons. But, do those reasons really apply to breadcrumbs?
I appreciate how an error in sending a sentry event over urllib3 is going to create another event, ad infinitum. But (especially with `MAX_BREADCRUMBS` as some protection) is it safe to have `_IGNORED_LOGGERS` apply to `_handler` but not apply to `_breadcrumb_handler` ?
In fact, if there was any urllib3 logging output on the attempt to send the issue, those breadcrumbs would be added to the event that won't be fired because _handler is still adhering to IGNORED_LOGGERS
Guia de contribuição
Direção de pesquisa
Read sentry_sdk/integrations/logging.py, focusing on LoggingIntegration, _IGNORED_LOGGERS, _handler, and _breadcrumb_handler. Trace how urllib3 records are handled during event transport and inspect the relevant integration tests. Done means breadcrumb collection can include ignored logger records without causing recursive Sentry events.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- observability
- Tipo de issue
- Funcionalidade
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 58/100