Ghi nhật ký các yêu cầu và phản hồi API của bạn

Fleet Engine cung cấp một dịch vụ ghi nhật ký đơn giản cho phép bạn lưu các yêu cầu API và tải trọng phản hồi. Với các nhật ký này, bạn có thể gỡ lỗi tích hợp, tạo chỉ số giám sát và phân tích mẫu lưu lượng truy cập.

Fleet Engine gửi nhật ký dưới dạng nhật ký nền tảng đến tính năng Cloud Logging để bạn có thể sử dụng các công cụ Ghi nhật ký trên đám mây để truy cập vào các nhật ký đó.

Dữ liệu nhật ký của Fleet Engine

Fleet Engine gửi nhiều thông tin đến Cloud Logging, chẳng hạn như:

  • Tất cả yêu cầu và phản hồi REST và gRPC đã được xác thực
  • Phản hồi lỗi
  • Yêu cầu, phản hồi và thông báo lỗi từ các cuộc gọi do SDK Driver thực hiện đến Fleet Engine.
  • Nhật ký phân tách cho các loại nhật ký được hỗ trợ:

Xem tài liệu về thông điệp nhật ký và giản đồ có sẵn trong Tài liệu tham khảo về ghi nhật ký.

Dùng nhóm nhật ký mặc định và bị hạn chế để tuân thủ các chính sách giữ lại dữ liệu

Việc sử dụng bộ chứa "bị hạn chế" và "mặc định" giúp đảm bảo hiểu rõ về mức sử dụng dữ liệu bị hạn chế và không bị hạn chế. Một số dữ liệu nhật ký mà Fleet Engine gửi đến Nền tảng Google Maps chỉ có thể được giữ lại trong một khoảng thời gian giới hạn, theo Điều khoản dành riêng cho dịch vụ di động. Để đảm bảo bạn chỉ giữ lại dữ liệu bị hạn chế trong khoảng thời gian cho phép, dữ liệu đó phải được gắn nhãn là TOS_RestrictedED (Công cụ Fleet Engine đã thực hiện việc này) và được ghi vào một bộ chứa chuyên dụng có tên là "bị giới hạn".

Từ đó, bạn có thể kiểm soát thời gian được lưu giữ và tự động xoá dữ liệu khi hết hạn bằng cách sử dụng chế độ cài đặt Ghi nhật ký trên đám mây. Ví dụ: nhật ký sử dụng bị hạn chế chỉ nên được giữ lại trong 30 ngày.

Ghi lại tất cả dữ liệu không bị hạn chế còn lại vào bộ chứa "mặc định". Trong bộ chứa này, bạn có thể lưu giữ dữ liệu này trong thời gian dài hơn như quy định trong Điều khoản dành riêng cho dịch vụ di động (thường là 1 năm). Việc sử dụng bộ chứa "bị hạn chế" và "mặc định" giúp đảm bảo hiểu rõ về mức sử dụng dữ liệu bị hạn chế và không bị hạn chế của bạn.

Gửi tất cả dữ liệu nhật ký không bị hạn chế còn lại tới bộ chứa "mặc định". Trong bộ chứa này, dữ liệu có thể được giữ nguyên vô thời hạn.

Có được chế độ xem đầy đủ bằng cách hợp nhất các nhật ký bị hạn chế và không bị hạn chế

Nhật ký về mục đích sử dụng bị hạn chế chứa dữ liệu về việc sử dụng bị hạn chế và thông tin tham chiếu đến nhật ký mặc định để có thể được xem xét cùng nhau. Nhật ký sử dụng bị hạn chế chứa insertId của nhật ký mặc định làm tệp tham chiếu trong trường parent_insert_id. Bạn có thể sử dụng trường này để kết hợp dữ liệu từ cả hai nhật ký và có được thông tin đầy đủ.

Xem tài liệu về tất cả thông điệp nhật ký và giản đồ có sẵn trong Tài liệu tham khảo về ghi nhật ký.

Bật tính năng ghi nhật ký trên đám mây

Fleet Engine tự động bật nhật ký mặc định cho những khách hàng mới của Mobility, bắt đầu với các dự án được tạo vào ngày 10 tháng 2 năm 2022. Bạn có thể xác nhận xem đã bật tính năng ghi nhật ký hay chưa bằng cách sử dụng truy vấn sau trong Logs Explorer (Trình khám phá nhật ký):

resource.type:"fleetengine.googleapis.com"

