บันทึกคำขอและการตอบกลับ API

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 คุณจะตรวจสอบว่าได้เปิดใช้การบันทึกหรือไม่โดยใช้คำค้นหาต่อไปนี้ใน Logs Explorer

resource.type:"fleetengine.googleapis.com"

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

เปิดใช้บันทึกการใช้งานแบบจำกัด

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

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

  1. เปิดหน้าเราเตอร์บันทึกในคอนโซล Google Cloud
  2. อัปเดตที่เก็บข้อมูลการบันทึก _Default เพื่อยกเว้นบันทึกการใช้งานที่ถูกจำกัด
    1. เลือกที่เก็บข้อมูลการบันทึกเริ่มต้น แล้วเลือก 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/deliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
      5. คลิก "สร้างซิงก์"

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

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

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

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

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

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

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

โครงสร้างบันทึกการแยกจะเหมือนกับโครงสร้างที่กล่าวถึงในคำแนะนำรายการบันทึกการแยกสำหรับบันทึกการตรวจสอบ Cloud ความแตกต่างที่สําคัญสําหรับบันทึกการแยกใน Fleet Logging คือการแยกเกิดขึ้นในช่อง jsonPayload แทนที่จะเป็นช่อง protoPayload ดูตัวอย่างการแยกที่แสดงในส่วนถัดไป

ประเภทบันทึกที่รองรับ

Fleet Engine รองรับการแยกบันทึกเฉพาะสำหรับประเภทบันทึกต่อไปนี้ซึ่งมีขนาดบันทึกเกิน 256 KB

ตัวอย่างโครงสร้างบันทึกการแยก

