traceloop / openllmetry

Open-source observability for your LLM application, based on OpenTelemetry
https://www.traceloop.com/openllmetry
Apache License 2.0
1.88k stars 159 forks source link

🐛 Bug Report: Downloading all versions of the same library #1690

Open bhattbhuwan13 opened 2 months ago

bhattbhuwan13 commented 2 months ago

Which component is this bug for?

Traceloop SDK

📜 Description

For some reasons, the installation script downloads all versions of the library. Is this intended or a bug?

👟 Reproduction steps

pip install traceloop-sdk

👍 Expected behavior

It should be downloading only the required version of a library

👎 Actual Behavior with Screenshots

Screenshot 2024-07-28 at 14 03 26

🤖 Python Version

3.10

📃 Provide any additional context for the Bug.

No response

👀 Have you spent some time to check if this bug has been raised before?

Are you willing to submit PR?

None

nirga commented 2 months ago

@bhattbhuwan13 thanks! Does the installation succeed at the end? Can you provide the output of pip freeze on your machine?

bhattbhuwan13 commented 2 months ago

It has been over 20 minutes, installation isn't complete yet.

nirga commented 2 months ago

@bhattbhuwan13 I suspect the issue is with some conflict in your environment, and pip trying to resolve it (that's why you see it downloading these versions - it's trying to find a version that's compatible). We don't see it with other users so I'd suggest using a clean environment with pyenv or poetry.

bhattbhuwan13 commented 2 months ago

I used pyenv to create a virtual environment(using python 3.10) and then installed using pip

nirga commented 2 months ago

@bhattbhuwan13 just ran that on my environment. Can you share your pip freeze output?

https://github.com/user-attachments/assets/69e13e14-6cd5-4027-a30a-429e7b63a4db

bhattbhuwan13 commented 2 months ago

Here is the requirements file:

annotated-types==0.7.0
anthropic==0.31.2
anyio==4.4.0
backoff==2.2.1
certifi==2024.7.4
charset-normalizer==3.3.2
colorama==0.4.6
Deprecated==1.2.14
distro==1.9.0
exceptiongroup==1.2.2
filelock==3.15.4
fsspec==2024.6.1
googleapis-common-protos==1.63.2
grpcio==1.65.1
h11==0.14.0
httpcore==1.0.5
httpx==0.27.0
huggingface-hub==0.24.2
idna==3.7
importlib_metadata==7.1.0
inflection==0.5.1
Jinja2==3.1.4
jiter==0.5.0
MarkupSafe==2.1.5
monotonic==1.6
opentelemetry-api==1.25.0
opentelemetry-exporter-otlp-proto-common==1.25.0
opentelemetry-exporter-otlp-proto-grpc==1.25.0
opentelemetry-exporter-otlp-proto-http==1.25.0
opentelemetry-instrumentation==0.46b0
opentelemetry-instrumentation-alephalpha==0.26.0
opentelemetry-instrumentation-anthropic==0.26.0
opentelemetry-instrumentation-bedrock==0.26.0
opentelemetry-instrumentation-chromadb==0.26.0
opentelemetry-instrumentation-cohere==0.26.0
opentelemetry-instrumentation-google-generativeai==0.26.0
opentelemetry-instrumentation-haystack==0.26.0
opentelemetry-instrumentation-langchain==0.26.0
opentelemetry-instrumentation-llamaindex==0.26.0
opentelemetry-instrumentation-marqo==0.26.0
opentelemetry-instrumentation-milvus==0.26.0
opentelemetry-instrumentation-mistralai==0.26.0
opentelemetry-instrumentation-ollama==0.26.0
opentelemetry-instrumentation-openai==0.26.0
opentelemetry-instrumentation-pinecone==0.26.0
opentelemetry-instrumentation-qdrant==0.26.0
opentelemetry-instrumentation-replicate==0.26.0
opentelemetry-instrumentation-requests==0.46b0
opentelemetry-instrumentation-sqlalchemy==0.46b0
opentelemetry-instrumentation-together==0.26.0
opentelemetry-instrumentation-transformers==0.26.0
opentelemetry-instrumentation-urllib3==0.46b0
opentelemetry-instrumentation-vertexai==0.26.0
opentelemetry-instrumentation-watsonx==0.26.0
opentelemetry-instrumentation-weaviate==0.26.0
opentelemetry-proto==1.25.0
opentelemetry-sdk==1.25.0
opentelemetry-semantic-conventions==0.46b0
opentelemetry-semantic-conventions-ai==0.3.6
opentelemetry-util-http==0.46b0
packaging==24.1
posthog==3.5.0
protobuf==4.25.4
pydantic==2.8.2
pydantic_core==2.20.1
python-dateutil==2.9.0.post0
PyYAML==6.0.1
regex==2024.7.24
requests==2.32.3
six==1.16.0
sniffio==1.3.1
tenacity==8.5.0
tiktoken==0.7.0
tokenizers==0.19.1
tqdm==4.66.4
traceloop-sdk==0.26.0
typing_extensions==4.12.2
urllib3==2.2.2
wrapt==1.16.0
zipp==3.19.2
nirga commented 2 months ago

Looks like the installation is finally done?

bhattbhuwan13 commented 2 months ago

Haha. Yes it finished installing. Trying it out now.

nirga commented 2 months ago

Very weird that it took so long! I wonder what other package was causing this weird issue because the sdk by itself installs quickly.

bhattbhuwan13 commented 2 months ago

It didn't take this long. It took 20-25 minutes to install. It was grpcio and one other package(forgot what it was)

nirga commented 2 months ago

Beh that's OpenTelemetry dependencies we don't really control 🫠 Did you had something like that installed before?

bhattbhuwan13 commented 2 months ago

I hadn't installed OpenTelemetry or grpcio before

nirga commented 2 months ago

Very weird. I'll try to reproduce it some more tomorrow but have never encountered it.

bhattbhuwan13 commented 2 months ago

Some context you might need to reproduce:

MacOS, M2 pro chip
python 3.10
codefromthecrypt commented 2 months ago

ps the grpc exporter thing could be considered something we can make optional, as from a base instrumentation POV it isn't required. This also complicates alpine #1454. proto over http is less difficult to manage from a platform POV, and also as I understand universally supported on collectors.