Nếu bạn không thấy nhật ký nào cho truy vấn đó, thì có thể tính năng Ghi nhật ký trên đám mây chưa được bật cho dự án của bạn. Hãy liên hệ với Nhóm hỗ trợ nếu bạn muốn bật tính năng này.

Bật nhật ký sử dụng bị hạn chế

Nhật ký sử dụng bị hạn chế được bật theo yêu cầu. Để bật các nhật ký này cho dự án Google Cloud, hãy hoàn tất các bước sau:

Chuẩn bị dự án để nhận nhật ký về mục đích sử dụng bị hạn chế

  1. Trong bảng điều khiển Google Cloud, hãy mở trang Bộ định tuyến nhật ký.
  2. Cập nhật bộ chứa ghi nhật ký _Default để loại trừ các nhật ký bị hạn chế sử dụng.
    1. Chọn bộ chứa ghi nhật ký _Default, rồi chọn Chỉnh sửa bồn lưu trữ dữ liệu.
    2. Trên phần "Chọn nhật ký để lọc ra bồn lưu trữ dữ liệu", hãy nhấp vào nút "Thêm loại trừ":
      1. Tên bộ lọc loại trừ: AllowRestrictedLogs
      2. Bộ lọc loại trừ: labels.restriction="TOS_ huỷED"
    3. Nhấp vào "Cập nhật bồn lưu trữ dữ liệu".
  3. Cập nhật bộ chứa Ghi nhật ký bị hạn chế để lưu trữ nhật ký về việc sử dụng bị hạn chế.
    1. Trên trang Ghi nhật ký bộ định tuyến, hãy chọn "Tạo bồn lưu trữ dữ liệu".
    2. Tạo bồn lưu trữ dữ liệu bằng các chế độ cài đặt sau:
      1. Thông tin chi tiết về bồn lưu trữ dữ liệu:
        1. Tên: RestrictedLogs
        2. Nội dung mô tả: Nhật ký về mục đích sử dụng hạn chế của Routes Fleet Engine
      2. Đích đến bồn lưu trữ dữ liệu:
        1. Dịch vụ bồn lưu trữ dữ liệu: Bộ chứa ghi nhật ký
        2. Chọn bộ chứa nhật ký: Tạo bộ chứa nhật ký mới
          1. Tên: Bị hạn chế
          2. Nội dung mô tả: Chứa nhật ký về mục đích sử dụng bị hạn chế của Fleet Engine
        3. Khoảng thời gian lưu giữ: 30 ngày
          1. Lưu ý: Khoảng thời gian lưu giữ không được vượt quá 30 ngày.
      3. Nhật ký để thêm vào bồn lưu trữ dữ liệu: để trống
      4. Nhật ký để lọc ra bồn lưu trữ dữ liệu: Nhấp vào "Thêm loại trừ"
        1. Tên bộ lọc loại trừ: ExcludeNonRestrictedLogs
        2. Bộ lọc loại trừ: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/deliveryFleet") KHÔNG (labels.restriction = "TOS_TIMEOUTED")
      5. Nhấp vào "Tạo bồn rửa"

Liên hệ với bộ phận hỗ trợ để bật nhật ký sử dụng bị hạn chế

Sau đó, hãy liên hệ với nhóm hỗ trợ và cung cấp những thông tin sau trong yêu cầu hỗ trợ của bạn:

  1. (Các) mã dự án cần bật:
  2. Địa chỉ email của người yêu cầu thay đổi:
    1. Lưu ý: Người này cần có quyền Chỉnh sửa đối với các dự án trên Google Cloud trong danh sách.
  3. Khi bật Nội dung Google Maps bị hạn chế trong tính năng Ghi nhật ký trên đám mây, bạn đồng ý tuân thủ điều khoản của Nền tảng Google Mapsđiều khoản dành riêng cho dịch vụ Di động, bao gồm cả các yêu cầu về việc sử dụng được phép và lưu vào bộ nhớ đệm liên quan đến Nội dung trên Google Maps. Có/Không

Sau khi nhận được yêu cầu của bạn, nhóm hỗ trợ sẽ gửi xác nhận rằng tính năng ghi nhật ký đã được bật cho dự án của bạn

Chia nhật ký trên đám mây

Tính năng Ghi nhật ký trên đám mây giới hạn kích thước của các nhật ký đến ở mức 256KB. Dịch vụ giảm nhật ký vượt quá ngưỡng đó. Để đảm bảo Cloud Logging giữ lại được các nhật ký lớn, Fleet Engine có thể chia chúng thành một loạt nhật ký dưới ngưỡng 256 KB. Các nhật ký đó có một tiền tố chung insertId để cho biết thứ tự dịch vụ phân tách nhật ký nhỏ hơn từ nhật ký gốc có kích thước quá lớn. Sau đó, bạn có thể tham gia lại các nhóm đó dựa trên insertId của họ.

