匯出至 Cloud Logging 的資料記錄檔結構定義

本頁面提供匯出 Crashlytics 資料和 Firebase 工作階段資料的記錄結構定義。Cloud Logging



Crashlytics 個結構定義

Event

說明單一 Crashlytics 事件的訊息。

JSON 表示法

{
  "name": string,
  "platform": string,
  "bundleOrPackage": string,
  "eventId": string,
  "sessionId": string,
  "eventTime": string,
  "receivedTime": string,
  "issue": {
    object (Issue)
  },
  "issueVariant": {
    object (IssueVariant)
  },
  "device": {
    object (Device)
  },
  "memory": {
    object (Memory)
  },
  "storage": {
    object (Storage)
  },
  "operatingSystem": {
    object (OperatingSystem)
  },
  "browser": {
    object (Browser)
  },
  "version": {
    object (Version)
  },
  "user": {
    object (User)
  },
  "customKeys": {
    string: string,
    ...
  },
  "installationUuid": string,
  "crashlyticsSdkVersion": string,
  "appOrientation": string,
  "deviceOrientation": string,
  "logs": [
    {
      object (Log)
    }
  ],
  "breadcrumbs": [
    {
      object (Breadcrumb)
    }
  ],
  "blameFrame": {
    object (Frame)
  },
  "exceptions": [
    {
      object (Exception)
    }
  ],
  "errors": [
    {
      object (Error)
    }
  ],
  "threads": [
    {
      object (Thread)
    }
  ],
  "processState": string,
  "issueTitle": string,
  "issueSubtitle": string,
  "buildStamp": string
}
欄位 說明
name string

必要。僅供輸出。 不可變動。ID。活動資源的名稱。格式: projects/{project}/apps/{app_id}/events/{event}

platform string

行動平台 (Android 或 iOS)。

bundleOrPackage string

iOS 應用程式的軟體包名稱或 Android 應用程式的套件名稱。 格式:com.mycompany.myapp

eventId string

僅供輸出。不可變動。處理期間會指派專屬事件 ID。

sessionId string

Firebase 工作階段的專屬 ID。

eventTime string (Timestamp format)

記錄事件時的裝置時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。例如:「2014-10-02T15:01:23Z」、「2014-10-02T15:01:23.045123456Z」或「2014-10-02T15:01:23+05:30」。

receivedTime string (Timestamp format)

Crashlytics 接收到事件時的伺服器時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。例如:「2014-10-02T15:01:23Z」、「2014-10-02T15:01:23.045123456Z」或「2014-10-02T15:01:23+05:30」。

issue object (Issue)

指派給這個 [事件] 的 [問題]詳細資料。

issueVariant object (IssueVariant)

指派給這個 [Event] 的 [IssueVariant]詳細資料。

device object (Device)

行動裝置中繼資料。

memory object (Memory)

行動裝置記憶體用量。

storage object (Storage)

行動裝置的磁碟/快閃記憶體用量。

operatingSystem object (OperatingSystem)

作業系統和版本。

browser object (Browser)

瀏覽器和版本。

version object (Version)

行動應用程式版本。

user object (User)

裝置擁有者的使用者 ID。

customKeys map (key: string, value: string)

開發人員在工作階段期間設定的自訂鍵。

含有「鍵」:值組合清單的物件。例如:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。

installationUuid string

裝置應用程式安裝作業的專屬 ID。這個欄位用於計算受影響的不重複使用者人數。

crashlyticsSdkVersion string

Crashlytics SDK 版本。

appOrientation string

應用程式當機時的方向 (直向或橫向)。

deviceOrientation string

當機時的裝置方向 (直向或橫向)。

logs[] object (Log)

開發人員在工作階段期間記錄的記錄檔訊息。

breadcrumbs[] object (Breadcrumb)

工作階段期間,Analytics SDK 記錄的 Analytics 事件。

blameFrame object (Frame)

Crashlytics 處理程序所歸咎的堆疊追蹤記錄影格。未來分析器可能不會提供這項資訊。

exceptions[] object (Exception)

僅限 Android 裝置。這個事件期間發生的例外狀況。巢狀例外狀況會依時間倒序呈現,因此最後一筆記錄是擲回的第一個例外狀況。

errors[] object (Error)

僅限 Apple 裝置。iOS SDK 擷取的非致命錯誤及其堆疊追蹤記錄。

threads[] object (Thread)

記錄事件時存在的應用程式執行緒。 每個檔案都包含堆疊追蹤記錄。系統會將錯誤歸咎於其中一個執行緒。

