Logging

Fleet Engine นำเสนอบริการการบันทึกแบบง่ายที่ช่วยให้คุณสามารถบันทึก คำขอ API และเพย์โหลดการตอบกลับ บันทึกเหล่านี้ช่วยให้คุณสามารถแก้ไขข้อบกพร่อง การผสานรวม สร้างเมตริกการตรวจสอบ และวิเคราะห์รูปแบบการเข้าชม

Fleet Engine จะส่งบันทึกเป็นแพลตฟอร์ม บันทึกไปยัง Cloud Logging เพื่อให้คุณใช้ระบบคลาวด์ เครื่องมือการบันทึกเพื่อเข้าถึงไฟล์

สิ่งที่ Fleet Engine บันทึก

Fleet Engine ส่งข้อมูลหลายชิ้นไปยัง Cloud การบันทึก เช่น

  • คำขอและการตอบกลับ REST และ gRPC ที่ผ่านการตรวจสอบสิทธิ์ทั้งหมด
  • การตอบกลับข้อผิดพลาด
  • คำขอ การตอบกลับ และข้อความแสดงข้อผิดพลาดจากการโทรที่เริ่มต้นโดยคนขับ 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 โปรเจ็กต์ที่อยู่ในระบบคลาวด์ ให้ทำตามขั้นตอนต่อไปนี้

เตรียมโปรเจ็กต์เพื่อรับบันทึกการใช้งานที่จํากัด

  1. เปิดหน้าเราเตอร์ของบันทึกในคอนโซล Google Cloud
  2. อัปเดตที่เก็บข้อมูลการบันทึก _Default เพื่อยกเว้นบันทึกการใช้งานที่ถูกจำกัด
    1. เลือกที่เก็บข้อมูลการบันทึก _Default แล้วเลือก Edit Sink
    2. ในหน้า "เลือกบันทึกเพื่อกรองออกจากซิงก์" คลิกส่วน "เพิ่ม การยกเว้น" ปุ่ม:
      1. ชื่อตัวกรองการยกเว้น: ExcludeRestrictedLogs
      2. ตัวกรองการยกเว้น: labels.restriction="TOS_RESTRICTED"
    3. คลิก "อัปเดตซิงก์"
  3. อัปเดตที่เก็บข้อมูลการบันทึกแบบจำกัดเพื่อเก็บบันทึกการใช้งานที่จำกัด
    1. จากหน้า Log Router ให้เลือก "Create Sink"
    2. สร้างซิงก์ด้วยการตั้งค่าต่อไปนี้
      1. รายละเอียดซิงก์:
        1. ชื่อ: RestrictedLogs
        2. คำอธิบาย: บันทึกการใช้งานที่จำกัดของ Routes Fleet Engine
      2. ปลายทางของซิงก์:
        1. บริการซิงก์: ที่เก็บข้อมูลการบันทึก
        2. เลือกที่เก็บข้อมูลบันทึก: สร้างที่เก็บข้อมูลบันทึกใหม่
          1. ชื่อ: ถูกจำกัด
          2. คำอธิบาย: มีบันทึกการใช้งานที่จำกัดของ Fleet Engine
        3. ระยะเวลาเก็บรักษา: 30 วัน
          1. หมายเหตุ: ระยะเวลาเก็บรักษาต้องไม่เกิน 30 วัน
      3. บันทึกที่จะรวมไว้ในซิงก์: เว้นว่างไว้
      4. บันทึกที่จะกรองออกจากซิงก์: คลิก "เพิ่มการยกเว้น"
        1. ชื่อตัวกรองการยกเว้น: ExcludeNonRestrictedLogs
        2. ตัวกรองการยกเว้น: ไม่ (resource.type = "fleetengine.googleapis.com/Fleet" หรือ resource.type = "fleetengine.googleapis.com/DeliverFleet") ไม่ (labels.restriction = "TOS_RESTRICTED")
      5. คลิก "สร้างซิงก์"