Để truy cập vào nhật ký không phân tách ban đầu, hãy hợp nhất nhật ký phần phân tách theo insertId của chúng theo thứ tự phân tách ban đầu như được biểu thị bằng chỉ mục trong mục nhập nhật ký đám mây.

Cấu trúc nhật ký phân tách giống với cấu trúc nêu trong Hướng dẫn về mục nhập nhật ký kiểm tra phân tách cho Nhật ký kiểm tra đám mây. Điểm khác biệt chính đối với nhật ký phân tách trong tính năng Ghi nhật ký nhóm là việc phân tách xảy ra trong trường jsonPayload, thay vì trong trường protoPayload. Hãy xem ví dụ về cách phân tách trong phần tiếp theo.

Các loại nhật ký được hỗ trợ

Fleet Engine chỉ hỗ trợ việc phân tách nhật ký cho các loại nhật ký sau đây có kích thước nhật ký vượt quá 256KB:

Ví dụ về cấu trúc nhật ký phân tách

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

Truy cập vào nhật ký

Nhật ký đám mây có cấu trúc xoay quanh định dạng LogEntry. Fleet Engine gửi nhật ký đến Cloud Logging với resource.type của LogEntry được đặt thành fleetengine.googleapis.com. Bạn có thể sử dụng Logs Explorer (Trình khám phá nhật ký) để ghi truy vấn xem nhật ký của mình.

Ví dụ: để xem tất cả RPC đến Fleet Engine trả về một lỗi, hãy sử dụng truy vấn sau đây của Logs Explorer (Trình khám phá nhật ký):

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

Để xem nhật ký của các RPC được tạo cho phương thức UpdateVehicle cho example-project-id của dự án, hãy sử dụng truy vấn sau đây của Trình khám phá nhật ký:

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

Ví dụ sau đây cho thấy một LogEntry cho nhật ký UpdateVehicle. Yêu cầu và phản hồi RPC nằm trong trường 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"
    }

Nếu lỗi RPC được trả về, thì trường responseVehicle sẽ bị xoá, đồng thời trường errorResponse được đặt và điền sẵn trong 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"
    }

Để biết thêm thông tin về ngôn ngữ truy vấn ghi nhật ký, hãy xem phần Ngôn ngữ truy vấn ghi nhật ký . Để biết thông tin về cách bạn có thể sử dụng nhật ký để tạo chỉ số, hãy xem bài viết Tổng quan về các chỉ số dựa trên nhật ký.

Quản lý chi phí ghi nhật ký

Sau khi bật tính năng ghi nhật ký, bạn có trách nhiệm thiết lập cách định tuyến, lưu trữ và giữ lại nhật ký mà bạn muốn. Bạn có thể phải trả thêm phí cho việc nhập và lưu giữ nhật ký của Google Cloud nếu vượt quá giới hạn sử dụng và lưu giữ mà không tính phí. Tuy nhiên, bạn có thể kiểm soát chi phí ghi nhật ký bằng cách thực hiện một trong những việc sau:

Giảm mức sử dụng tính năng ghi nhật ký

Bạn có thể giới hạn lượng nhập dữ liệu nhật ký bằng cách loại trừ một số mục nhập nhật ký nhất định.

Xuất hoặc định tuyến nhật ký

Bạn có thể định tuyến nhật ký đến Google Cloud khác hoặc các đích đến bên ngoài để tránh chi phí nhập và lưu trữ mặc định. Hãy nhớ tắt tính năng nhập nhật ký như mô tả trong phần tiếp theo để tránh chi phí nhập.

Hãy tắt tính năng nhập nhật ký để tránh bị tính phí

Việc giảm mức sử dụng nhật ký hoặc xuất/định tuyến nhật ký sẽ được ưu tiên hơn so với việc tắt tính năng nhập nhật ký. Tuy nhiên, nếu không có ý định sử dụng nhật ký Fleet Engine, thì bạn có thể tắt các khoản phí có thể phát sinh để ghi nhật ký trên đám mây bằng cách tắt tính năng nhập. Theo mặc định, nhật ký Fleet Engine được chuyển đến bộ chứa nhật ký _Default.

Lệnh sau đây sẽ cập nhật bộ chứa ghi nhật ký _Default để không nhập nhật ký của 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"''

