Skip to content
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

Change the definition of device.id #1951

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

bencehornak
Copy link

@bencehornak bencehornak commented Feb 27, 2025

Fixes #1874

Warning

This PR must be merged together with #1897 as they are highly related, dear maintainers, please add them to the same milestone.

Changes

I have given a new definition to device.id, which now truly identifies the device. It has been marked as opt-in though, as its usage is generally discouraged due to privacy implications, and should only be enabled in special cases, when it does not violate the privacy of the user.

The old definition of device.id is more-or-less covered by the proposed app.installation.id in #1897, which is recommended for general use instead of this, as it provides more privacy to the users.

Merge requirement checklist

@bencehornak bencehornak requested review from a team as code owners February 27, 2025 20:17
>
> This attribute contains sensitive (PII) information. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply,
> ensure you do your own due diligence.
> See [`app.installation.id`](/docs/attributes-registry/app.md#app-installation-id) as a more privacy-preserving alternative.
Copy link
Author

@bencehornak bencehornak Feb 27, 2025

Choose a reason for hiding this comment

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

The markdown-link-check step fails at this step, because this file will only be available after #1897 is merged.

@trask
Copy link
Member

trask commented Mar 12, 2025

cc @open-telemetry/semconv-mobile-approvers

@trask
Copy link
Member

trask commented Mar 12, 2025

cc @open-telemetry/semconv-mobile-approvers

hm, it looks like CODEOWNERS is set up so that @open-telemetry/semconv-mobile-approvers should have been added as reviewers on this PR 🤔

UPDATE oh, my bad, they were: #1951 (comment)

I guess I didn't realize (forgot?) that the group name is replaced once someone from that group reviews it

@trask
Copy link
Member

trask commented Mar 18, 2025

it would be great if we can get approvals from the iOS and browser perspectives as well (if this attribute is applicable there)

@@ -9,12 +9,25 @@ Describes device attributes.

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <a id="device-id" href="#device-id">`device.id`</a> | string | A unique identifier representing the device [1] | `2ab2916d-a51f-4ac8-80ee-45ac31a28092` | ![Development](https://img.shields.io/badge/-development-blue) |
| <a id="device-id" href="#device-id">`device.id`</a> | string | A unique identifier representing the device [1] | `123456789012345`; `01:23:45:67:89:AB` | ![Development](https://img.shields.io/badge/-development-blue) |
Copy link
Contributor

Choose a reason for hiding this comment

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

As trask requested feedback via the Client Sig this morning, for current SDK's we support the sending / population of this either as

  • By default for a browser as the word "browser", so as with the "example" value of "123456789012345". "browser" is another "possible" value.
  • Other internal SDK's allow the setting of this value based on any supporting hardware lookup (like when running from react-native), in which case it matches the description as specified.

Copy link
Author

Choose a reason for hiding this comment

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

@MSNev do you think the browser value is desired? To me it doesn't really sound like an 'identifier', as it's not trying to provide uniqueness.

| [`device.manufacturer`](/docs/attributes-registry/device.md) | string | The name of the device manufacturer [2] | `Apple`; `Samsung` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`device.model.identifier`](/docs/attributes-registry/device.md) | string | The model identifier for the device [3] | `iPhone3,4`; `SM-G920F` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`device.model.name`](/docs/attributes-registry/device.md) | string | The marketing name for the device model [4] | `iPhone 6s Plus`; `Samsung Galaxy S6` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
| [`device.manufacturer`](/docs/attributes-registry/device.md) | string | The name of the device manufacturer [1] | `Apple`; `Samsung` | `Recommended` | ![Development](https://img.shields.io/badge/-development-blue) |
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggestion: As a generic "namespace" for devices, its probably also worth considering an additional device.class which describes the type of device in a more generic form with possible values like

  • Mobile
  • Desktop
  • Android
  • Windows
  • XBox
  • iOS
  • Browser
  • etc

Although, there may be a collection of other attributes which could be used by backends to derive some of this information.

Copy link
Author

Choose a reason for hiding this comment

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

Sounds reasonable to me, I would keep this suggestion to a separate PR though, if you don't mind.

Copy link

@bidetofevil bidetofevil left a comment

Choose a reason for hiding this comment

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

The new description sufficiently neuters device.id and gives the appropriate warnings for commercial apps and SDKs to NOT user it, so this works for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Needs More Approval
Development

Successfully merging this pull request may close these issues.

device.id vs installation.id on Android and iOS
5 participants