สคีมาบันทึกสำหรับข้อมูลที่ส่งออกใน 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

ต้องระบุ เอาต์พุตเท่านั้น เปลี่ยนแปลงไม่ได้ ตัวระบุ ชื่อของ ทรัพยากรเหตุการณ์ รูปแบบ projects/{project}/apps/{app_id}/events/{event}

platform string

แพลตฟอร์มอุปกรณ์เคลื่อนที่ (Android หรือ iOS)

bundleOrPackage string

ชื่อชุดสำหรับแอป iOS หรือชื่อแพ็กเกจของแอป Android รูปแบบ: com.mycompany.myapp

eventId string

เอาต์พุตเท่านั้น เปลี่ยนแปลงไม่ได้ ตัวระบุเหตุการณ์ที่ไม่ซ้ำกันจะได้รับการกำหนดในระหว่างการประมวลผล

sessionId 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"

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)

รายละเอียดสำหรับ [IssueVariant] ที่กำหนดให้กับ [Event] นี้

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)

คีย์ที่กำหนดเองซึ่งนักพัฒนาซอฟต์แวร์ตั้งค่าไว้ในระหว่างเซสชัน

ออบเจ็กต์ที่มีรายการคู่ "คีย์": ค่า ตัวอย่าง: { "name": "wrench", "mass": "1.3kg", "count": "3" }

installationUuid string

ตัวระบุที่ไม่ซ้ำกันสำหรับการติดตั้งแอปในอุปกรณ์ ฟิลด์นี้ใช้เพื่อคำนวณจำนวนผู้ใช้ที่ไม่ซ้ำกันที่ได้รับผลกระทบ

crashlyticsSdkVersion string

เวอร์ชัน SDK ของ Crashlytics

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 เท่านั้น ข้อผิดพลาดที่ไม่ร้ายแรงที่ SDK ของ iOS จับได้และ Stacktrace

threads[] object (Thread)

เธรดของแอปพลิเคชันที่แสดงในขณะที่บันทึกเหตุการณ์ แต่ละไฟล์จะมี Stacktrace ระบบจะระบุว่าชุดข้อความ 1 ชุดเป็นสาเหตุของข้อผิดพลาด

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

รหัสผู้ใช้หากนักพัฒนาแอปให้ไว้

Frame

เฟรมใน Stacktrace

การแสดงผลในรูปแบบ 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 ระบุว่าเฟรมนี้มีแนวโน้มที่จะเป็นสาเหตุของข้อผิดพลาด

Exception

ข้อยกเว้น Java และ Stacktrace จากแอป 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 ระบุว่าเธรดนี้เป็น ตำแหน่งที่เกิดข้อผิดพลาด

frames[] object (Frame)

เฟรมใน Stacktrace ของข้อยกเว้น

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 ระบุว่า Stacktrace ในข้อผิดพลาดนี้เป็นจุดที่เกิดข้อผิดพลาด

frames[] object (Frame)

เฟรมใน Stacktrace ของข้อผิดพลาด

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

เป็นจริงเมื่อชุดข้อความขัดข้อง

name string

ชื่อของเธรด

queue string

คิวที่ชุดข้อความทำงานอยู่

signal string

ชื่อของสัญญาณที่ทำให้แอปขัดข้อง มีเฉพาะใน เธรดเนทีฟที่ขัดข้อง

signalCode string

รหัสของสัญญาณที่ทำให้แอปขัดข้อง มีเฉพาะใน เธรดเนทีฟที่ขัดข้อง

crashAddress string (int64 format)

ที่อยู่ของสัญญาณที่ทำให้แอปพลิเคชันขัดข้อง มีเฉพาะในเธรดเนทีฟที่ขัดข้องเท่านั้น

title string

ชื่อของเธรด

subtitle string

ชื่อรองของชุดข้อความ

blamed boolean

เป็นจริงเมื่อการวิเคราะห์ของ Crashlytics ระบุว่า Stacktrace ในเธรดนี้เป็นจุดที่เกิดข้อผิดพลาด

frames[] object (Frame)

เฟรมใน Stacktrace ของเธรด

threadId string (int64 format)

รหัสของเธรด ใช้ได้กับเธรด ANR เท่านั้น

sysThreadId string (int64 format)

รหัสระบบของเธรด ใช้ได้กับเธรด ANR เท่านั้น

threadState enum (State)

เอาต์พุตเท่านั้น สถานะของเธรด ณ เวลาที่เกิด ANR

State

สถานะของเธรดเมื่อเกิด ANR

enum คำอธิบาย
STATE_UNSPECIFIED

ไม่ได้ระบุสถานะชุดข้อความ

THREAD_STATE_TERMINATED

ชุดข้อความถูกสิ้นสุดการดำเนินงาน

THREAD_STATE_RUNNABLE

Thread สามารถเรียกใช้ได้

THREAD_STATE_TIMED_WAITING

ชุดข้อความรออยู่โดยมีระยะหมดเวลา

THREAD_STATE_BLOCKED

ชุดข้อความถูกบล็อก

THREAD_STATE_WAITING

ชุดข้อความรออยู่

THREAD_STATE_NEW

เริ่มชุดข้อความแล้ว แต่ยังไม่ได้เรียกใช้สิ่งใด

THREAD_STATE_NATIVE_RUNNABLE

เธรดเป็นแบบเนทีฟและเราไม่สามารถระบุได้โดยใช้ฮิวริสติกว่า เธรดกำลังรออยู่ ดังนั้นจึงถือว่าเธรดเรียกใช้ได้

THREAD_STATE_NATIVE_WAITING

เราพิจารณาตามหลักการฮิวริสติกแล้วพบว่าเธรดกำลังรอ



สคีมาเซสชัน Firebase

FirebaseSessionEvent

เซสชันที่บันทึกโดย SDK เซสชันคุณภาพของแอป Firebase

การแสดงผลในรูปแบบ 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

ตัวระบุของเซสชันแรกนับตั้งแต่ Cold Start ครั้งล่าสุด รหัสนี้ และ 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 ที่บันทึกไว้

enum คำอธิบาย
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

ฟิลด์ Union payload เพย์โหลดอาจเป็น บันทึก Crashlytics หรือ Breadcrumb 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" }