Để biết thêm thông tin, hãy xem bài viết: Loại trừ nhật ký trên đám mâyLoại trừ nhật ký. Xuất nhật ký trên đám mâyXuất nhật ký

Sử dụng Trình khám phá nhật ký

Để sử dụng Trình khám phá nhật ký, hãy mở Cloud Console, chọn Logging (Ghi nhật ký) rồi chọn Logs Explorer (Trình khám phá nhật ký). Để xem danh sách tất cả nhật ký hiện có của Fleet Engine, hãy nhấp vào Loại tài nguyên Fleet Engine. Một số nhật ký API được gắn nhãn bằng Mã chuyến đi và Mã xe. Bạn có thể dùng các nhãn này để chọn nhật ký cho các chuyến đi hoặc phương tiện mà bạn quan tâm.

Nhãn nhật ký

Lọc nhật ký theo mã xe

Trong Trình khám phá nhật ký, bạn có thể sử dụng truy vấn sau để hạn chế nhật ký cho một loại xe cụ thể:

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

Lọc xe

Lọc nhật ký theo mã chuyến đi

Trong Trình khám phá nhật ký, bạn có thể sử dụng truy vấn sau để hạn chế nhật ký trong một chuyến đi cụ thể:

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

Lọc nhật ký cho một chiếc xe trong một khoảng thời gian cụ thể

Trong Trình khám phá nhật ký, bạn có thể sử dụng truy vấn sau để hạn chế nhật ký ở các nhật ký của xe trong một khoảng thời gian cụ thể:

    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"

Ví dụ về chỉ số dựa trên nhật ký

Ví dụ sau đây cho biết cách sử dụng các chỉ số dựa trên nhật ký để theo dõi số lượng chuyến đi được tạo theo thời gian.

  1. Trong Cloud Console, hãy chọn Logging (Ghi nhật ký) rồi chọn Logs Explorer (Trình khám phá nhật ký) để mở Logs Explorer (Trình khám phá nhật ký). Sau đó, áp dụng bộ lọc sau:

    resource.type="audited_resource"
    resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
    
  2. Trong ngăn Kết quả truy vấn, hãy chọn trình đơn thả xuống Hành động, rồi chọn Tạo chỉ số.

    Tạo chỉ số

  3. Trong hộp thoại Trình chỉnh sửa chỉ số:

    • Chỉ định tên chỉ số (ví dụ: billable_trips).
    • Chỉ định nội dung mô tả cho chỉ số (ví dụ: Số lệnh gọi chuyến đi có thể tính phí).
    • Để trống tùy chọn Units. _ Để tuỳ chọn Type (Loại) là Counter (Bộ đếm).

    Sau đó chọn nút Tạo chỉ số.

  4. Trên trang Chỉ số dựa trên nhật ký, bạn sẽ thấy thông báo xác nhận rằng chỉ số đã được tạo thành công và chỉ số mới sẽ xuất hiện trong mục Chỉ số do người dùng xác định. Giờ đây, chỉ số này sẽ được điền sẵn khi các nhật ký trùng khớp được tạo.

  5. Chọn trình đơn thả xuống theo chiều dọc ở bên phải của chỉ số mới, rồi chọn View in Metrics Explorer (Xem trong Trình khám phá chỉ số).

    Xem chỉ số

  6. Trên ngăn bên trái trong mục Build Your Query (Tạo truy vấn của bạn), hãy đặt Resource Type (Loại tài nguyên) thành Fleet Engine rồi tìm chỉ số billable_trips.

    Chỉ số tìm kiếm

    Biểu đồ bên phải cho thấy tỷ lệ cuộc gọi Billable_trips.

Sử dụng BigQuery

BigQuery là một công cụ mạnh mẽ để thực hiện phân tích. Bạn có thể dùng công cụ này để lưu trữ nhật ký dài hạn và thực hiện các truy vấn đặc biệt giống như SQL đối với dữ liệu.

Định tuyến nhật ký đến BigQuery

Để tận dụng BigQuery, các nhật ký phải được chuyển đến kho dữ liệu BigQuery, như sau:

  1. Trong Cloud Console, hãy chọn Logging (Ghi nhật ký) rồi chọn Logs Explorer (Trình khám phá nhật ký).

  2. Tạo một bộ lọc để tách biệt nhật ký Fleet Engine. Trong Trình khám phá trường nhật ký, hãy chọn loại tài nguyên Fleetengine.googleapis.com/Fleet.

    Tạo
