-
Notifications
You must be signed in to change notification settings - Fork 268
Update Heroku Semantic Conventions to Match Official Documentation #2843
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Update Heroku Semantic Conventions to Match Official Documentation #2843
Conversation
Update Heroku attributes to reflect only officially documented attributes from Heroku OpenTelemetry Signals and Attributes Reference.
|
- 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' ] |
There was a problem hiding this comment.
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.
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 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
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
heroku.dyno_index
,heroku.dyno_type
,heroku.release.creation_timestamp
,heroku.release.commit
heroku.app.id
- unique identifier of appheroku.app.name
- name of applicationheroku.release.id
- unique identifier of app releaseheroku.release.version
- version of app release when telemetry is generatedheroku.workload.id
- workload identifier, as defined by the process typeAdditional Information
OTEL_SERVICE_NAME
,OTEL_RESOURCE_ATTRIBUTES
)(Note: I'm currently going through internal process of getting CLA signed)
Merge requirement checklist
[chore]