Fleet Engine มีบริการการบันทึกแบบง่ายที่ให้คุณบันทึกคำขอ API และเพย์โหลดการตอบกลับได้ ด้วยบันทึกเหล่านี้ คุณสามารถแก้ไขข้อบกพร่องของการผสานรวม สร้างเมตริกการตรวจสอบ และวิเคราะห์รูปแบบการเข้าชมได้
Fleet Engine จะส่งบันทึกเป็นบันทึกแพลตฟอร์มไปยังการบันทึกระบบคลาวด์เพื่อให้คุณใช้เครื่องมือการบันทึกในระบบคลาวด์ได้
สิ่งที่ Fleet Engine บันทึก
Fleet Engine จะส่งข้อมูลหลายรายการไปยังการบันทึกระบบคลาวด์ เช่น
- คำขอและการตอบกลับ REST และ gRPC ที่ผ่านการตรวจสอบสิทธิ์ทั้งหมด
- การตอบกลับข้อผิดพลาด
- คำขอ การตอบกลับ และข้อความแสดงข้อผิดพลาดจากการเรียกใช้ที่เริ่มต้นโดย Driver SDK ไปยัง Fleet Engine
บันทึกการแบ่งสำหรับประเภทบันทึกที่รองรับ:
ดูเอกสารประกอบสำหรับข้อความบันทึกที่มีอยู่และสคีมาได้ในข้อมูลอ้างอิงการบันทึก
ใช้ที่เก็บข้อมูลบันทึกเริ่มต้นและแบบจำกัดเพื่อให้เป็นไปตามนโยบายการเก็บรักษาข้อมูล
การใช้ที่เก็บข้อมูล "ถูกจำกัด" และ "เริ่มต้น" ช่วยให้เห็นภาพการใช้อินเทอร์เน็ตที่จำกัดและไม่จำกัดได้อย่างชัดเจน ข้อมูลบันทึกบางส่วนที่ Fleet Engine ส่งไปยัง Google Maps Platform อาจได้รับการเก็บรักษาไว้เป็นระยะเวลาที่จำกัดตามข้อกำหนดเฉพาะบริการอุปกรณ์เคลื่อนที่ เพื่อให้มั่นใจว่าจะเก็บข้อมูลที่จำกัดไว้ตามระยะเวลาที่อนุญาตเท่านั้น ข้อมูลดังกล่าวควรติดป้ายกำกับเป็น TOS_RESTRICTED (Fleet Engine ดำเนินการดังกล่าวอยู่แล้ว) และบันทึกลงในที่เก็บข้อมูลเฉพาะที่ชื่อ "จำกัด"
ซึ่งคุณจะควบคุมระยะเวลาเก็บรักษาและลบออกอย่างถาวรเมื่อหมดอายุได้โดยใช้การตั้งค่า Cloud Logging เช่น บันทึกการใช้งานที่จำกัดควรเก็บไว้เพียง 30 วันเท่านั้น
บันทึกข้อมูลที่ไม่มีการจำกัดที่เหลืออยู่ทั้งหมดลงในที่เก็บข้อมูล "เริ่มต้น" ซึ่งเก็บไว้ได้นานกว่าที่กำหนดในข้อกำหนดเฉพาะบริการอุปกรณ์เคลื่อนที่ (โดยทั่วไปเป็นเวลา 1 ปี) การใช้ที่เก็บข้อมูล "ถูกจำกัด" และ "เริ่มต้น" จะช่วยให้เห็นภาพของปริมาณการใช้อินเทอร์เน็ตที่จำกัดและไม่จำกัดได้อย่างชัดเจน
ดูภาพรวมโดยการรวมบันทึกที่จำกัดและไม่จำกัด
บันทึกการใช้งานแบบจำกัดประกอบด้วยข้อมูลการใช้งานที่จำกัดและการอ้างอิงบันทึกเริ่มต้นเพื่อให้นำมาพิจารณาร่วมกันได้ บันทึกการใช้งานที่ถูกจำกัดมี insertId ของบันทึกเริ่มต้นเป็นการอ้างอิงในช่อง parent_insert_id
คุณใช้ช่องนี้เพื่อรวมข้อมูลจากทั้งบันทึกและดูภาพรวมที่สมบูรณ์ได้
ดูเอกสารประกอบสำหรับข้อความบันทึกและสคีมาที่มีอยู่ทั้งหมดได้ในข้อมูลอ้างอิงการบันทึก
กำลังเปิดใช้ Cloud Logging
Fleet Engine จะเปิดใช้บันทึกเริ่มต้นสำหรับลูกค้า Mobility รายใหม่โดยอัตโนมัติ โดยเริ่มจากโปรเจ็กต์ที่สร้างขึ้นในวันที่ 10 กุมภาพันธ์ 2022 คุณสามารถยืนยันว่ามีการเปิดใช้การบันทึกหรือไม่โดยใช้การค้นหาต่อไปนี้ในสำรวจบันทึก
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
หากคุณไม่เห็นบันทึกใดๆ สำหรับการค้นหานั้น อาจเป็นเพราะยังไม่มีการเปิดใช้ Cloud Logging สำหรับโปรเจ็กต์ของคุณ โปรดติดต่อทีมสนับสนุนหากต้องการเปิดใช้ฟีเจอร์
เปิดใช้บันทึกการใช้งานที่ถูกจำกัด
เปิดใช้บันทึกการใช้งานที่จำกัดตามคำขอแล้ว หากต้องการเปิดใช้บันทึกเหล่านี้สำหรับโปรเจ็กต์ Google Cloud ให้ทำตามขั้นตอนต่อไปนี้
เตรียมโปรเจ็กต์เพื่อรับบันทึกการใช้งานที่จํากัด
- เปิดหน้าเราเตอร์ของบันทึกในคอนโซล Google Cloud
- อัปเดตที่เก็บข้อมูลการบันทึก _Default เพื่อยกเว้นบันทึกการใช้งานที่ถูกจำกัด
- เลือกที่เก็บข้อมูลการบันทึก _Default แล้วเลือก Edit Sink
- ในส่วน "เลือกบันทึกเพื่อกรองออกจากซิงก์" ให้คลิกปุ่ม "เพิ่มการยกเว้น"
- ชื่อตัวกรองการยกเว้น: ExcludeRestrictedLogs
- ตัวกรองการยกเว้น: labels.restriction="TOS_RESTRICTED"
- คลิก "อัปเดตซิงก์"
- อัปเดตที่เก็บข้อมูลการบันทึกแบบจำกัดเพื่อเก็บบันทึกการใช้งานที่จำกัด
- จากหน้า Log Router ให้เลือก "Create Sink"
- สร้างซิงก์ที่มีการตั้งค่าต่อไปนี้
- รายละเอียดซิงก์:
- ชื่อ: RestrictedLogs
- คำอธิบาย: บันทึกการใช้งานที่จำกัดของ Routes Fleet Engine
- ปลายทางของซิงก์:
- บริการซิงก์: ที่เก็บข้อมูลการบันทึก
- เลือกที่เก็บข้อมูลบันทึก: สร้างที่เก็บข้อมูลบันทึกใหม่
- ชื่อ: ถูกจำกัด
- คำอธิบาย: มีบันทึกการใช้งานที่จำกัดของ Fleet Engine
- ระยะเวลาเก็บรักษา: 30 วัน
- หมายเหตุ: ระยะเวลาเก็บรักษาต้องไม่เกิน 30 วัน
- บันทึกที่จะรวมไว้ในซิงก์: เว้นว่างไว้
- บันทึกที่จะกรองออกจากซิงก์: คลิก "เพิ่มการยกเว้น"
- ชื่อตัวกรองการยกเว้น: ExcludeNonRestrictedLogs
- ตัวกรองการยกเว้น: ไม่ (resource.type = "fleetengine.googleapis.com/Fleet" หรือ resource.type = "fleetengine.googleapis.com/DeliverFleet") ไม่ (labels.restriction = "TOS_RESTRICTED")
- คลิก "สร้างซิงก์"
- รายละเอียดซิงก์:
ติดต่อทีมสนับสนุนเพื่อเปิดใช้บันทึกการใช้งานที่ถูกจำกัด
จากนั้นติดต่อทีมสนับสนุนพร้อมระบุข้อมูลต่อไปนี้ในคำขอรับการสนับสนุน
- รหัสโปรเจ็กต์ที่จะเปิดใช้:
- อีเมลของบุคคลที่ขอเปลี่ยนแปลงข้อมูล
- หมายเหตุ: บุคคลนี้ควรมีสิทธิ์แก้ไขโปรเจ็กต์ Google Cloud ที่แสดงอยู่
- การเปิดใช้เนื้อหา Google Maps ที่มีการใช้งานที่ถูกจำกัดใน Cloud Logging หมายความว่าคุณยอมรับที่จะปฏิบัติตามข้อกำหนดของ Google Maps Platform และข้อกำหนดเฉพาะบริการ Mobility ซึ่งรวมถึงข้อกำหนดในการแคชและการใช้งานที่ได้รับอนุญาต ที่เกี่ยวข้องกับเนื้อหา Google Maps ใช่ / ไม่ใช่
เมื่อทีมสนับสนุนได้รับคำขอ ทีมจะส่งการยืนยันว่ามีการเปิดใช้การบันทึกสำหรับโปรเจ็กต์แล้ว
แยกบันทึกของระบบคลาวด์
Cloud Logging จำกัดขนาดบันทึกขาเข้าไว้ที่ 256 KB บริการทิ้งบันทึก เกินเกณฑ์นั้น Fleet Engine สามารถแยกบันทึกเหล่านั้นเป็นชุดบันทึกที่มีขนาดต่ำกว่าเกณฑ์ 256 KB เพื่อให้มั่นใจว่า Cloud Logging จะเก็บรักษาบันทึกขนาดใหญ่ บันทึกดังกล่าวจะมีคำนำหน้า insertId ทั่วไปเพื่อระบุลำดับที่บริการแยกบันทึกที่เล็กลงจากบันทึกดั้งเดิมที่มีขนาดใหญ่เกินไป จากนั้นคุณจึงจะเข้าร่วมกับเราได้อีกครั้งโดยอิงตาม insertId
หากต้องการเข้าถึงบันทึกที่ไม่ได้แยกส่วนต้นฉบับ ให้ผสานบันทึกการแยกรายการด้วย insertId ในลำดับเดิมที่มีการแยกไว้ ตามที่ระบุโดยดัชนีในรายการบันทึกระบบคลาวด์
โครงสร้างของบันทึกการแยกจะเหมือนกับโครงสร้างที่ระบุไว้ในคู่มือรายการบันทึกการตรวจสอบการแยกสำหรับบันทึกการตรวจสอบระบบคลาวด์ ความแตกต่างที่สำคัญสำหรับบันทึกการแยกใน Fleet Logging คือการแยกจะเกิดขึ้นในช่อง jsonPayload
ไม่ใช่ในช่อง protoPayload
ดูการแยกตัวอย่างที่แสดงในส่วนถัดไป
ประเภทบันทึกที่รองรับ
Fleet Engine รองรับการแยกบันทึกสำหรับประเภทบันทึกต่อไปนี้ที่ขนาดบันทึกเกิน 256 KB เท่านั้น
ตัวอย่างโครงสร้างบันทึกการแยก
// First Split Log
{
// insertId appended with an increasing number
"insertId": "ABCDE-1",
"jsonPayload": {
"request": {
"filter": "tracking_id=tracking-test-splitting-task"
},
"@type": "type.googleapis.com/maps.fleetengine.delivery.log.v1.ListTasksLog",
"response": {
"tasks": [
{
"name": "providers/providers-123/tasks/test-splitting-task-id-0",
// ...
},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-1",
// ...
},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-2"
// ...
},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-3",
// ...
},
]
},
"header": {}
},
"resource": {
"type": "fleetengine.googleapis.com/DeliveryFleet",
"labels": {
"resource_container": "projects/providers-123",
"location": "global"
}
},
// Same timestamp
"timestamp": "2024-01-29T23:35:58.076515Z",
"labels": {
},
"logName": "projects/providers-123/logs/fleetengine.googleapis.com%2Flist_tasks",
"receiveTimestamp": "2024-01-29T23:35:59.278858322Z",
"split": {
// UID for this logical log entry (same across splits)
"uid": "ABCDE",
"totalSplits": 2
}
}
// Second Split Log
{
// insertId appended with an increasing number
"insertId": "ABCDE-2",
"jsonPayload": {
"request": {
"filter": "tracking_id=tracking-test-splitting-task"
},
"@type": "type.googleapis.com/maps.fleetengine.delivery.log.v1.ListTasksLog",
"response": {
"tasks": [
// Previous tasks appear as empty objects in subsequent splits
{}, {}, {}, {},
{
"name": "providers/providers-123/tasks/test-splitting-task-id-4",
// ...
}
]
},
"header": {}
},
"resource": {
"type": "fleetengine.googleapis.com/DeliveryFleet",
"labels": {
"resource_container": "projects/providers-123",
"location": "global"
}
},
// Same timestamp
"timestamp": "2024-01-29T23:35:58.076515Z",
"labels": {
},
"logName": "projects/providers-123/logs/fleetengine.googleapis.com%2Flist_tasks",
"receiveTimestamp": "2024-01-29T23:35:59.278858322Z",
"split": {
// UID for this logical log entry (same across splits)
"uid": "ABCDE",
// Subsequent logs after the original will have a zero based index
"index": 1,
"totalSplits": 2
}
}
เข้าถึงบันทึกของคุณ
บันทึกของ Cloud มีโครงสร้างตามรูปแบบ LogEntry Fleet Engine จะส่งบันทึกไปยัง Cloud Logging โดยตั้งค่า resource.type
ของ LogEntry เป็น fleetengine.googleapis.com
คุณสามารถใช้สำรวจบันทึกเพื่อเขียนคำค้นหาเพื่อดูบันทึก
เช่น หากต้องการดู RPC ทั้งหมดที่ส่งไปยัง Fleet Engine ที่แสดงข้อผิดพลาด ให้ใช้คำค้นหา Logging Explorer ต่อไปนี้
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR
หากต้องการดูบันทึกของ RPC ที่สร้างขึ้นด้วยเมธอด UpdateDeliveryVehicle
สำหรับ example-project-id ของโปรเจ็กต์ ให้ใช้คำค้นหา Logging Explorer ต่อไปนี้
logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle"
ตัวอย่างต่อไปนี้แสดง LogEntry สำหรับบันทึก UpdateDeliveryVehicle
คำขอและการตอบกลับ RPC จะอยู่ในช่อง jsonPayload
:
{
"insertId": "c6b85fbc927343fc8a85338c57a65733",
"jsonPayload": {
"request": {
"header": {4},
"updateMask": "deviceSettings",
"vehicleId": "uniqueVehicleId",
"vehicle": {2}
},
"response": {
"name": "providers/example-project-id/vehicles/uniqueVehicleId",
"availableCapacity": 2,
"state": "VEHICLE_STATE_OFFLINE",
"maximumCapacity": 2,
"vehicleType": {1},
"supportedTrips": {1}
},
"@type": "type.googleapis.com/maps.fleetengine.v1.UpdateDeliveryVehicleLog"
},
"resource": {
"type": "fleetengine.googleapis.com/DeliveryFleet",
"labels": {2}
},
"timestamp": "2021-01-01T00:00:00.000000000Z",
"labels": {2},
"logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle",
"receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
}
หากเกิดข้อผิดพลาด RPC ระบบจะล้างช่อง responseDeliveryVehicle
รวมถึงตั้งค่าช่อง errorResponse
และป้อนข้อมูลภายใน jsonPayload
ดังนี้
{
"insertId": "2ead60bdec561836a1bb84a90e9915cd",
"jsonPayload": {
"@type": "type.googleapis.com/maps.fleetengine.delivery.log.v1.UpdateDeliveryVehicleLog",
"header": {
"languageCode": "en",
"osVersion": "11",
"platform": "PLATFORM_LOG_ANDROID",
"regionCode": "US",
"sdkType": "SDK_TYPE_LOG_DRIVER",
"sdkVersion": "4.4.3"
},
"request": {
"deliveryVehicle": {4},
"deliveryVehicleId": "uniqueDeliveryVehicleId",
"updateMask": "lastLocation"
},
"response": {
"lastLocation": {14},
"name": "providers/example-project-id/deliveryVehicles/uniqueDeliveryVehicleId",
"navigationStatus": "NAVIGATION_STATUS_ARRIVED_AT_DESTINATION",
"remainingDistanceMeters": "430",
"remainingDuration": "10s"
}
},
"labels": {
"delivery_vehicle_id": "uniqueDeliveryVehicleId"
},
"logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle",
"receiveTimestamp": "2023-07-14T22:57:51.156515110Z",
"resource": {
"labels": {2},
"type": "fleetengine.googleapis.com/DeliveryFleet"
},
"timestamp": "2023-07-14T22:57:51.018045Z"
}
ดูข้อมูลเพิ่มเติมเกี่ยวกับภาษาของการค้นหาการบันทึกได้ที่ภาษาในการค้นหาการบันทึก ดูข้อมูลเกี่ยวกับวิธีใช้บันทึกเพื่อสร้างเมตริกได้ที่ภาพรวมของเมตริกตามบันทึก
จัดการค่าใช้จ่ายในการบันทึก
หลังจากเปิดใช้การบันทึกแล้ว คุณมีหน้าที่ตั้งค่าวิธีกำหนดเส้นทาง จัดเก็บ และเก็บบันทึก คุณอาจต้องเรียกเก็บเงินเพิ่มเติมสำหรับ Google Cloud ในการนำเข้าข้อมูลและการเก็บรักษาหากใช้เกินขีดจำกัดการใช้งานและการเก็บรักษาโดยไม่มีค่าใช้จ่าย แต่คุณสามารถควบคุมค่าใช้จ่ายในการบันทึกได้โดยทำอย่างใดอย่างหนึ่งต่อไปนี้
ลดการใช้งานการบันทึก
คุณจำกัดปริมาณการนำเข้าข้อมูลบันทึกได้โดยการยกเว้นรายการบันทึกบางรายการ
ส่งออกหรือกำหนดเส้นทางบันทึก
คุณสามารถกำหนดเส้นทางบันทึกไปยัง Google Cloud หรือปลายทางภายนอกอื่นๆ เพื่อหลีกเลี่ยงค่าใช้จ่ายเริ่มต้นสำหรับการส่งผ่านข้อมูลและพื้นที่เก็บข้อมูลได้ อย่าลืมปิดการนำเข้าบันทึกตามที่อธิบายไว้ในส่วนถัดไปเพื่อหลีกเลี่ยงค่าใช้จ่ายในการนำเข้า
ปิดการนําเข้าบันทึกเพื่อหลีกเลี่ยงการเรียกเก็บเงิน
เราขอแนะนำให้ลดการใช้งานการบันทึก หรือการส่งออกหรือกำหนดเส้นทางบันทึก แทนการปิดการนำเข้าบันทึก อย่างไรก็ตาม หากไม่ต้องการใช้บันทึกของ Fleet Engine คุณหลีกเลี่ยงการเรียกเก็บเงินที่อาจเกิดขึ้นกับ Cloud Logging ได้โดยปิดการนำเข้า โดยค่าเริ่มต้น บันทึกของ Fleet Engine จะได้รับการกำหนดเส้นทางไปยังที่เก็บข้อมูลบันทึก _Default
คำสั่งต่อไปนี้อัปเดตที่เก็บข้อมูลการบันทึก _Default ให้ไม่นำเข้าบันทึกของ Fleet Engine
gcloud logging sinks update _Default \
--log-filter='NOT LOG_ID("cloudaudit.googleapis.com/activity") \
AND NOT LOG_ID("externalaudit.googleapis.com/activity") \
AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") \
AND NOT LOG_ID("externalaudit.googleapis.com/system_event") \
AND NOT LOG_ID(" cloudaudit.googleapis.com/access_transparency") \
AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") \
AND NOT resource.type:"fleetengine.googleapis.com"''
ดูข้อมูลเพิ่มเติมได้ที่การยกเว้น Cloud Logging และการยกเว้นบันทึก การส่งออกของ Cloud Logging และการส่งออกบันทึก
ใช้เครื่องมือสำรวจบันทึก
หากต้องการใช้เครื่องมือสำรวจบันทึก ให้เปิด Cloud Console เลือกการบันทึก แล้วเลือกเครื่องมือสำรวจบันทึก หากต้องการดูรายการบันทึกของ Fleet Engine ทั้งหมด ให้คลิกประเภททรัพยากร Fleet Engine บันทึก API การนำส่งบางรายการจะมีป้ายกำกับด้วยรหัสงานและรหัสยานพาหนะสำหรับนำส่ง โดยคุณจะใช้ป้ายกำกับเหล่านี้เพื่อเลือกบันทึกสำหรับงานหรือยานพาหนะที่สนใจได้
กรองบันทึกตามรหัสยานพาหนะที่นำส่ง
ใน Logging Explorer คุณสามารถใช้ข้อความค้นหาต่อไปนี้เพื่อจำกัดบันทึกไปยังยานพาหนะที่ระบุได้
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
กรองบันทึกตามรหัสงาน
ในเครื่องมือสำรวจบันทึก คุณใช้การค้นหาต่อไปนี้เพื่อจำกัดบันทึกไปยังงานที่เฉพาะเจาะจงได้
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.task_id=~"task_id"
กรองบันทึกสำหรับยานพาหนะในช่วงเวลาที่เฉพาะเจาะจง
ในเครื่องมือสำรวจบันทึก คุณสามารถใช้คำค้นหาต่อไปนี้เพื่อจำกัดบันทึกสำหรับยานพาหนะในช่วงเวลาที่ระบุได้
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
timestamp>="2020-09-24T20:00:00.000Z"
timestamp<"2020-09-24T21:00:00.000Z"
ตัวอย่างเมตริกตามบันทึก
ตัวอย่างต่อไปนี้แสดงวิธีใช้เมตริกตามบันทึกเพื่อติดตามจำนวนงานที่สร้างขึ้นเมื่อเวลาผ่านไป
ใน Cloud Console ให้เลือกการบันทึก แล้วเลือก Logs Explorer เพื่อเปิดเครื่องมือสำรวจบันทึก จากนั้นใช้ตัวกรองต่อไปนี้
resource.type="fleetengine.googleapis.com/DeliveryFleet" resource.labels.location="global" logName="projects/ProjectID/logs/fleetengine.googleapis.com%2Fupdate_task" jsonPayload.request.task.taskOutcome="TASK_OUTCOME_LOG_SUCCEEDED" jsonPayload.request.updateMask="taskOutcome" jsonPayload.response.type= ("TASK_TYPE_LOG_PICKUP" OR "TASK_TYPE_LOG_DELIVERY")
ในแผงผลการค้นหา ให้เลือกการกระทำแบบเลื่อนลง แล้วเลือกสร้างเมตริก
ในกล่องโต้ตอบเครื่องมือแก้ไขเมตริก
- ระบุชื่อเมตริก (เช่น billable_tasks)
- ระบุคำอธิบายเมตริก (เช่น จำนวนงานที่เรียกเก็บเงินได้)
- ปล่อยตัวเลือกหน่วยว่างไว้ _ คงตัวเลือก Type ไว้เป็น Counter
จากนั้นเลือกปุ่มสร้างเมตริก
ในหน้าเมตริกตามบันทึก คุณควรเห็นข้อความยืนยันว่าเมตริกสร้างสำเร็จแล้ว และเมตริกใหม่ควรปรากฏในส่วนเมตริกที่ผู้ใช้กำหนด ระบบจะป้อนข้อมูลเมตริกขณะที่ระบบสร้างบันทึกที่ตรงกัน
เลือกเมนูแบบเลื่อนลงในแนวตั้งทางด้านขวาของเมตริกใหม่ แล้วเลือกดูในเครื่องมือสำรวจเมตริก
ในแผงด้านซ้ายใต้ "สร้างคำค้นหาของคุณ" ให้ตั้งค่าประเภททรัพยากรเป็น Fleet Engine และค้นหาเมตริก billingable_tasks
กราฟทางด้านขวาจะแสดงอัตราการโทร billingable_tasks
การใช้ BigQuery
BigQuery เป็นเครื่องมือที่มีประสิทธิภาพในการวิเคราะห์ โดยใช้เพื่อจัดเก็บบันทึกระยะยาวและค้นหาข้อมูลแบบ SQL แบบเฉพาะกิจ
การกำหนดเส้นทางบันทึกไปยัง BigQuery
หากต้องการใช้ประโยชน์จาก BigQuery คุณต้องกำหนดเส้นทางบันทึกไปยังพื้นที่เก็บข้อมูล BigQuery ดังนี้
ใน Cloud Console ให้เลือกการบันทึก แล้วเลือก Logs Explorer
สร้างตัวกรองที่แยกบันทึกของ Fleet Engine ใน "เครื่องมือสำรวจช่องบันทึก" ให้เลือกประเภททรัพยากร Fleetengine.googleapis.com/DeliverFleet
ในแผงผลการค้นหา ให้คลิกเมนูแบบเลื่อนลง "การดำเนินการ" แล้วเลือกสร้างซิงก์
ในกล่องโต้ตอบเลือกบริการซิงก์ ให้เลือกชุดข้อมูล BigQuery
ในกล่องโต้ตอบแก้ไขซิงก์ ให้ระบุตัวเลือกต่อไปนี้
- ระบุชื่อซิงก์ (เช่น FleetEngineLogsSink)
- ออกจากบริการซิงก์เป็น BigQuery
- เลือกตัวเลือกใช้ตารางที่แบ่งพาร์ติชันแล้ว ซึ่งจะช่วยเพิ่มประสิทธิภาพ ของคำค้นหา
- ในส่วนปลายทางของซิงก์ ให้เลือกสร้างชุดข้อมูล BigQuery ใหม่ แล้วระบุชื่อชุดข้อมูล BigQuery (เช่น FleetEngineLogs)
- คลิกปุ่มสร้างซิงก์
ตอนนี้บันทึกของคุณควรเริ่มเติมข้อมูลชุดข้อมูล BigQuery คุณจะดูข้อมูลนี้ได้ในส่วน BigQuery ของ Cloud Console
จะมีการสร้างตารางหลายตารางภายใต้ชุดข้อมูล FleetEngineLogs โดยอัตโนมัติ 1 ตารางสำหรับบันทึกแต่ละประเภท ดังนี้
- CreateDeliveryVehicle
- GetDeliveryVehicle
- ListDeliveryVehicle
- UpdateDeliveryVehicle
- CreateTask
- GetTask
- UpdateTask
- ListTasks
ชื่อตารางใช้รูปแบบต่อไปนี้
project_id.data_set.log_name
ตัวอย่างเช่น หากโปรเจ็กต์ชื่อ test_project และชื่อชุดข้อมูลคือ FleetEngineLogs ตาราง CreateTask จะมีชื่อต่อไปนี้
test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task
ตัวอย่างคำค้นหา
ส่วนนี้จะแสดงตัวอย่างการค้นหาที่คุณสามารถสร้างได้
งานที่สร้างต่อชั่วโมง
คำค้นหาต่อไปนี้จะนับจำนวนบันทึก CreateTasks และจัดกลุ่มตามชั่วโมง
SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
count(*) as num_tasks_created
FROM
`ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_task`
GROUP BY hour
ORDER by hour
จำนวนการแวะพักต่อยานพาหนะ 1 คันต่อชั่วโมง
คำค้นหาต่อไปนี้จะสร้างจำนวนการแวะพักที่ยานพาหนะให้บริการโดยแยกตามชั่วโมง
ตัวอย่างเช่น ข้อความค้นหานี้อาจระบุว่าในชั่วโมงที่ผ่านมา
- ยานพาหนะ A หยุดพัก 10 ครั้งในชั่วโมง 12 และแวะพัก 8 ครั้งในชั่วโมง 13
- รถ B หยุดพัก 5 ครั้งในชั่วโมงที่ 11 และหยุดพัก 7 ครั้งในชั่วโมง 12
รถ C แวะพัก 12 ครั้งในชั่วโมงที่ 13 และหยุดพัก 9 ครั้งในชั่วโมง 14
SELECT jsonpayload_v1_updatedeliveryvehiclelog.request.deliveryvehicleid AS vehicle, TIMESTAMP_TRUNC(timestamp, HOUR) AS hour, COUNT(*) AS num_stops FROM `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_delivery_vehicle` WHERE ARRAY_LENGTH(jsonpayload_v1_updatedeliveryvehiclelog.request.deliveryvehicle.remainingvehiclejourneysegments) > 0 AND jsonpayload_v1_updatedeliveryvehiclelog.request.deliveryvehicle.remainingvehiclejourneysegments[ OFFSET (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED' GROUP BY 1, 2 ORDER BY 2
อัตราความสำเร็จของการแสดงโฆษณาครั้งแรก
คำค้นหาต่อไปนี้ที่แสดงเปอร์เซ็นต์ของความสำเร็จในอัตราความพยายามในการแสดงโฆษณาครั้งแรก
SELECT
vehicle_id,
COUNTIF(outcome = "TASK_OUTCOME_LOG_SUCCEEDED") AS num_success,
COUNT(*) AS total_deliveries,
COUNTIF(outcome = "TASK_OUTCOME_LOG_SUCCEEDED") * 100/ COUNT(*) AS success_rate
FROM (
SELECT
labels.delivery_vehicle_id AS vehicle_id,
jsonpayload_v1_updatetasklog.response.trackingid AS trackingid,
ARRAY_AGG(jsonpayload_v1_updatetasklog.response.taskoutcome
ORDER BY
timestamp ASC)[ORDINAL(1)] AS outcome,
FROM
`ProjectId.FleetEngineLogsfleetengine_googleapis_com_update_task`
WHERE
jsonpayload_v1_updatetasklog.response.type = "TASK_TYPE_LOG_DELIVERY"
GROUP BY 1, 2
ORDER BY 1, 2)
GROUP BY 1
ORDER BY 1
แดชบอร์ด Datastudio
สามารถผสานรวม BigQuery เข้ากับเครื่องมือ Business Intelligence และสร้างแดชบอร์ดสำหรับการวิเคราะห์ธุรกิจได้
ตัวอย่างต่อไปนี้แสดงวิธีสร้างแดชบอร์ดที่สามารถแสดงงานและการเคลื่อนไหวของยานพาหนะบนแผนที่
เปิดหน้าแดชบอร์ด Datastudio ใหม่และเลือก BigQuery เป็นการเชื่อมต่อข้อมูล
เลือกการค้นหาที่กำหนดเองแล้วเลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่ต้องการเรียกเก็บเงิน
ป้อนคำค้นหาต่อไปนี้ลงในช่องคำค้นหา
SELECT
timestamp,
labels.delivery_vehicle_id,
jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.latitude AS lat,
jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.longitude AS lng
FROM
`ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_delivery_vehicle`
เลือกประเภทแผนภูมิเป็น Bubble Map แล้วเลือกช่องตำแหน่ง
เลือกสร้างช่อง
ตั้งชื่อช่องและเพิ่มสูตรต่อไปนี้ CONCAT(lat, ",", lng)
จากนั้นตั้งค่าประเภทเป็น ภูมิศาสตร์->ละติจูด ลองจิจูด
คุณสามารถเพิ่มการควบคุมลงในหน้าแดชบอร์ดเพื่อกรองข้อมูลได้ เช่น เลือกตัวกรองช่วงวันที่
แก้ไขช่องช่วงวันที่เพื่อเลือกช่วงวันที่เริ่มต้น
คุณเพิ่มการควบคุมรายการแบบเลื่อนลงเพิ่มเติมสำหรับ delivery_vehicle_id ได้
ตัวควบคุมเหล่านี้ช่วยให้คุณเห็นภาพการเคลื่อนที่ของยานพาหนะหรือการเคลื่อนไหวในการนำส่ง