4.9 KiB
Semantic Conventions for mobile events
Status: Experimental
This document defines semantic conventions for instrumentations that emit
events on mobile platforms. All mobile events MUST use a namespace of
device in the event.name property.
Lifecycle instrumentation
This section defines how to apply semantic conventions when instrumenting
application lifecycle. This event is meant to be used in conjunction with
os.name resource semantic convention to identify the
mobile operating system (e.g. Android, iOS).
The following table describes the payload fields that MUST be used to describe the state of the application at the time of the event.
The android.state and ios.state fields are mutually exclusive and MUST
NOT be used together, each field MUST be used with its corresponding
os.name resource semantic convention value.
Event details
The event name MUST be device.app.lifecycle.
| Body Field | Type | Description | Examples | Requirement Level | Stability |
|---|---|---|---|---|---|
android.state |
string | This attribute represents the state the application has transitioned into at the occurrence of the event. [1] | created |
Conditionally Required: if and only if os.name is android |
|
ios.state |
string | This attribute represents the state the application has transitioned into at the occurrence of the event. [2] | active |
Conditionally Required: if and only if os.name is ios |
[1]: The Android lifecycle states are defined in Activity lifecycle callbacks, and from which the OS identifiers are derived.
[2]: The iOS lifecycle states are defined in the UIApplicationDelegate documentation, and from which the OS terminology column values are derived.
Additional attribute requirements: At least one of the following sets of attributes is required:
ios.stateandroid.state
android.state has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
ios.state MUST be one of the following: