Logging

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 ให้ทำตามขั้นตอนต่อไปนี้

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

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

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

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

  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)
    • ระบุคำอธิบายเมตริก (เช่น จำนวนงานที่เรียกเก็บเงินได้)
    • ปล่อยตัวเลือกหน่วยว่างไว้ _ คงตัวเลือก Type ไว้เป็น Counter

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

  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/DeliverFleet

    สร้างตัวกรอง

  3. ในแผงผลการค้นหา ให้คลิกเมนูแบบเลื่อนลง "การดำเนินการ" แล้วเลือกสร้างซิงก์

    สร้างซิงก์

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

    เลือก
ซิงก์

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

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

    แก้ไขซิงก์

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

ส่วน BigQuery

จะมีการสร้างตารางหลายตารางภายใต้ชุดข้อมูล 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 และสร้างแดชบอร์ดสำหรับการวิเคราะห์ธุรกิจได้

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

  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 ได้

    รายการแบบเลื่อนลง

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