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/.
Two things already work and are undocumented. No code changes.
1. OpenTelemetry resource detectors need no instrument
Resource.createcalls_build_resource_detectors(), which reads theOTEL_EXPERIMENTAL_RESOURCE_DETECTORSenvironment variable (*is accepted) and loads detectors from theopentelemetry_resource_detectorentry-point group. Installing e.g.opentelemetry-resourcedetector-processand 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_namewins overOTEL_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-iopublishes no free-threaded wheels, which is #171.sentry-sdkis 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 fromlite_bootstrap/.