本页介绍了 Cloud Logging 中导出的 Crashlytics 数据和 Firebase 会话数据的日志架构。
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
}
| 字段 | 说明 |
|---|---|
name |
string
必需。仅限输出。
不可变。标识符。活动资源的名称。格式:
|
platform |
string
移动平台(Android 或 iOS)。 |
bundleOrPackage |
string
iOS 应用的软件包名称或 Android 应用的软件包名称。
格式: |
eventId |
string
仅限输出。不可变。唯一事件标识符是在处理期间分配的。 |
sessionId |
string
Firebase 会话的唯一标识符。 |
eventTime |
string (Timestamp format)
记录事件时的设备时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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 规范化(即转换为 UTC 零时区格式并在末尾附加 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)
设备所有者的最终用户标识符。 |
customKeys |
map (key: string, value: string)
开发者在会话期间设置的自定义键。 包含 "key": value 对列表的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。 |
installationUuid |
string
设备-应用安装的唯一标识符。此字段用于计算受影响的唯一身份用户数。 |
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
开发者提供的最终用户标识符。
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
对于除最后抛出的异常(即第一条记录)之外的所有异常都为 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 应用质量会话 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 会话的唯一标识符。 |
eventType |
enum (SessionEventType)
会话事件类型。该 SDK 目前仅支持 SESSION_START 事件。 |
firstSessionId |
string
自上次冷启动以来第一个会话的标识符。对于应用启动,此 ID 和 sessionId 将相同。 |
sessionIndex |
integer
表示自上次冷启动以来的会话数。 |
firebaseInstallationId |
string
唯一标识安装了 Firebase 应用的设备。 |
eventTime |
string (Timestamp format)
会话事件的开始时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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
仅限输出。不可变。与此事件关联的事件的标识符。 |
sessionId |
string
Firebase 会话的唯一标识符。 |
联合字段 |
|
log |
object (Log)
Crashlytics 日志。 |
breadcrumb |
object (Breadcrumb)
Crashlytics 面包屑。 |
Log
会话期间记录的开发者提供的日志行。
JSON 表示法
{
"logTime": string,
"message": string
}
| 字段 | 说明 |
|---|---|
logTime |
string (Timestamp format)
记录相应行时的设备时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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
会话期间记录的 Google Analytics 事件。
JSON 表示法
{
"eventTime": string,
"title": string,
"params": {
string: string,
...
}
}
| 字段 | 说明 |
|---|---|
eventTime |
string (Timestamp format)
相应事件的设备时间戳。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 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)
事件参数。 包含 "key": value 对列表的对象。 例如:{ "name": "wrench", "mass": "1.3kg", "count": "3" }。 |