open-telemetry / open-telemetry/opentelemetry-python

Enable ProcessResourceDetector by default

Open
#3,916 6 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.