Report¶
| Field | Type | Description |
|---|---|---|
| errors | ||
| device_metrics | ||
| thread_details | State of the thread when the event was reported. | |
| app_metrics | ||
| fields | Additional report fields captured from the client report payload. |
Example¶
JSON
{
"app_metrics": {
"app_id": "com.example.app",
"bundle_version": "1024",
"version": "2.1.0"
},
"device_metrics": {
"architecture": "ARM64",
"battery_level": 72,
"manufacturer": "Apple",
"model": "iPhone15,2",
"os": "iOS",
"os_version": "17.4.1",
"power_state": "RUNNING_ON_BATTERY",
"time": "2024-01-15T09:30:00Z",
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"errors": [
{
"details": "Attempted to dereference a null pointer",
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"reason": "EXC_BAD_ACCESS"
}
],
"fields": [
{
"key": "device_orientation",
"value": "portrait"
}
],
"thread_details": {
"threads": [
{
"active": true,
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"index": 0,
"name": "com.apple.main-thread",
"priority": 47.0,
"quality_of_service": 33,
"state": "TH_STATE_WAITING"
}
],
"total_threads": 12
}
}
Report.Field¶
| Field | Type | Description |
|---|---|---|
| key | string | |
| value | string |
Example¶
JSON
{
"key": "device_orientation",
"value": "portrait"
}
Report.Error¶
| Field | Type | Description |
|---|---|---|
| reason | string | |
| details | string | |
| frames |
Example¶
JSON
{
"details": "Attempted to dereference a null pointer",
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"reason": "EXC_BAD_ACCESS"
}
Report.AppMetrics¶
| Field | Type | Description |
|---|---|---|
| app_id | string | |
| version | string | |
| bundle_version | string | (Only one of bundle_version, or version_code can be set) |
| version_code | int64 | (Only one of version_code, or bundle_version can be set) |
Example¶
JSON
{
"app_id": "com.example.app",
"bundle_version": "1024",
"version": "2.1.0"
}
Report.DeviceMetrics¶
| Field | Type | Description |
|---|---|---|
| time | google.protobuf.Timestamp | |
| manufacturer | string | |
| model | string | |
| architecture | bitdrift.public.unary.client_report.v1.Report.DeviceMetrics.Architecture | |
| os | string | OS metrics |
| os_version | string | |
| power_state | bitdrift.public.unary.client_report.v1.Report.DeviceMetrics.PowerState | Power metrics |
| battery_level | uint32 | |
| user_id | string | The unique identifier for the user/device that generated the report. |
Example¶
JSON
{
"architecture": "ARM64",
"battery_level": 72,
"manufacturer": "Apple",
"model": "iPhone15,2",
"os": "iOS",
"os_version": "17.4.1",
"power_state": "RUNNING_ON_BATTERY",
"time": "2024-01-15T09:30:00Z",
"user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Report.DeviceMetrics.Architecture¶
| Name | Number | Description |
|---|---|---|
| UNKNOWN_ARCH | 0 | |
| ARM32 | 1 | |
| ARM64 | 2 | |
| X86 | 3 | |
| X86_64 | 4 |
Report.DeviceMetrics.PowerState¶
| Name | Number | Description |
|---|---|---|
| UNKNOWN_POWER_STATE | 0 | |
| RUNNING_ON_BATTERY | 1 | |
| PLUGGED_IN_NO_BATTERY | 2 | |
| PLUGGED_IN_CHARGING | 3 | |
| PLUGGED_IN_CHARGED | 4 |
Report.ThreadDetails¶
| Field | Type | Description |
|---|---|---|
| total_threads | uint32 | |
| threads |
Example¶
JSON
{
"threads": [
{
"active": true,
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"index": 0,
"name": "com.apple.main-thread",
"priority": 47.0,
"quality_of_service": 33,
"state": "TH_STATE_WAITING"
}
],
"total_threads": 12
}
Report.ThreadDetails.Thread¶
| Field | Type | Description |
|---|---|---|
| active | bool | true if this thread is reporting the problem |
| name | string | The name of the thread. |
| index | optional uint32 | The ID of the thread. |
| state | string | Platform specific state of the thread. |
| priority | float | Platform specific priority of the thread. See https://github.com/bitdriftlabs/api/blob/main/src/bitdrift_public/fbs/issue-reporting/v1/report.fbs#L263-L266 |
| quality_of_service | optional int32 | Apple specific quality of service. |
| frames | The frames of the stacktrace. |
Example¶
JSON
{
"active": true,
"frames": [
{
"frame_address": 4376830024,
"frame_type": "DWARF",
"image_id": "8c4e2a1b-3f56-4d89-a012-bc345678def0",
"image_load_address": 4376829952,
"image_path": "/usr/lib/libSystem.dylib",
"in_app": false,
"original_index": 3,
"source_file": {
"column": 5,
"lineno": 42,
"path": "src/main.rs"
},
"state": [
"crashed"
],
"status": "SYMBOLICATED",
"symbol_address": 4376829952,
"symbol_name": "_ZN5alloc5alloc18handle_alloc_error17h123456789abcdef0E",
"symbolicated_name": "alloc::alloc::handle_alloc_error"
}
],
"index": 0,
"name": "com.apple.main-thread",
"priority": 47.0,
"quality_of_service": 33,
"state": "TH_STATE_WAITING"
}