-
-
Notifications
You must be signed in to change notification settings - Fork 0
Document resource detectors and the free-threaded profiling path #181
Description
Two things already work and are undocumented. No code changes.
1. OpenTelemetry resource detectors need no instrument
Resource.create calls _build_resource_detectors(), which reads the OTEL_EXPERIMENTAL_RESOURCE_DETECTORS environment variable (* is accepted) and loads detectors from the opentelemetry_resource_detector entry-point group. Installing e.g. opentelemetry-resourcedetector-process and setting that variable enriches the resource with no lite-bootstrap change at all.
One consequence worth stating explicitly, because it will surprise someone: explicitly-passed resource attributes merge last, so lite-bootstrap's service_name wins over OTEL_SERVICE_NAME.
Every opentelemetry-resourcedetector-* package is pure Python, so this path is free-threading clean.
2. Sentry is the continuous-profiling path on free-threaded CPython
pyroscope-io publishes no free-threaded wheels, which is #171. sentry-sdk is pure Python and offers continuous profiling, so free-threaded deployments that want profiling already have a supported route through the Sentry instrument. Worth saying next to the pyroscope docs, and worth referencing from #171 — it does not close that issue, but it removes the "no profiling at all on ft" reading of it.
Where
Both belong in docs/, per the four-homes table in AGENTS.md: a user needs them and neither is readable from lite_bootstrap/.