Add log timers around all outbound communications.

Review Request #14372 — Created March 18, 2025 and updated — Latest diff uploaded

Information

rbintegrations
release-4.x

Reviewers

From time to time, network issues or service outages can cause slow or
blocked communication, which can be difficult to diagnose.

To help diagnose these problems, rbintegrations now logs the time taken
for all outbound communications with third-party services, escalating
the logs to warnings or critical errors if the service takes too long to
respond.

Errors encountered during this time are logged with the same trace ID
that the timing logs use.

Since the new logging functionality used for this does not exist in
Review Board 7.0.x or older, a backport of log_timed() is provided in
rbintegrations.util.compat.logs. This module is considered internal
and will go away when we can rely on the modern support.

All unit tests pass.

Diff Revision 1 (Latest)

Commits

First Last Summary ID Author
Add log timers around all outbound communications.
From time to time, network issues or service outages can cause slow or blocked communication, which can be difficult to diagnose. To help diagnose these problems, rbintegrations now logs the time taken for all outbound communications with third-party services, escalating the logs to warnings or critical errors if the service takes too long to respond. Errors encountered during this time are logged with the same trace ID that the timing logs use. Since the new logging functionality used for this does not exist in Review Board 7.0.x or older, a backport of `log_timed()` is provided in `rbintegrations.util.compat.logs`. This module is considered internal and will go away when we can rely on the modern support.
c0846059228cfd9aee09350ae234fc374e03202e Christian Hammond
rbintegrations/asana/views.py
rbintegrations/circleci/integration.py
rbintegrations/discord/integration.py
rbintegrations/idonethis/integration.py
rbintegrations/idonethis/tests.py
rbintegrations/matrix/integration.py
rbintegrations/msteams/integration.py
rbintegrations/msteams/tests.py
rbintegrations/slack/integration.py
rbintegrations/slack/tests.py
rbintegrations/travisci/forms.py
rbintegrations/travisci/integration.py
rbintegrations/trello/views.py
rbintegrations/util/compat/__init__.py
rbintegrations/util/compat/logs.py
Loading...