/* * Copyright The OpenTelemetry Authors * SPDX-License-Identifier: Apache-2.0 */ /* * DO NOT EDIT, this is an Auto-generated file from: * buildscripts/semantic-convention/templates/registry/semantic_attributes-h.j2 */ #pragma once #include "opentelemetry/common/macros.h" #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace semconv { namespace device { /** A unique identifier representing the device

Its value SHOULD be identical for all apps on a device and it SHOULD NOT change if an app is uninstalled and re-installed. However, it might be resettable by the user for all apps on a device. Hardware IDs (e.g. vendor-specific serial number, IMEI or MAC address) MAY be used as values.

More information about Android identifier best practices can be found here.

[!WARNING]

This attribute may contain 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.

Due to these reasons, this identifier is not recommended for consumer applications and will likely result in rejection from both Google Play and App Store. However, it may be appropriate for specific enterprise scenarios, such as kiosk devices or enterprise-managed devices, with appropriate compliance clearance. Any instrumentation providing this identifier MUST implement it as an opt-in feature.

See @code app.installation.id @endcode for a more privacy-preserving alternative.

*/ static constexpr const char *kDeviceId = "device.id"; /** The name of the device manufacturer

The Android OS provides this field via Build. iOS apps SHOULD hardcode the value @code Apple @endcode. */ static constexpr const char *kDeviceManufacturer = "device.manufacturer"; /** The model identifier for the device

It's recommended this value represents a machine-readable version of the model identifier rather than the market or consumer-friendly name of the device. */ static constexpr const char *kDeviceModelIdentifier = "device.model.identifier"; /** The marketing name for the device model

It's recommended this value represents a human-readable version of the device model rather than a machine-readable alternative. */ static constexpr const char *kDeviceModelName = "device.model.name"; } // namespace device } // namespace semconv OPENTELEMETRY_END_NAMESPACE