[18.0][MIG] sentry: sentry_sdk version update - #3174
Conversation
* [ADD] sentry module * [FIX] updated sentry module according to PR comments
- [FIX] sentry: fixes missing `raven` library preventing loading of modules - [FIX] 2to3 script on py file - [FIX] add requirements.txt
sentry: It is not always possible to read commit information from a production environment. In those cases it is useful to be able to set a release version manually. [UPD] Update sentry.pot
[UPD] Update sentry.pot
because OCA/maintainer-tools#459 [UPD] Update sentry.pot
fix OCA/maintainer-tools#459 OCA#1776 (comment) Credits sbidoul [UPD] README.rst
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-tools-14.0/server-tools-14.0-sentry Translate-URL: https://translation.odoo-community.org/projects/server-tools-14-0/server-tools-14-0-sentry/
|
for review: |
6691f92 to
65aee02
Compare
The following warning is fixed:
DeprecationWarning: Using or importing the ABCs from 'collections' instead of
from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop
working
Allow using `sentry_release` or `sentry_odoo_dir` in the Odoo configuration file. Previously, the `sentry_odoo_dir` was never actually respected. It would always be overridden by `sentry_release`. Even if `sentry_release` is not set, it will use an empty value instead of using `sentry_odoo_dir` to find the Git commit hash. After this commit, the `sentry_release` parameter still takes precedence. However, if `sentry_release` is not set and `sentry_odoo_dir` is set, then `sentry_odoo_dir` will be used to find the appropriate Git commit hash, which will be used as the `release` value. Both cases are covered by the added unit tests.
Because post_load is called after odoo.service.server start It has already registered the unpatched odoo.service.wsgi_server.application So patch it here too. This enables wsgi performance reporting with sentry_traces_sample_rate
The test code uses a "mock" Transport object to ensure that events are stored locally in memory, instead of triggering network requests. The Sentry client is cleaned up once done, and this triggers a call to capture_envelope, a different way of sending events to Sentry. Since our mock class did not fully complete initialization, and also did not provide an overriding method, the original was called, which depends on proper initialization to work. We introduce an override for capture_envelope: as it is meant to be a "sibling" to capture_event, it makes sense for us to also make sure events registrered in this way are intercepted, even if we don't currently expect any of our tests to explicitly cause it to be used.
Before this fix, the Sentry module sent events for WARNING- level logs, even if sentry_logging_level was registered as "error" or higher. The fix itself is minor: setup of the integration mistakenly set the hardcoded WARNING level to the event handler and the sentry_logging_level to the breadcrumb handler, when they should have been the other way around. The largest part of the diff is a reworking of the tests in order to properly replicate the issue: * The test previously emitted a fake log event directly using the integration's handler's emit-method, which skipped the part of the logic that actually filters based on logging level. This has been changed to use a bespoke NoopHandler and dedicated Logger, so that the tests can emit "actual logs" and test Sentry as accurately as possible. * The tests were not configured to use a non-default logging level, thus making it so that none of them caught the fact we were basically hard-coding the setting to WARNING-level. The tests now set the logging level to ERROR in order to make sure the configuration parameter works when it is non-default. * Changes to configuration (especially ignored loggers) were leaking from one test into others. The tests were directly mutating the `odoo.tools.config.options` mapping, without resetting it afterward, leaving the changes in place for subsequent tests. Introduced a helper method `patch_config` that can be used to patch the config object so that the patch is undone at the end of the test. NOTE: this commit was cherry-picked from d24f3d7, and includes some changes to test code that was not in the original due to conflicts.
65aee02 to
1e8bc06
Compare
|
/ocabot merge nobump |
|
What a great day to merge this nice PR. Let's do it! |
|
Hi @dnplkndll Thank you for your PR Could you check if you could get the following fix and test, please? |
|
Congratulations, your PR was merged at 7442e31. Thanks a lot for contributing to OCA. ❤️ |
|
@moylop260 did you mean to do /ocabot migration sentry |
I noticed that but did not see why needed. something a test missed? will take a look. |
|
still green #3181 |
No description provided.