-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Describe the bug
The pyroscope python agent does not work correctly on Mac OS.
To Reproduce
Native libraries being used:
"msgspec==0.19.0",
"pyroscope-io>=0.8.11",
"uvloop>=0.21.0,
"numba==0.61.2",
"gunicorn>=23.0.0,
"uvicorn-worker==0.3.0",
"uvicorn[standard]>=0.34.3",
Minimal pyroscope configuration (see below). Spans configured as
with pyroscope.tag_wrapper({"endpoint": "/my-endpoont"}):
....Pyroscope server running as a docker container using docker-compose:
pyroscope:
image: grafana/pyroscope:latest
container_name: pyroscope
ports:
- "4040:4040"
volumes:
- pyroscope-storage:/var/lib/pyroscope
command: ["server"]
restart: unless-stopped
networks:
- my_network
volumes:
pyroscope-storage:
Expected behavior
I would expect the application to report data, but I can't see any of my data in the Grafana Pyroscope data-source.
When i start my process, I either get these logs on console
2025-08-04T10:51:14.395Z WARN py_spy::python_process_info > Interpreter address from _PyRuntime symbol is invalid 0000000000000000
2025-08-04T10:51:14.449Z WARN py_spy::python_process_info > Interpreter address from _PyRuntime symbol is invalid 0000000000000000
when using a simple configuration such as
pyroscope.configure(
application_name="my-service",
server_address=os.getenv("PYROSCOPE_SERVER_ADDRESS", "http://localhost:4040"),
enable_logging=True
)or something like
2025-08-04T10:59:38.562Z WARN py_spy::sampler > Failed to get initialization status from PythonSpyThread: receiving on a closed channel
2025-08-04T10:59:38.667Z WARN py_spy::sampler > Failed to get initialization status from PythonSpyThread: receiving on a closed channel
when adding this option to the configuration
detect_subprocesses=True,Environment
- Deployment tool: uv 0.7.13
- Python version: 3.13.5 (3.13.5 (main, Jun 12 2025, 12:22:43) [Clang 20.1.4 ])
- Platform: macOS-15.5-arm64-arm-64bit-Mach-O
Additional Context
I have a python application using some native libaries such as msgspec, uvloop, Numba, uvicorn, or gunicorn
I am running my application as a Mac OS process