processState string

事件發生時的應用程式程序狀態。

issueTitle string

事件所屬問題的名稱。這通常是來源檔案或方法名稱。

issueSubtitle string

事件所屬問題的子標題。這通常是符號或例外狀況訊息。

buildStamp string

應用程式建構系統提供的中繼資料,包括版本控管存放區資訊。

Memory

行動裝置記憶體用量。

JSON 表示法

{
  "used": string,
  "free": string
}
欄位 說明
used string (int64 format)

使用的位元組數。

free string (int64 format)

可用位元組數。

Storage

行動裝置的磁碟/快閃記憶體用量。並非所有裝置都會回報。

JSON 表示法

{
  "used": string,
  "free": string
}
欄位 說明
used string (int64 format)

使用的位元組數。

free string (int64 format)

可用位元組數。

User

開發人員提供的使用者 ID。

JSON 表示法

{
  "id": string
}
欄位 說明
id string

應用程式開發人員提供的使用者 ID。

Frame

堆疊追蹤中的影格。

JSON 表示法

{
  "line": string,
  "file": string,
  "symbol": string,
  "offset": string,
  "address": string,
  "library": string,
  "owner": string,
  "blamed": boolean
}
欄位 說明
line string (int64 format)

框架檔案中的行號。

file string

找到影格的來源檔案名稱。

symbol string

去模糊化或符號化後的影格符號。如果無法補水,裝置中的原始符號。

offset string (int64 format)

包含程式碼的二進位映像檔中的位元組偏移。原生影格的呈現時間。

address string (int64 format)

二進位映像檔中包含程式碼的位址。呈現原生影格。

library string

包含影格的程式庫顯示名稱。

owner string

請選擇 DEVELOPER、VENDOR、RUNTIME、PLATFORM 或 SYSTEM。

blamed boolean

如果 Crashlytics 分析判定這個影格可能是錯誤原因,則為 True。

Exception

Java 例外狀況及其堆疊追蹤記錄,僅限 Android 應用程式。

JSON 表示法

{
  "type": string,
  "exceptionMessage": string,
  "nested": boolean,
  "title": string,
  "subtitle": string,
  "blamed": boolean,
  "frames": [
    {
      object (Frame)
    }
  ]
}
欄位 說明
type string

例外狀況類型,例如 java.lang.IllegalStateException。

exceptionMessage string

與例外狀況相關的訊息。

nested boolean

適用於所有例外狀況,但最後擲回的例外狀況 (即第一個記錄) 除外。

title string

例外狀況的標題。

subtitle string

例外狀況的子標題。

blamed boolean

如果 Crashlytics 分析結果判斷這個執行緒發生錯誤,則為 True。

frames[] object (Frame)

例外狀況堆疊追蹤中的影格。

Error

非致命錯誤及其堆疊追蹤記錄,僅限 Apple 應用程式。

JSON 表示法

{
  "queue": string,
  "code": string,
  "title": string,
  "subtitle": string,
  "blamed": boolean,
  "frames": [
    {
      object (Frame)
    }
  ]
}
欄位 說明
queue string

執行緒執行的佇列。

code string (int64 format)

與應用程式自訂記錄的 NSError 相關聯的錯誤代碼。

title string

錯誤標題。

subtitle string

錯誤的子標題。

blamed boolean

如果 Crashlytics 分析結果顯示此錯誤的堆疊追蹤是發生故障的原因,則為 True。

frames[] object (Frame)

錯誤堆疊追蹤中的影格。

Thread

應用程式執行緒。

JSON representation</code></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code>{
  "crashed": boolean,
  "name": string,
  "queue": string,
  "signal": string,
  "signalCode": string,
  "crashAddress": string,
  "title": string,
  "subtitle": string,
  "blamed": boolean,
  "frames": [
    {
      object (Frame)
    }
  ],
  "threadId": string,
  "sysThreadId": string,
  "threadState": enum (State)
}
欄位 說明
crashed boolean

如果執行緒已當機,則為 True。

name string

執行緒名稱。

queue string

執行緒執行的佇列。

signal string

導致應用程式當機的信號名稱。僅顯示在當機的原生執行緒上。

signalCode string

導致應用程式當機的信號代碼。僅顯示在當機的原生執行緒上。

crashAddress string (int64 format)

導致應用程式停止運作的信號位址。僅適用於當機的原生執行緒。

title string

討論串標題。

subtitle string

討論串的子標題。

blamed boolean

如果 Crashlytics 分析結果判定這個執行緒中的堆疊追蹤是發生錯誤的原因,則為 True。

