Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

'ddtrace.contrib.algoliasearch' has no attribute 'patch' #11603

Closed
melhin opened this issue Dec 2, 2024 · 2 comments
Closed

'ddtrace.contrib.algoliasearch' has no attribute 'patch' #11603

melhin opened this issue Dec 2, 2024 · 2 comments

Comments

@melhin
Copy link

melhin commented Dec 2, 2024

Summary of problem

We have a django(5.1.3) application . When patching all modules for datadog APM this error is shown

AttributeError: module 'ddtrace.contrib.algoliasearch' has no attribute 'patch'

Which version of dd-trace-py are you using?

ddtrace - 2.17.0
algoliasearch - 4.9.2

@mabdinur mabdinur self-assigned this Dec 12, 2024
@mabdinur
Copy link
Contributor

Hey @melhin,

Thanks for opening this issue. The ddtrace library does not support algoliasearch>=3.0. We will look into expanding the support for this integration.

On a side note the AttributeError: module 'ddtrace.contrib.algoliasearch' has no attribute 'patch' error is not actionable and is hard to understand. I will look into improving this user experience.

mabdinur added a commit that referenced this issue Dec 19, 2024
…ions (#11759)

## Description

- Improves the error message generated when `ddtrace` failed to
patch/enable an integration.
- Ensure patching modules and sub-modules are wrapped in a try-except.
The ddtrace library should not crash an application if an integration
can not be patched.

## Motivation

Prevent issues like this:
#11603

## Checklist
- [x] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing
strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] Reviewer has checked that all the criteria below are met 
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
github-actions bot pushed a commit that referenced this issue Dec 19, 2024
…ions (#11759)

## Description

- Improves the error message generated when `ddtrace` failed to
patch/enable an integration.
- Ensure patching modules and sub-modules are wrapped in a try-except.
The ddtrace library should not crash an application if an integration
can not be patched.

## Motivation

Prevent issues like this:
#11603

## Checklist
- [x] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing
strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] Reviewer has checked that all the criteria below are met
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

(cherry picked from commit 79069a3)
github-actions bot pushed a commit that referenced this issue Jan 2, 2025
…ions (#11759)

## Description

- Improves the error message generated when `ddtrace` failed to
patch/enable an integration.
- Ensure patching modules and sub-modules are wrapped in a try-except.
The ddtrace library should not crash an application if an integration
can not be patched.

## Motivation

Prevent issues like this:
#11603

## Checklist
- [x] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing
strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] Reviewer has checked that all the criteria below are met
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

(cherry picked from commit 79069a3)
@mabdinur
Copy link
Contributor

mabdinur commented Jan 2, 2025

Error handling for this exception is merged and will be shipped in 2.19.0

@mabdinur mabdinur closed this as completed Jan 2, 2025
mabdinur added a commit that referenced this issue Jan 2, 2025
…11719)

Since ddtrace
[v1.9.0](856fa23)
modules are only patched after import. There is no need to check whether
a module exists in `ddtrace.contrib.integration_name.__init__`. If a
library is not installed, it won't be patched.

`require_modules` should only be used when a ddtrace integration
requires additional libraries (for example is web_integration can only
be enabled if web_integration_driver is also installed). Right now there
is no integrations that have such a dependency.

With this change objects exposed in
`ddtrace.contrib.<integration_name>.__all__` will always be available.
Accessing these objects will not raise an attributeerror and crash an
application: [ex](#11603).

## Checklist
- [ ] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing
strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [ ] Reviewer has checked that all the criteria below are met 
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)
mabdinur added a commit that referenced this issue Jan 6, 2025
…ions [backport 2.18] (#11796)

Backport 79069a3 from #11759 to 2.18.

## Description

- Improves the error message generated when `ddtrace` failed to
patch/enable an integration.
- Ensure patching modules and sub-modules are wrapped in a try-except.
The ddtrace library should not crash an application if an integration
can not be patched.

## Motivation

Prevent issues like this:
#11603

## Checklist
- [x] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing
strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] Reviewer has checked that all the criteria below are met 
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

Co-authored-by: Munir Abdinur <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants