Skip to content
View as Markdown

Report

Field Type Description
errors repeated bitdrift.public.unary.client_report.v1.Report.Error
device_metrics bitdrift.public.unary.client_report.v1.Report.DeviceMetrics
thread_details bitdrift.public.unary.client_report.v1.Report.ThreadDetails State of the thread when the event was reported.
app_metrics bitdrift.public.unary.client_report.v1.Report.AppMetrics
fields repeated bitdrift.public.unary.client_report.v1.Report.Field 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 repeated bitdrift.public.unary.client_report.v1.Frame

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 repeated bitdrift.public.unary.client_report.v1.Report.ThreadDetails.Thread

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 repeated bitdrift.public.unary.client_report.v1.Frame 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"
}