frames[] object (Frame)

執行緒堆疊追蹤中的影格。

threadId string (int64 format)

執行緒的 ID,僅適用於 ANR 執行緒。

sysThreadId string (int64 format)

執行緒的系統 ID,僅適用於 ANR 執行緒。

threadState enum (State)

僅供輸出。ANR 發生時的執行緒狀態。

State

ANR 發生時的執行緒狀態。

列舉 說明
STATE_UNSPECIFIED

未指定執行緒狀態。

THREAD_STATE_TERMINATED

執行緒已終止。

THREAD_STATE_RUNNABLE

執行緒可執行。

THREAD_STATE_TIMED_WAITING

執行緒等待逾時。

THREAD_STATE_BLOCKED

討論串已遭封鎖。

THREAD_STATE_WAITING

執行緒正在等待。

THREAD_STATE_NEW

已啟動執行緒,但尚未執行任何項目。

THREAD_STATE_NATIVE_RUNNABLE

執行緒是原生執行緒,我們無法以啟發式方式判斷執行緒是否處於等待狀態,因此假設執行緒可執行。

THREAD_STATE_NATIVE_WAITING

我們根據啟發式方法判斷執行緒正在等待。



Firebase 工作階段結構定義

FirebaseSessionEvent

由 Firebase 應用程式品質工作階段 SDK 記錄的工作階段。

JSON 表示法

{
  "sessionId": string,
  "eventType": enum (SessionEventType),
  "firstSessionId": string,
  "sessionIndex": integer,
  "firebaseInstallationId": string,
  "eventTime": string,
  "version": {
    object (Version)
  },
  "device": {
    object (Device)
  },
  "operatingSystem": {
    object (OperatingSystem)
  }
}
欄位 說明
sessionId string

Firebase 工作階段的專屬 ID。

eventType enum (SessionEventType)

工作階段事件類型。SDK 目前僅支援 SESSION_START 事件。

firstSessionId string

上次冷啟動後第一個工作階段的 ID。應用程式啟動時,這個 ID 和 sessionId 會相同。

sessionIndex integer

表示上次冷啟動後的會話數。

firebaseInstallationId string

專門用於識別已安裝 Firebase 應用程式的裝置。

eventTime string (Timestamp format)

工作階段事件的開始時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。例如:「2014-10-02T15:01:23Z」、「2014-10-02T15:01:23.045123456Z」或「2014-10-02T15:01:23+05:30」。

version object (Version)

行動應用程式版本號碼。

device object (Device)

行動裝置中繼資料。

operatingSystem object (OperatingSystem)

作業系統和版本。

SessionEventType

系統記錄的 SessionEvent 類型。

列舉 說明
SESSION_EVENT_TYPE_UNKNOWN

不明。

SESSION_START

應用程式工作階段已啟動。



裝置記錄結構定義

DeviceLog

代表 deviceLog 項目結構。

JSON 表示法

{
  "eventId": string,
  "sessionId": string,

  // Union field payload can be only one of the following:
  "log": {
    object (Log)
  },
  "breadcrumb": {
    object (Breadcrumb)
  }
  // End of list of possible types for union field payload.
}
欄位 說明
eventId string

僅供輸出。不可變動。與此相關聯的事件 ID。

sessionId string

Firebase 工作階段的專屬 ID。

聯集欄位 payload。酬載可以是 Crashlytics 記錄或導覽標記。payload 只能是下列其中一個設定:

log object (Log)

Crashlytics 記錄。

breadcrumb object (Breadcrumb)

Crashlytics 導覽標記。

Log

工作階段期間記錄的開發人員提供記錄行。

JSON 表示法

{
  "logTime": string,
  "message": string
}
欄位 說明
logTime string (Timestamp format)

記錄行時的裝置時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。例如:「2014-10-02T15:01:23Z」、「2014-10-02T15:01:23.045123456Z」或「2014-10-02T15:01:23+05:30」。

message string

記錄訊息。

Breadcrumb

工作階段期間記錄的 Analytics 事件。

JSON 表示法

{
  "eventTime": string,
  "title": string,
  "params": {
    string: string,
    ...
  }
}
欄位 說明
eventTime string (Timestamp format)

事件的裝置時間戳記。

使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。例如:「2014-10-02T15:01:23Z」、「2014-10-02T15:01:23.045123456Z」或「2014-10-02T15:01:23+05:30」。

title string

Analytics 事件名稱。

params map (key: string, value: string)

事件參數。

含有「鍵」:值組合清單的物件。 例如:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。