// First Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-1",
  "jsonPayload": {
    "response": {
      "matches": [
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-0",
            // ...
          }
        },
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-1",
            // ...
            }
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "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": {
    "response": {
      "matches": [
        {},{} // Previous matches appear as empty objects
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-2",
            // ...
          },
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "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 คุณจะใช้ Logs Explorer เพื่อเขียนคำค้นหาสำหรับดูบันทึกได้

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

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

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

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

ตัวอย่างต่อไปนี้แสดง LogEntry สำหรับบันทึก UpdateVehicle คำขอ 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.UpdateVehicleLog"
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "labels": {2},
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

หากมีการส่งข้อความแจ้งข้อผิดพลาด RPC ระบบจะล้างช่อง responseVehicle และตั้งค่าช่อง errorResponse และป้อนข้อมูลภายใน jsonPayload ดังนี้

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "errorResponse": {
          "httpStatusCode": 404,
          "code": "NOT_FOUND",
          "message": "No entity with id invalidVehicleId exists"
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
        "request": {
          "vehicle": {3},
          "updateMask": "deviceSettings",
          "vehicleId": "fakeVehicleId",
          "header": {4}
        }
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "severity": "ERROR",
      "labels": {2}
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

ดูข้อมูลเพิ่มเติมเกี่ยวกับภาษาของการค้นหาการบันทึกได้ที่ภาษาของการค้นหาการบันทึก ดูข้อมูลเกี่ยวกับวิธีใช้บันทึกเพื่อสร้างเมตริกได้ที่ภาพรวมของเมตริกตามบันทึก

จัดการต้นทุนการบันทึก

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

ลดการใช้งานการบันทึก

คุณจำกัดปริมาณการนำเข้าข้อมูลบันทึกได้โดยการยกเว้นรายการบันทึกบางรายการ

ส่งออกหรือกำหนดเส้นทางบันทึก

คุณสามารถกำหนดเส้นทางบันทึกไปยัง Google Cloud อื่นๆ หรือปลายทางภายนอกเพื่อหลีกเลี่ยงค่าใช้จ่ายในการส่งผ่านข้อมูลและพื้นที่เก็บข้อมูลเริ่มต้น โปรดตรวจสอบว่าได้ปิดการส่งผ่านข้อมูลบันทึกตามที่อธิบายไว้ในส่วนถัดไปเพื่อหลีกเลี่ยงค่าใช้จ่ายในการนำเข้าข้อมูล

ปิดการนำเข้าบันทึกเพื่อหลีกเลี่ยงการเรียกเก็บเงิน

ขอแนะนำให้ลดการใช้งานการบันทึกหรือการส่งออกหรือกำหนดเส้นทางบันทึกมากกว่าการปิดการนำเข้าบันทึก อย่างไรก็ตาม หากคุณไม่ต้องการใช้บันทึกของ Fleet Engine คุณสามารถหลีกเลี่ยงค่าบริการ Cloud Logging ที่อาจเกิดขึ้นได้โดยปิดการส่งผ่านข้อมูล โดยค่าเริ่มต้น ระบบจะกำหนดเส้นทางบันทึกของ Flet 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 และการส่งออกบันทึก

ใช้เครื่องมือสำรวจบันทึก

หากต้องการใช้ Logging Explorer ให้เปิด Cloud Console เลือกการบันทึก จากนั้นเลือก Logs Explorer หากต้องการดูรายการบันทึก Fleet Engine ทั้งหมดที่มี ให้คลิกประเภททรัพยากร Fleet Engine บันทึก API บางรายการจะติดป้ายกำกับเป็นรหัสการเดินทางและรหัสยานพาหนะ คุณสามารถใช้ป้ายกำกับเหล่านี้เพื่อเลือกบันทึกสำหรับการเดินทางหรือยานพาหนะที่สนใจ

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

กรองบันทึกตามรหัสรถ

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

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"

กรองยานพาหนะ

กรองบันทึกตามรหัสการเดินทาง

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

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.trip_id=~"trip_id"

กรองบันทึกสำหรับยานพาหนะในระยะเวลาที่กำหนด

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

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"
    timestamp>="2020-09-24T20:00:00.000Z"
    timestamp<"2020-09-24T21:00:00.000Z"

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

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

  1. ใน Cloud Console ให้เลือกการบันทึก แล้วเลือก Logs Explorer เพื่อเปิดเครื่องมือสำรวจบันทึก จากนั้นใช้ตัวกรองต่อไปนี้

    resource.type="audited_resource"
    resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
    
  2. ในแผงผลการค้นหา ให้เลือกเมนูแบบเลื่อนลงการดำเนินการ แล้วเลือกสร้างเมตริก

    สร้างเมตริก

  3. ในกล่องโต้ตอบเครื่องมือแก้ไขเมตริก ให้ทำดังนี้

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

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

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

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

    ดูเมตริก

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

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

    กราฟทางด้านขวาแสดงอัตราการโทรผ่าน billingable_trips

ใช้ BigQuery

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

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

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

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

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

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

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

    สร้างซิงก์

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

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

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

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

    แก้ไขซิงก์

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

ส่วน BigQuery

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

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • SearchVehicles
  • UpdateVehicle
  • CreateTrip
  • GetTrip
  • UpdateTrip
  • ListTrips

ชื่อตารางใช้รูปแบบต่อไปนี้

project_id.data_set.log_name

ตัวอย่างเช่น หากโปรเจ็กต์ชื่อ test_project และชื่อชุดข้อมูลคือ FleetEngineLogs ตาราง CreateTrip จะมีชื่อดังต่อไปนี้

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

ตัวอย่างคำค้นหา

ส่วนนี้จะแสดงตัวอย่างของการค้นหาที่คุณสร้างได้

การเดินทางที่สร้างขึ้นต่อชั่วโมง

การค้นหาต่อไปนี้จะนับจำนวนบันทึก CreateTrips และจัดกลุ่มตามชั่วโมง

    SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
           count(*) as num_trips_created
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`
    GROUP BY hour
    ORDER by hour

จำนวนครั้งที่แวะพักต่อยานพาหนะ 1 คันต่อชั่วโมง

การค้นหาต่อไปนี้จะสร้างจำนวนการแวะพักที่ยานพาหนะให้บริการ โดยแจกแจงตามชั่วโมง

ตัวอย่างเช่น ข้อความค้นหานี้อาจบอกเราว่าใน 1 ชั่วโมงที่ผ่านมา

  • ยานพาหนะ ก. แวะพัก 10 ครั้งในชั่วโมง 12 และแวะพัก 8 ครั้งในชั่วโมง 13
  • ยานพาหนะ ข แวะพัก 5 จุดในชั่วโมง 11 และแวะพัก 7 จุดในชั่วโมง 12
  • รถ C แวะพัก 12 จุดในชั่วโมง 13 และแวะพัก 9 จุดในชั่วโมง 14

    SELECT
      jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,
      TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
      COUNT(*) AS num_stops
    FROM
      `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`
    WHERE
    ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) > 0
    AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[
    OFFSET
    (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'
    GROUP BY
    1,
    2
    ORDER BY
    2
    

แดชบอร์ด Data Studio

BigQuery สามารถผสานรวมกับเครื่องมือ Business Intelligence และสามารถสร้างแดชบอร์ดสำหรับการวิเคราะห์ธุรกิจ

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

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

    การเชื่อมต่อ
อินเทอร์เน็ตมือถือ

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

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

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

    ป้อนคำค้นหา

    SELECT
     timestamp,
     labels.vehicle_id,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_vehicle`
    
  4. เลือก "ประเภทแผนภูมิ" เป็นแผนที่ลูกโป่ง แล้วเลือกช่องสถานที่ตั้ง

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

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

    สร้างช่อง

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

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

    ประเภทชุด

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

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

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

    ช่วงวันที่

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

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

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