traceloop / traceloop/openllmetry

🐛 Bug Report: `opentelemetry-instrumentation-qdrant` is incompatible with `qdrant-client` version `1.16.1`

Open
#3,492 13 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue help wanted
Dominant language
Python
Stars
7.4k
Forks
1.1k
Avg merge
8d 14h
Merged PRs (30d)
2

Description

I have just upgraded qdrant-client to v1.16.1 and with opentelemetry-insturmentation-qdrant of v0.48.1 I am getting attribute error. Traceback:

chatbot      |   File "/usr/src/chatbot/app/libs/otel.py", line 144, in init_otel_instrumentation
chatbot      |     QdrantInstrumentor().instrument(tracer_provider=otel_provider)
chatbot      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot      |   File "/usr/src/chatbot/.venv/lib/python3.13/site-packages/opentelemetry/instrumentation/instrumentor.py", line 125, in instrument
chatbot      |     result = self._instrument(  # pylint: disable=assignment-from-no-return
chatbot      |         **kwargs
chatbot      |     )
chatbot      |   File "/usr/src/chatbot/.venv/lib/python3.13/site-packages/opentelemetry/instrumentation/qdrant/__init__.py", line 55, in _instrument
chatbot      |     wrap_function_wrapper(
chatbot      |     ~~~~~~~~~~~~~~~~~~~~~^
chatbot      |         MODULE,
chatbot      |         ^^^^^^^
chatbot      |         f"{wrap_object}.{wrap_method}",
chatbot      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot      |         _wrap(tracer, wrapped_method),
chatbot      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
chatbot      |     )
chatbot      |     ^
chatbot      |   File "/usr/src/chatbot/.venv/lib/python3.13/site-packages/wrapt/patches.py", line 114, in wrap_function_wrapper
chatbot      |     return wrap_object(module, name, FunctionWrapper, (wrapper,))
chatbot      |   File "/usr/src/chatbot/.venv/lib/python3.13/site-packages/wrapt/patches.py", line 60, in wrap_object
chatbot      |     (parent, attribute, original) = resolve_path(module, name)
chatbot      |                                     ~~~~~~~~~~~~^^^^^^^^^^^^^^
chatbot      |   File "/usr/src/chatbot/.venv/lib/python3.13/site-packages/wrapt/patches.py", line 52, in resolve_path
chatbot      |     original = lookup_attribute(parent, attribute)
chatbot      |   File "/usr/src/chatbot/.venv/lib/python3.13/site-packages/wrapt/patches.py", line 44, in lookup_attribute
chatbot      |     return getattr(parent, attribute)
chatbot      | AttributeError: type object 'QdrantClient' has no attribute 'upload_records'

Apparently, upload_records is no longer a method of QdrantClient, maybe some other methods are missing, I haven't checked that

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at opentelemetry/instrumentation/qdrant/init.py, where QdrantInstrumentor().instrument attempts to wrap upload_records, and compare those wrapped methods with qdrant-client 1.16.1. Check whether other referenced methods are also missing. Done means instrumentation initializes without AttributeError against that client version, with regression coverage for the compatibility case.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
observability
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.