Skip to content

Exclude process.executable entity from describing runtime#3706

Open
thompson-tomo wants to merge 10 commits into
open-telemetry:mainfrom
thompson-tomo:executable_usage
Open

Exclude process.executable entity from describing runtime#3706
thompson-tomo wants to merge 10 commits into
open-telemetry:mainfrom
thompson-tomo:executable_usage

Conversation

@thompson-tomo

@thompson-tomo thompson-tomo commented May 9, 2026

Copy link
Copy Markdown
Contributor

Fixes #

Changes

This ensures that the process.executable is not used to describe the runtime as we already have process.runtime for this. There is no benefit to also using process.executable given that it doesn't add anything of benefit to the user given that the build_id is not understandable by users.

Has also been discussed with the profiling sig to understand the usage of the build_id attribute: https://cloud-native.slack.com/archives/C03J794L0BV/p1778220434077029

Important

Pull requests acceptance are subject to the triage process as described in Issue and PR Triage Management.
PRs that do not follow the guidance above, may be automatically rejected and closed.

Merge requirement checklist

  • CONTRIBUTING.md guidelines followed.
  • Change log entry added, according to the guidelines in When to add a changelog entry.
    • If your PR does not need a change log, start the PR title with [chore]
  • Links to the prototypes or existing instrumentations (when adding or changing conventions)

@thompson-tomo
thompson-tomo requested review from a team as code owners May 9, 2026 10:13
@github-actions github-actions Bot added enhancement New feature or request area:process labels May 9, 2026
@thompson-tomo thompson-tomo changed the title Improve description of what the entity is for Exclude process.executable from describing runtime May 9, 2026
Comment thread model/process/entities.yaml Outdated
Comment on lines +67 to +68
A single process executable may be run in multiple process instances
but it should not be used when the executable corresponds to the runtime.

@Gandem Gandem May 9, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The profiler still needs process.executable (specifically build_id) when the executable is a runtime, in order to symbolize native frames from the runtime itself (e.g. function calls in the python / nodejs / ruby runtimes themselves). Dropping process.executable in those cases removes the symbolization metadata that buildid was originally introduced for.

IMHO process.executable and process.runtime still describe different things even when both relate to python: process.runtime captures the logical runtime typically emitted from inside the process by the runtime SDK, while process.executable captures the OS binary image (basename of /proc/[pid]/exe, build_id for symbolization) as observed externally. They serve distinct consumers (language SDKs vs profilers/symbolizers), so there's no real overlap to remove.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per discussion on slack, this change is purely focussed on describing the entity (resource) use case, the ability to include the attributes on the attribute on the mapping is unaffected.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry for catching up just now. I agree with @Gandem and that the proposed change in note and brief are breaking changes for Profiling.
Instead, I think, it would be better to rephrase it to clearify its purpose. At the moment it reads to me, like there could be only a single process.executable..... So maybe something like A executable of a process and Represents a executable file associated with a process. This single execitable may be run by multiple process instances.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@florianl i am not following, this note/brief is on the entity which can only be on a resource hence the resource can only contain 1 executable. The usage of the attributes at other locations ie mappings is unchanged.

What part of the brief change would be a breaking change given that it only was just recently split out of the process entity? This in fact preserves the previous behaviour where the attributes where within the process entity.

What part of the note change is a breaking change? Up until the latest release, only path/name existed on an entity/resource.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have concerns regarding the statement, [..] it should not be used when the executable corresponds to the runtime.. We should avoid requiring a different attribute based on whether a match occurs, especially given that the definition of runtime remains unclear. As an end user, I expect an executable to consistently use the same attribute.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We already the definition of process.runtime if we need to clarify and improve that, let's do so. We could even add the htlhash to the runtime if you think that is of value. That way on a profile payload you could have both the hash of the executable and the runtime at the resource level.

I would argue as an end-user I am interested in what piece of code has been executed and has lead to the telemetry being generated. The runtime is of much less significance.

This approach for me increases consistency as it will ensure the executable always corresponds to what was executed to generate the telemetry. Note It was the feedback on slack to ensure scripts don't overload the executable hence splitting them.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@florianl following up on this. Please note, the brief is only referring to the usage of the entity & the corresponding attributes as part of the resource.

The usage of the process.executable attributes elsewhere is unaffected. This means that the only difference to prior to #3536 was merged is that name & path would not appear on the resource. However with #3686 path would return as entrypoint on the process entity hence there should not be an impact on profiling.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As the current state of the change still mentions [..] but it should not be used when the executable corresponds to the runtime., I'm still concerned about this change.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not following Where exactly the concern is?

The profiles/mapping message etc can still reference/use process.executable.* attributes even to describe the runtime which and that will not change. All that is impacted is the resource attributes dictionary contents hence why the note is on the entity.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@florianl i have reworded the note to make it clearer that the note corresponds to resource attributes please review as there should be nothing causing an issue for profiling when comparing to the state prior to #3536.

@thompson-tomo thompson-tomo changed the title Exclude process.executable from describing runtime Exclude process.executable entity from describing runtime May 11, 2026
@github-actions

Copy link
Copy Markdown

This PR has been labeled as stale due to lack of activity. It will be automatically closed if there is no further activity over the next 7 days.

@github-actions github-actions Bot added the Stale label May 26, 2026
@github-actions github-actions Bot removed the Stale label May 31, 2026
Comment thread .chloggen/executable_usage.yaml Outdated
Co-authored-by: Christophe Kamphaus <christophe.kamphaus@gmail.com>
@lmolkova lmolkova moved this from Untriaged to Awaiting codeowners approval in Semantic Conventions Triage Jun 1, 2026
@github-actions

Copy link
Copy Markdown

This PR has been labeled as stale due to lack of activity. It will be automatically closed if there is no further activity over the next 7 days.

@github-actions github-actions Bot added the Stale label Jun 16, 2026
Clarified notes and descriptions for process runtime and executable entities.
@github-actions github-actions Bot removed the Stale label Jun 24, 2026
@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

This PR has been labeled as stale due to lack of activity. It will be automatically closed if there is no further activity over the next 7 days.

@github-actions github-actions Bot added the Stale label Jul 9, 2026
Copilot AI review requested due to automatic review settings July 15, 2026 05:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the process entity definitions to clarify that process.executable should not be used to describe a language runtime, and that process.runtime is the appropriate entity for runtime details.

Changes:

  • Adds/adjusts entity text for process.runtime and process.executable to clarify intended usage (especially around runtime vs executable identity).
  • Updates generated registry documentation to reflect the updated process.executable description.
  • Adds a changelog entry describing the clarification.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
model/process/entities.yaml Updates entity brief/note guidance for process.runtime and process.executable.
docs/registry/entities/process.md Regenerates/updates the registry description for process.executable to match the model.
.chloggen/executable_usage.yaml Adds release-note entry for the behavior clarification.

Comment thread model/process/entities.yaml
Comment thread model/process/entities.yaml
Comment thread model/process/entities.yaml Outdated
@github-actions github-actions Bot removed the Stale label Jul 16, 2026
Comment thread model/process/entities.yaml Outdated
Co-authored-by: Christophe Kamphaus <christophe.kamphaus@gmail.com>
@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Jul 21, 2026

Copy link
Copy Markdown

Pull request dashboard status

Status last refreshed: 2026-07-25 21:52:37 UTC.

  • Waiting on: Reviewers
  • Next step: Review the latest changes.

This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:process enhancement New feature or request

Projects

Status: Awaiting codeowners approval

Development

Successfully merging this pull request may close these issues.

6 participants