Skip to content

Conversation

anna-cross
Copy link

Changes

The Heroku Telemetry Team is looking to update the current Heroku semantic conventions to match our existing documentation for Fir generation applications. This PR aligns the semantic conventions with the official Heroku OpenTelemetry Signals and Attributes Reference.

What we are changing

Updated Attributes to Match Official Documentation

  • Removed non-documented attributes: heroku.dyno_index, heroku.dyno_type, heroku.release.creation_timestamp, heroku.release.commit
  • Kept only officially documented attributes:
    • heroku.app.id - unique identifier of app
    • heroku.app.name - name of application
    • heroku.release.id - unique identifier of app release
    • heroku.release.version - version of app release when telemetry is generated
    • heroku.workload.id - workload identifier, as defined by the process type

Additional Information

  • All attributes are automatically provided by the Heroku platform
  • Attributes are specific to Heroku Fir applications (not traditional Cedar dynos)
  • Service-level attributes can be configured via standard OTEL environment variables (OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES)

(Note: I'm currently going through internal process of getting CLA signed)

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)

Update Heroku attributes to reflect only officially documented attributes from Heroku OpenTelemetry Signals and Attributes Reference.
Copy link

CLA Not Signed

Comment on lines -8 to -19
- id: heroku.release.creation_timestamp
# Core Application Attributes
- id: heroku.app.id
type: string
stability: development
stability: stable
brief: >
Time and date the release was created
examples: [ '2022-10-23T18:00:42Z' ]
- id: heroku.release.commit
The unique identifier of the Heroku application.
This is a UUID that uniquely identifies the application across the Heroku platform.
examples: [ '9daa2797-e49b-4624-932f-ec3f9688e3da', 'c3d3df33-8afb-4323-ac49-a9bf41a50dd1' ]
note: >
This attribute is automatically provided by Heroku and cannot be customized.
- id: heroku.app.name
type: string
stability: development
stability: stable
brief: >
Commit hash for the current release
examples: [ 'e6134959463efd8966b20e75b913cafe3f5ec' ]
Copy link
Contributor

@thompson-tomo thompson-tomo Oct 5, 2025

Choose a reason for hiding this comment

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

By convention we don't remove attributes in semantic conventions but instead we deprecate them, so could you please add the deprecation object/properties to the old object rather than removing them.

Comment on lines 5 to +14
name: heroku
brief: >
[Heroku dyno metadata](https://devcenter.heroku.com/articles/dyno-metadata)
Heroku Fir Application Attributes as defined in the
[Heroku OpenTelemetry Signals and Attributes Reference](https://devcenter.heroku.com/articles/heroku-opentelemetry-signals-and-attributes-reference)
attributes:
- ref: heroku.release.creation_timestamp
requirement_level: opt_in
- ref: heroku.release.commit
requirement_level: opt_in
- ref: heroku.app.id
requirement_level: opt_in
- ref: heroku.app.name
- ref: heroku.workload.id
- ref: heroku.release.id
- ref: heroku.release.version
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you have an attempt at setting the role of the attributes as per https://opentelemetry.io/docs/specs/semconv/how-to-write-conventions/resource-and-entities/#how-to-define-identifying-attributes.

My thought would be the entity should actually be heroku.app with heroku.release.id & heroku.app.id as identifying with others being descriptive.

- ref: heroku.app.id
requirement_level: opt_in
- ref: heroku.app.name
- ref: heroku.workload.id
Copy link
Contributor

Choose a reason for hiding this comment

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

So an entity represents an object of interest associated with produced telemetry: traces, metrics, logs, profiles etc.

Based on that a heroku workload appears that it should be defined as a seperate object/entity.

@github-project-automation github-project-automation bot moved this from Untriaged to Blocked in Semantic Conventions Triage Oct 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

2 participants