ติดต่อทีมสนับสนุนเพื่อเปิดใช้บันทึกการใช้งานที่ถูกจำกัด

จากนั้นติดต่อ การสนับสนุนและให้บริการ ข้อมูลต่อไปนี้ในคำขอการสนับสนุนของคุณ

  1. รหัสโปรเจ็กต์ที่จะเปิดใช้:
  2. อีเมลของผู้ที่ขอให้เปลี่ยนแปลง
    1. หมายเหตุ: บุคคลนี้ควรมีสิทธิ์แก้ไขโปรเจ็กต์ Google Cloud อยู่ในรายการ
  3. การเปิดใช้เนื้อหา Google Maps ที่มีการใช้งานแบบจำกัดใน Cloud Logging หมายความว่าคุณยอมรับ ให้เป็นไปตามแพลตฟอร์ม Google Maps ข้อกำหนดและบริการระบบเคลื่อนที่ เฉพาะ ข้อกำหนด รวมถึงข้อกำหนดเกี่ยวกับการแคชและการใช้งานที่ได้รับอนุญาตที่เกี่ยวข้องกับ Google เนื้อหาแผนที่ ใช่ / ไม่ใช่

เมื่อทีมสนับสนุนได้รับคำขอของคุณ ก็จะส่งการยืนยันว่าการบันทึก เปิดใช้สำหรับโปรเจ็กต์ของคุณแล้ว

แยกบันทึกของระบบคลาวด์

Cloud Logging จำกัดขนาดบันทึกขาเข้าไว้ที่ 256 KB บริการทิ้งบันทึก เกินเกณฑ์ดังกล่าว Fleet จะเก็บรักษาข้อมูลขนาดใหญ่เพื่อให้มั่นใจว่า Cloud Logging จะเก็บรักษาบันทึกขนาดใหญ่ เครื่องมือสามารถแยกไฟล์เป็นชุดบันทึกที่มีขนาดต่ำกว่าเกณฑ์ 256 KB บันทึกดังกล่าว มีร่วมกัน insertId นำหน้าเพื่อระบุลำดับที่บริการแยกบันทึกที่เล็กกว่าจาก บันทึกดั้งเดิมที่มีขนาดใหญ่เกินไป จากนั้น คุณจะเข้าร่วมด้วยกันได้อีกครั้งโดยอิงตาม insertId

หากต้องการเข้าถึงบันทึกที่ไม่ได้แยกส่วนต้นฉบับ ให้ผสานบันทึกที่แยกไว้ตาม insertIds ในลำดับเดิมที่มีการแยก ตามที่ระบุโดยดัชนีใน รายการบันทึกของระบบคลาวด์

โครงสร้างบันทึกการแบ่งจะเหมือนกับโครงสร้างที่กล่าวถึงในการตรวจสอบการแยก คู่มือรายการบันทึกสำหรับ บันทึกการตรวจสอบ Cloud ความแตกต่างที่สำคัญสำหรับบันทึกการแยกใน 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
  }
}

เข้าถึงบันทึกของคุณ

บันทึกของระบบคลาวด์มีโครงสร้างตาม LogEntry Fleet Engine จะส่งบันทึกไปยัง Cloud Logging ด้วย ตั้งค่าresource.typeเป็น fleetengine.googleapis.com แล้ว คุณสามารถใช้บันทึก สำรวจเพื่อ เขียนการค้นหาเพื่อดูบันทึกของคุณ

เช่น หากต้องการดู RPC ทั้งหมดที่ส่งไปยัง Fleet Engine ที่แสดงข้อผิดพลาด ให้ใช้เมธอด คำค้นหาเครื่องมือสำรวจบันทึกต่อไปนี้

resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR

ในการดูบันทึกของ RPC ที่สร้างขึ้นในเมธอด UpdateDeliveryVehicle สำหรับ ตัวอย่างโปรเจ็กต์-รหัสโปรเจ็กต์ ให้ใช้การค้นหาเครื่องมือสำรวจบันทึกต่อไปนี้

logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle"

ตัวอย่างต่อไปนี้แสดงรายการบันทึกสำหรับ UpdateDeliveryVehicle log คำขอและการตอบกลับ 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 บันทึกของเครื่องมือ

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 เลือกการบันทึก จากนั้น Logs Explorer ในการดูรายการของบันทึกของ Fleet Engine ทั้งหมด ให้คลิก ประเภททรัพยากร Fleet Engine บันทึก API การนำส่งบางรายการมีป้ายกำกับเป็น รหัสงานและรหัสยานพาหนะที่นำส่ง คุณจะใช้ป้ายกำกับเหล่านี้เพื่อเลือกบันทึกสำหรับ งานหรือยานพาหนะที่คุณสนใจ

ป้ายกำกับบันทึก

กรองบันทึกตามรหัสยานพาหนะที่นำส่ง

ในเครื่องมือสำรวจบันทึก คุณสามารถใช้คำค้นหาต่อไปนี้เพื่อจำกัดบันทึกสำหรับ ยานพาหนะที่ต้องการ:

    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"

ตัวอย่างเมตริกตามบันทึก

ตัวอย่างต่อไปนี้จะแสดงวิธีใช้เมตริกตามบันทึกเพื่อติดตามจำนวน งานที่สร้างขึ้นในช่วงที่ผ่านมา

  1. ใน 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")
    
  2. ในแผงผลการค้นหา ให้เลือกรายการการกระทำแบบเลื่อนลง แล้วเลือก สร้างเมตริก

    สร้างเมตริก

  3. ในกล่องโต้ตอบเครื่องมือแก้ไขเมตริก

    • ระบุชื่อเมตริก (เช่น billable_tasks)
    • ระบุคำอธิบายเมตริก (เช่น จำนวนที่เรียกเก็บเงินได้ Tasks)
    • ปล่อยตัวเลือกหน่วยว่างไว้ _ คงตัวเลือกประเภทไว้เป็น ตัวนับ

    จากนั้นเลือกปุ่มสร้างเมตริก

  4. ในหน้าเมตริกตามบันทึก คุณควรเห็นข้อความยืนยันว่า สร้างเมตริกสำเร็จแล้ว และเมตริกใหม่ควรปรากฏใน ส่วนเมตริกที่ผู้ใช้กำหนด ตอนนี้ระบบจะป้อนข้อมูลเมตริกเป็น "ตรงกัน" ระบบจะสร้างบันทึกขึ้น

  5. เลือกเมนูแบบเลื่อนลงแนวตั้งทางด้านขวาของเมตริกใหม่ เลือกดูในเครื่องมือสำรวจเมตริก

    ดูเมตริก

  6. ในแผงด้านซ้ายใต้ "สร้างคำค้นหาของคุณ" ให้ตั้งค่าประเภททรัพยากรเป็น Fleet Engine และค้นหาเมตริก billingable_tasks

    เมตริกการค้นหา

    กราฟทางด้านขวาจะแสดงอัตราการโทร billingable_tasks

การใช้ BigQuery

BigQuery เป็นเครื่องมือที่มีประสิทธิภาพในการวิเคราะห์ ใช้เพื่อจัดเก็บ บันทึกระยะยาวและค้นหาข้อมูลในลักษณะเดียวกับ SQL แบบเฉพาะกิจ

การกำหนดเส้นทางบันทึกไปยัง BigQuery

เพื่อใช้ประโยชน์จาก BigQuery บันทึกจะต้องถูกกำหนดเส้นทางไปยังที่เก็บข้อมูล BigQuery ในฐานะ ดังต่อไปนี้:

  1. ใน Cloud Console ให้เลือกการบันทึก แล้วเลือก Logs Explorer

  2. สร้างตัวกรองที่แยกบันทึกของ Fleet Engine ในตัวสำรวจช่องบันทึก เลือกประเภททรัพยากร Fleetengine.googleapis.com/DeliveryFleet

    สร้าง
