Create `app.installation.id` attribute (#1897)

Co-authored-by: jason plumb <75337021+breedx-splk@users.noreply.github.com>
Co-authored-by: Joao Grassi <5938087+joaopgrassi@users.noreply.github.com>
This commit is contained in:
Bence Hornák 2025-03-25 22:01:08 +01:00 committed by GitHub
parent 3358c170c3
commit e5ff72688a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 98 additions and 0 deletions

22
.chloggen/1897.yaml Normal file
View File

@ -0,0 +1,22 @@
# Use this changelog template to create an entry for release notes.
#
# If your change doesn't affect end users you should instead start
# your pull request title with [chore] or use the "Skip Changelog" label.
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: new_component
# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
component: app
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Create `app.installation.id` attribute
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
# The values here must be integers.
issues: [1874, 1897]
# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:

1
.github/CODEOWNERS vendored
View File

@ -56,6 +56,7 @@
# Mobile semantic conventions
/docs/mobile/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers
/model/app/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers
/model/device/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers
# K8s semantic conventions

View File

@ -23,6 +23,7 @@ body:
# DO NOT manually edit it.
# Start semconv area list
- area:android
- area:app
- area:artifact
- area:aspnetcore
- area:aws

View File

@ -15,6 +15,7 @@ body:
# DO NOT manually edit it.
# Start semconv area list
- area:android
- area:app
- area:artifact
- area:aspnetcore
- area:aws

View File

@ -34,6 +34,7 @@ All registered attributes are listed by namespace in this registry.
Currently, the following namespaces exist:
- [Android](android.md)
- [App](app.md)
- [Artifact](artifact.md)
- [Aspnetcore](aspnetcore.md)
- [AWS](aws.md)

View File

@ -0,0 +1,30 @@
<!-- NOTE: THIS FILE IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/attribute_namespace.md.j2 -->
# App
## Application Attributes
Describes attributes related to client-side applications (e.g. web apps or mobile apps).
| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <a id="app-installation-id" href="#app-installation-id">`app.installation.id`</a> | string | A unique identifier representing the installation of an application on a specific device [1] | `2ab2916d-a51f-4ac8-80ee-45ac31a28092` | ![Development](https://img.shields.io/badge/-development-blue) |
**[1] `app.installation.id`:** Its value SHOULD persist across launches of the same application installation, including through application upgrades.
It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
Additionally, users might be able to reset this value (e.g. by clearing application data).
If an app is installed multiple times on the same device (e.g. in different accounts on Android), each `app.installation.id` SHOULD have a different value.
If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
For Android, examples of `app.installation.id` implementations include:
- [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
- A globally unique UUID which is persisted across sessions in your application.
- [App set ID](https://developer.android.com/identity/app-set-id).
- [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).

33
model/app/registry.yaml Normal file
View File

@ -0,0 +1,33 @@
groups:
- id: registry.app
type: attribute_group
display_name: Application Attributes
brief: >
Describes attributes related to client-side applications (e.g. web apps or mobile apps).
stability: development
attributes:
- id: app.installation.id
type: string
stability: development
brief: >
A unique identifier representing the installation of an application on a specific device
note: |
Its value SHOULD persist across launches of the same application installation, including through application upgrades.
It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
Additionally, users might be able to reset this value (e.g. by clearing application data).
If an app is installed multiple times on the same device (e.g. in different accounts on Android), each `app.installation.id` SHOULD have a different value.
If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
For Android, examples of `app.installation.id` implementations include:
- [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
- A globally unique UUID which is persisted across sessions in your application.
- [App set ID](https://developer.android.com/identity/app-set-id).
- [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).
examples:
- 2ab2916d-a51f-4ac8-80ee-45ac31a28092

9
model/app/resources.yaml Normal file
View File

@ -0,0 +1,9 @@
groups:
- id: resource.app
type: resource
stability: development
name: app
brief: >
An app used directly by end users — like mobile, web, or desktop.
attributes:
- ref: app.installation.id