Skip to content

Identify each process that reports - #296

Open
unflxw wants to merge 1 commit into
mainfrom
per-process-resource-identity
Open

unflxw wants to merge 1 commit into
mainfrom
per-process-resource-identity

Conversation

@unflxw

@unflxw unflxw commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

The resource the providers report under is built without running the
OpenTelemetry resource detectors, so it carries neither a
service.instance.id nor a process.pid, and AppSignal has nothing to
tell one process from another when several report the same metric.
Building it with Resource.create runs the detectors, and asking for
the one that reports the process adds the process id. Every provider
re-runs them after a fork, so a forked worker gets an identity of its
own rather than its parent's.

The appsignal.service.process_id attribute is dropped. It is read
nowhere, and it is captured once at startup, so a forked worker reported
the process id of its parent.

Stacked on #295, which this depends on for the OpenTelemetry version
range. Review and merge that one first.

Pairs with appsignal/appsignal-collector#449, which keys the
cumulative-to-delta store by the resource attributes, and
appsignal/appsignal-ruby#1629, which does the same for Ruby.

@backlog-helper

Copy link
Copy Markdown

Hi @unflxw,

We've found some issues with your Pull Request.

  • This Pull Request is missing labels. Please add labels to help identify types of Pull Requests. - (More info)

New issue guide | Backlog management | Rules | Feedback

@unflxw
unflxw force-pushed the per-process-resource-identity branch from ce1b4a4 to 0edd573 Compare September 30, 2026 14:30
@unflxw
unflxw force-pushed the contrib-logging-handler branch from d5b62c9 to e4e36b8 Compare September 30, 2026 15:13
@unflxw
unflxw force-pushed the per-process-resource-identity branch from 0edd573 to 10ec810 Compare September 30, 2026 15:16
@unflxw
unflxw force-pushed the contrib-logging-handler branch from e4e36b8 to 3ca65d0 Compare September 30, 2026 15:20
@unflxw
unflxw force-pushed the per-process-resource-identity branch from 10ec810 to 0c8028f Compare September 30, 2026 15:21
@unflxw
unflxw changed the base branch from contrib-logging-handler to main October 2, 2026 08:36
The resource the providers report under is built without running the
OpenTelemetry resource detectors, so it carries neither a
`service.instance.id` nor a `process.pid`, and AppSignal has nothing to
tell one process from another when several report the same metric.
Building it with `Resource.create` runs the detectors, and asking for
the one that reports the process adds the process id. Every provider
re-runs them after a fork, so a forked worker gets an identity of its
own rather than its parent's.

The `appsignal.service.process_id` attribute is dropped. It is read
nowhere, and it is captured once at startup, so a forked worker reported
the process id of its parent.
@unflxw
unflxw marked this pull request as ready for review October 2, 2026 08:37
@unflxw
unflxw force-pushed the per-process-resource-identity branch from 0c8028f to d2befed Compare October 2, 2026 08:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant