Skip to content

Commit e5ff726

Browse files
bencehornakbreedx-splkjoaopgrassi
authored
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>
1 parent 3358c17 commit e5ff726

8 files changed

Lines changed: 98 additions & 0 deletions

File tree

.chloggen/1897.yaml

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

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656

5757
# Mobile semantic conventions
5858
/docs/mobile/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers
59+
/model/app/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers
5960
/model/device/ @open-telemetry/specs-semconv-approvers @open-telemetry/semconv-mobile-approvers
6061

6162
# K8s semantic conventions

.github/ISSUE_TEMPLATE/bug_report.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ body:
2323
# DO NOT manually edit it.
2424
# Start semconv area list
2525
- area:android
26+
- area:app
2627
- area:artifact
2728
- area:aspnetcore
2829
- area:aws

.github/ISSUE_TEMPLATE/change_proposal.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ body:
1515
# DO NOT manually edit it.
1616
# Start semconv area list
1717
- area:android
18+
- area:app
1819
- area:artifact
1920
- area:aspnetcore
2021
- area:aws

docs/attributes-registry/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ All registered attributes are listed by namespace in this registry.
3434
Currently, the following namespaces exist:
3535

3636
- [Android](android.md)
37+
- [App](app.md)
3738
- [Artifact](artifact.md)
3839
- [Aspnetcore](aspnetcore.md)
3940
- [AWS](aws.md)

docs/attributes-registry/app.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<!-- NOTE: THIS FILE IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
2+
<!-- see templates/registry/markdown/attribute_namespace.md.j2 -->
3+
4+
# App
5+
6+
## Application Attributes
7+
8+
Describes attributes related to client-side applications (e.g. web apps or mobile apps).
9+
10+
| Attribute | Type | Description | Examples | Stability |
11+
|---|---|---|---|---|
12+
| <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) |
13+
14+
**[1] `app.installation.id`:** Its value SHOULD persist across launches of the same application installation, including through application upgrades.
15+
It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
16+
Additionally, users might be able to reset this value (e.g. by clearing application data).
17+
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.
18+
If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
19+
Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
20+
21+
For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
22+
23+
For Android, examples of `app.installation.id` implementations include:
24+
25+
- [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
26+
- A globally unique UUID which is persisted across sessions in your application.
27+
- [App set ID](https://developer.android.com/identity/app-set-id).
28+
- [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
29+
30+
More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).

model/app/registry.yaml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
groups:
2+
- id: registry.app
3+
type: attribute_group
4+
display_name: Application Attributes
5+
brief: >
6+
Describes attributes related to client-side applications (e.g. web apps or mobile apps).
7+
stability: development
8+
attributes:
9+
- id: app.installation.id
10+
type: string
11+
stability: development
12+
brief: >
13+
A unique identifier representing the installation of an application on a specific device
14+
note: |
15+
Its value SHOULD persist across launches of the same application installation, including through application upgrades.
16+
It SHOULD change if the application is uninstalled or if all applications of the vendor are uninstalled.
17+
Additionally, users might be able to reset this value (e.g. by clearing application data).
18+
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.
19+
If multiple OpenTelemetry SDKs are used within the same application, they SHOULD use the same value for `app.installation.id`.
20+
Hardware IDs (e.g. serial number, IMEI, MAC address) MUST NOT be used as the `app.installation.id`.
21+
22+
For iOS, this value SHOULD be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/identifierforvendor).
23+
24+
For Android, examples of `app.installation.id` implementations include:
25+
26+
- [Firebase Installation ID](https://firebase.google.com/docs/projects/manage-installations).
27+
- A globally unique UUID which is persisted across sessions in your application.
28+
- [App set ID](https://developer.android.com/identity/app-set-id).
29+
- [`Settings.getString(Settings.Secure.ANDROID_ID)`](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID).
30+
31+
More information about Android identifier best practices can be found [here](https://developer.android.com/training/articles/user-data-ids).
32+
examples:
33+
- 2ab2916d-a51f-4ac8-80ee-45ac31a28092

model/app/resources.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
groups:
2+
- id: resource.app
3+
type: resource
4+
stability: development
5+
name: app
6+
brief: >
7+
An app used directly by end users — like mobile, web, or desktop.
8+
attributes:
9+
- ref: app.installation.id

0 commit comments

Comments
 (0)