pydantic / logfire

Uncomplicated Observability for Python and beyond! 🪵🔥
https://docs.pydantic.dev/logfire/
MIT License
1.62k stars 46 forks source link

psutil 5.9.8 not supported #192

Closed SaboniAmine closed 1 month ago

SaboniAmine commented 1 month ago

Description

Hello,

While working on code carbon integration, I encountered an incompatibility of logfire & latest psutil version. We use it only for test purposes, so I'm not asking a change from your side, but just to inform you that there is a total incompatibility, both auth/info return the same error:

logfire auth Traceback (most recent call last): File "/Users/amine/anaconda3/envs/cc/bin/logfire", line 5, in from logfire.cli import main File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/logfire/init.py", line 7, in from ._internal.auto_trace import AutoTraceModule File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/logfire/_internal/auto_trace/init.py", line 9, in from .import_hook import LogfireFinder File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/logfire/_internal/auto_trace/import_hook.py", line 11, in from .rewrite_ast import exec_source File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/logfire/_internal/auto_trace/rewrite_ast.py", line 11, in from ..ast_utils import BaseTransformer, LogfireArgs File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/logfire/_internal/ast_utils.py", line 14, in from .stack_info import StackInfo, get_filepath_attribute File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/logfire/_internal/stack_info.py", line 10, in import opentelemetry.sdk.trace File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/opentelemetry/sdk/trace/init.py", line 59, in from opentelemetry.sdk.resources import Resource File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/opentelemetry/sdk/resources/init.py", line 79, in import psutil File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/psutil/init.py", line 123, in from . import _psosx as _psplatform File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/psutil/_psosx.py", line 37, in PAGESIZE = cext_posix.getpagesize() AttributeError: module 'psutil._psutil_posix' has no attribute 'getpagesize'

running with psutil 5.7.3 is totally fine, we'll do the switch from our side.

Python, Logfire & OS Versions, related packages (not required)

logfire="0.33.0"
platform="macOS-14.5-arm64-arm-64bit"
python="3.9.19 | packaged by conda-forge | (main, Mar 20 2024, 12:55:20) 
[Clang 16.0.6 ]"
[related_packages]
requests="2.28.1"
pydantic="2.7.1"
fastapi="0.111.0"
protobuf="4.25.3"
rich="13.7.1"
tomli="2.0.1"
executing="2.0.1"
opentelemetry-api="1.24.0"
opentelemetry-exporter-otlp-proto-common="1.24.0"
opentelemetry-exporter-otlp-proto-http="1.24.0"
opentelemetry-instrumentation="0.45b0"
opentelemetry-proto="1.24.0"
opentelemetry-sdk="1.24.0"
opentelemetry-semantic-conventions="0.45b0"
alexmojaki commented 1 month ago

The last part of your traceback:

    import psutil
  File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/psutil/__init__.py", line 123, in <module>
    from . import _psosx as _psplatform
  File "/Users/amine/anaconda3/envs/cc/lib/python3.9/site-packages/psutil/_psosx.py", line 37, in <module>
    PAGESIZE = cext_posix.getpagesize()
AttributeError: module 'psutil._psutil_posix' has no attribute 'getpagesize'

Suggests that just import psutil doesn't work on your system, unrelated to logfire.

We already use:

https://github.com/pydantic/logfire/blob/f82833d84f1f8df33e9f4cfaa3183049133e99b5/requirements-dev.lock#L268

SaboniAmine commented 1 month ago

Thanks for the feedback. Surprisingly, psutil 5.9.8 have no trouble being imported by its own from my env. If it's already supported from your side, then you are right to ignore this.