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

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



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,
  "routePath": string
}
欄位 說明
name string

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

platform string

ANDROID、IOS 或 WEB。

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」。

state_update_time 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」。

first_seen_version string

首次出現這個問題的應用程式 display_version,僅適用於行動裝置問題。

last_seen_version string

發生這個問題的最新應用程式 display_version,僅適用於行動裝置問題。

first_time_seen 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」。

last_time_seen 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」。

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

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

routePath 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 或 JavaScript 例外狀況及其堆疊追蹤。僅限 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

除了最後擲回的例外狀況 (即第一筆記錄) 以外,其餘皆為 True。

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 App Quality Sessions 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

分析事件名稱。

params map (key: string, value: string)

事件參數。

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