แผ่นกรอง

  3. ในแผงผลการค้นหา ให้คลิกรายการแบบเลื่อนลง "การกระทำ" และเลือกสร้าง ซิงก์

    สร้าง
อ่างล้างจาน

  4. ในกล่องโต้ตอบเลือกบริการซิงก์ ให้เลือกชุดข้อมูล BigQuery

    เลือก
อ่างล้างจาน

  5. ในกล่องโต้ตอบแก้ไขซิงก์ ให้ระบุตัวเลือกต่อไปนี้

    • ระบุชื่อซิงก์ (เช่น FleetEngineLogsSink)
    • ออกจากบริการซิงก์เป็น BigQuery
    • เลือกตัวเลือกใช้ตารางที่แบ่งพาร์ติชันแล้ว การดำเนินการนี้จะช่วยเพิ่มอันดับการค้นหา ด้านประสิทธิภาพ
    • ในส่วนปลายทางของซิงก์ ให้เลือกสร้างชุดข้อมูล BigQuery ใหม่ แล้วเลือก ระบุชื่อชุดข้อมูล BigQuery (เช่น FleetEngineLogs)
    • คลิกปุ่มสร้างซิงก์

    แก้ไข
    อ่างล้างจาน

ตอนนี้บันทึกของคุณควรเริ่มเติมข้อมูลชุดข้อมูล BigQuery คุณสามารถดู ในส่วน BigQuery ของ Cloud Console

BigQuery
ส่วน

ระบบจะป้อนข้อมูลหลายตารางภายใต้ชุดข้อมูล FleetEngineLogs โดยอัตโนมัติ หนึ่งรายการสำหรับบันทึกแต่ละประเภท:

  • 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 และแดชบอร์ดสามารถ สำหรับการวิเคราะห์ธุรกิจ

ตัวอย่างต่อไปนี้แสดงวิธีสร้างแดชบอร์ดเกี่ยวกับงานและยานพาหนะ และสามารถมองเห็นการเคลื่อนไหวบนแผนที่ได้

  1. เปิดหน้าแดชบอร์ด Datastudio ใหม่และเลือก BigQuery เป็นข้อมูล การเชื่อมต่อ

    ข้อมูล
การเชื่อมต่อ

  2. เลือกการค้นหาที่กำหนดเองและเลือกโปรเจ็กต์ที่อยู่ในระบบคลาวด์ เรียกเก็บเงินแล้ว

    เลือก
โปรเจ็กต์

  3. ป้อนคำค้นหาต่อไปนี้ลงในช่องคำค้นหา

    กรอก
คำถาม

    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`
  1. เลือกประเภทแผนภูมิเป็น Bubble Map แล้วเลือกช่องตำแหน่ง

    แผนภูมิ
ประเภท

  2. เลือกสร้างช่อง

    สร้าง
ฟิลด์

  3. ตั้งชื่อช่องและเพิ่มสูตรต่อไปนี้ CONCAT(lat, ",", lng)

    จากนั้นตั้งค่าประเภทเป็น ภูมิศาสตร์->ละติจูด ลองจิจูด

    ตั้งค่า
ประเภท

  4. คุณสามารถเพิ่มการควบคุมลงในหน้าแดชบอร์ดเพื่อกรองข้อมูลได้ ตัวอย่างเช่น เลือก ตัวกรองช่วงวันที่

    เพิ่ม
การควบคุม

  5. แก้ไขช่องช่วงวันที่เพื่อเลือกช่วงวันที่เริ่มต้น

    วันที่
ช่วง

  6. คุณเพิ่มการควบคุมรายการแบบเลื่อนลงเพิ่มเติมสำหรับ delivery_vehicle_id ได้

    เลื่อนลง
ลิสต์

ตัวควบคุมเหล่านี้ช่วยให้คุณเห็นภาพการเคลื่อนที่ของยานพาหนะหรือ ความเคลื่อนไหวภายในการแสดงโฆษณา