bộ lọc

  3. Trong ngăn Truy vấn kết quả, hãy nhấp vào trình đơn thả xuống Thao tác rồi chọn Tạo bồn lưu trữ.

    Tạo bồn rửa

  4. Trong hộp thoại Chọn dịch vụ bồn rửa, hãy chọn Tập dữ liệu BigQuery.

    Chọn bồn rửa

  5. Trong hộp thoại Chỉnh sửa bồn lưu trữ dữ liệu, hãy chỉ định các tuỳ chọn sau:

    • Chỉ định tên bồn lưu trữ dữ liệu (ví dụ: FleetEngineLogsSink).
    • Để dịch vụ bồn lưu trữ dữ liệu là BigQuery.
    • Chọn tuỳ chọn Sử dụng bảng được phân vùng. Điều này sẽ làm tăng hiệu suất truy vấn.
    • Trong mục Bồn lưu trữ dữ liệu, hãy chọn Create New BigQuery Dataset (Tạo tập dữ liệu BigQuery mới), sau đó chỉ định tên tập dữ liệu BigQuery (ví dụ: FleetEngineLogs).
    • Nhấp vào nút Tạo bồn lưu trữ dữ liệu.

    Chỉnh sửa
    bồn lưu trữ dữ liệu

Bây giờ, nhật ký của bạn sẽ bắt đầu điền tập dữ liệu BigQuery. Bạn có thể xem dữ liệu trong mục BigQuery của Cloud Console.

Mục BigQuery

Một số bảng trong tập dữ liệu FleetEngineLogs sẽ được điền tự động, mỗi bảng cho mỗi loại nhật ký:

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

Tên bảng sử dụng mẫu sau:

project_id.data_set.log_name

Ví dụ: nếu dự án có tên là test_project và tên tập dữ liệu là FleetEngineLogs, thì bảng CreateTrip sẽ có tên sau:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

Cụm từ tìm kiếm mẫu

Phần này trình bày ví dụ về những truy vấn mà bạn có thể tạo.

Số chuyến đi được tạo mỗi giờ

Truy vấn sau đây tính số lượng nhật ký CreateTrips và nhóm các nhật ký đó theo giờ.

    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

Số điểm dừng trên mỗi xe mỗi giờ

Truy vấn sau đây tạo ra số điểm dừng mà một phương tiện đã phục vụ, được chia nhỏ theo giờ.

Ví dụ: truy vấn này có thể cho chúng ta biết trong giờ vừa qua:

  • Xe A dừng hết 10 lần trong giờ 12 và 8 lần dừng trong giờ 13.
  • Xe B đã dừng lại 5 điểm trong giờ 11 và 7 điểm dừng trong giờ 12.
  • Xe C đã dừng lại 12 điểm trong giờ 13 và 9 điểm dừng trong giờ 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
    

Trang tổng quan Data Studio

Bạn có thể tích hợp BigQuery với các công cụ thông tin kinh doanh thông minh và tạo trang tổng quan cho mục đích phân tích doanh nghiệp.

Ví dụ sau đây cho thấy cách xây dựng một trang tổng quan để trực quan hoá các tuyến đường và phương tiện di chuyển của phương tiện trên bản đồ.

  1. Chạy một trang tổng quan Datastudio mới và chọn BigQuery làm kết nối dữ liệu.

    Kết nối
dữ liệu

  2. Chọn Truy vấn tuỳ chỉnh rồi chọn Dự án trên đám mây sẽ được lập hoá đơn.

    Chọn
dự án

  3. Nhập truy vấn sau vào hộp truy vấn.

    Nhập cụm từ tìm kiếm

    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. Chọn Loại biểu đồ là Bản đồ bong bóng, sau đó chọn trường vị trí.

    Loại biểu đồ

  5. Chọn Tạo trường.

    Tạo trường

  6. Đặt tên cho trường và thêm công thức sau: CONCAT(lat, ",", lng).

    Sau đó, đặt loại thành Địa lý->Vĩ độ, Kinh độ.

    Loại đặt

  7. Bạn có thể thêm các chế độ kiểm soát vào trang tổng quan để lọc dữ liệu. Ví dụ: chọn bộ lọc Phạm vi ngày.

    Thêm các nút điều khiển

  8. Chỉnh sửa hộp phạm vi ngày để chọn phạm vi ngày mặc định.

    Phạm vi ngày

  9. Bạn có thể thêm các chế độ kiểm soát khác trong danh sách thả xuống cho xe_id.

    Danh sách thả xuống

Với các nút điều khiển này, bạn có thể trực quan hoá chuyển động của xe hoặc chuyển động trong một chuyến đi.