open-telemetry / open-telemetry/opentelemetry-python
Enable ProcessResourceDetector by default
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.6k
- Forks
- 1k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 19
Description
Is your feature request related to a problem?
It would be helpful to have by default the python version of traced services. The python version is contained in process.runtime attribute: https://opentelemetry.io/docs/specs/semconv/resource/process/
Describe the solution you'd like
Currently the ProcessResourceDetector that is providing the information is not enabled by default but can be enabled via OTEL_EXPERIMENTAL_RESOURCE_DETECTORS environment variable.
From opentelemetry-sdk/src/opentelemetry/sdk/resources/__init__.py:
otel_experimental_resource_detectors = environ.get(
OTEL_EXPERIMENTAL_RESOURCE_DETECTORS, "otel"
).split(",")
if "otel" not in otel_experimental_resource_detectors:
otel_experimental_resource_detectors.append("otel")
We see that we already enable the OTELResourceDetector even if it the attributes are experimental.
So I'd like to add the ProcessResourceDetector enabled by default with something like:
otel_experimental_resource_detectors = environ.get(
- OTEL_EXPERIMENTAL_RESOURCE_DETECTORS, "otel"
+ OTEL_EXPERIMENTAL_RESOURCE_DETECTORS, "otel,process"
).split(",")
Describe alternatives you've considered
Alternatively if we are worried that sensitive data may be shared from process args we can add by default only a detector providing the process.runtime attributes.
Additional context
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in opentelemetry-sdk/src/opentelemetry/sdk/resources/init.py and read how OTEL_EXPERIMENTAL_RESOURCE_DETECTORS is parsed and how ProcessResourceDetector provides process.runtime. Check how the existing default detector behavior is covered, then verify that process.runtime is enabled by default while the environment-variable configuration remains usable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- observability
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100