Logging

Fleet Engine menawarkan layanan logging sederhana yang memungkinkan Anda menyimpan permintaan API dan payload responsnya. Dengan log ini, Anda dapat men-debug integrasi, membuat metrik pemantauan, dan menganalisis pola traffic.

Fleet Engine mengirimkan log sebagai log platform ke Cloud Logging, sehingga Anda dapat menggunakan alat Cloud Logging untuk mengaksesnya.

Yang dicatat Fleet Engine

Fleet Engine mengirimkan beberapa informasi ke Cloud Logging, seperti:

  • Semua permintaan dan respons REST dan gRPC yang diautentikasi
  • Respons error
  • Permintaan, respons, dan pesan error dari panggilan yang dimulai oleh Driver SDK ke Fleet Engine.
  • Log terpisah untuk jenis log yang didukung:

Lihat dokumentasi untuk skema dan pesan log yang tersedia di Referensi Logging.

Gunakan bucket log yang dibatasi dan default untuk mematuhi kebijakan retensi data

Penggunaan bucket "dibatasi" dan "default" memastikan gambaran yang jelas tentang penggunaan data yang dibatasi dan tidak dibatasi. Beberapa data log yang dikirim Fleet Engine ke Google Maps Platform hanya dapat disimpan selama jangka waktu terbatas, sesuai dengan Persyaratan Khusus Layanan Mobilitas. Untuk memastikan Anda menyimpan data yang dibatasi hanya selama jangka waktu yang diizinkan, data tersebut harus diberi label TOS_LIMITED (Fleet Engine sudah melakukannya) dan dicatat ke dalam bucket khusus yang disebut "restricted".

Dari sana, Anda dapat mengontrol berapa lama data disimpan dan dihapus secara otomatis saat masa berlakunya habis menggunakan setelan Cloud Logging. Misalnya, log penggunaan terbatas hanya boleh disimpan selama 30 hari.

Catat semua data yang tidak dibatasi yang tersisa ke bucket "default", tempat data tersebut dapat dipertahankan untuk durasi yang lebih lama seperti yang ditentukan dalam Persyaratan Khusus Layanan Mobilitas (biasanya selama 1 tahun). Penggunaan bucket "dibatasi" dan "default" memastikan gambaran yang jelas tentang penggunaan data yang dibatasi dan tidak dibatasi.

Dapatkan tampilan lengkap dengan menggabungkan log yang dibatasi dan tidak dibatasi

Log penggunaan terbatas berisi data penggunaan terbatas dan referensi ke log default sehingga dapat dipertimbangkan bersama. Log penggunaan terbatas berisi insertId log default sebagai referensi di kolom parent_insert_id. Anda dapat menggunakan kolom ini untuk menggabungkan data dari kedua log dan mendapatkan gambaran lengkap.

Baca dokumentasi untuk semua skema dan pesan log yang tersedia di Referensi Logging.

Mengaktifkan Cloud Logging

Fleet Engine secara otomatis mengaktifkan log default untuk pelanggan Mobility baru, dimulai dengan project yang dibuat pada 10 Februari 2022. Anda dapat mengonfirmasi apakah logging telah diaktifkan atau tidak dengan menggunakan kueri berikut di Logs Explorer :

resource.type:"fleetengine.googleapis.com/DeliveryFleet"

Jika Anda tidak melihat log untuk kueri tersebut, Cloud Logging mungkin belum diaktifkan untuk project Anda. Hubungi Dukungan jika Anda ingin mengaktifkan fitur ini.

Aktifkan log penggunaan terbatas

Log penggunaan terbatas diaktifkan berdasarkan permintaan. Guna mengaktifkan log ini untuk project Google Cloud Anda, selesaikan langkah-langkah berikut:

Menyiapkan project Anda untuk menerima log penggunaan terbatas

  1. Di konsol Google Cloud, buka halaman Router Log.
  2. Perbarui bucket logging _Default untuk mengecualikan log penggunaan terbatas.
    1. Pilih bucket logging _Default, lalu pilih Edit sink.
    2. Di bagian "Choose logs to filter out of sink", klik tombol "Add Exception":
      1. Nama filter pengecualian: ExcludeRestrictedLogs
      2. Filter pengecualian: labels.restriction="TOS_LIMITED"
    3. Klik "Update sink".
  3. Perbarui bucket Logging terbatas untuk menyimpan log penggunaan terbatas.
    1. Dari halaman Log Router, pilih "Create sink".
    2. Buat sink dengan setelan berikut:
      1. Detail sink:
        1. Nama: RestrictedLogs
        2. Deskripsi: Log penggunaan terbatas Rute Fleet Engine
      2. Tujuan sink:
        1. Layanan sink: Bucket logging
        2. Pilih bucket log: Buat bucket log baru
          1. Nama: Dibatasi
          2. Deskripsi: Berisi log penggunaan terbatas Fleet Engine
        3. Periode retensi: 30 hari
          1. Catatan: Periode retensi tidak boleh lebih dari 30 hari.
      3. Log yang akan disertakan dalam sink: biarkan kosong
      4. Log untuk memfilter sink: Klik "Tambahkan Pengecualian"
        1. Nama filter pengecualian: ExcludeNonRestrictedLogs
        2. Filter pengecualian: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_LIMITED")
      5. Klik "Create sink"

Hubungi dukungan untuk mengaktifkan log penggunaan terbatas

Kemudian, hubungi dukungan dan berikan informasi berikut dalam permintaan dukungan Anda:

  1. ID project yang akan diaktifkan:
  2. Alamat email orang yang meminta perubahan:
    1. Catatan: Orang ini harus memiliki akses Edit ke Project Google Cloud yang tercantum.
  3. Dengan mengaktifkan Konten Google Maps penggunaan terbatas di Cloud Logging, Anda setuju untuk mematuhi persyaratan Google Maps Platform dan persyaratan khusus layanan Mobilitas, termasuk penyimpanan cache dan persyaratan penggunaan yang diizinkan terkait dengan Konten Google Maps. Ya / Tidak

Setelah menerima permintaan Anda, tim dukungan akan mengirimkan konfirmasi bahwa logging telah diaktifkan untuk project Anda

Memisahkan Log Cloud

Cloud Logging membatasi ukuran log masuk hingga 256 KB. Layanan ini menghapus log melebihi batas tersebut. Untuk memastikan Cloud Logging menyimpan log yang besar, Fleet Engine dapat membaginya menjadi serangkaian log dengan nilai minimum 256 KB. Log tersebut memiliki awalan insertId umum untuk menunjukkan urutan layanan membagi log yang lebih kecil dari log besar asli. Anda kemudian dapat bergabung kembali bersama mereka berdasarkan insertId mereka.

Untuk mengakses log pemisahan asli, gabungkan log pemisahan menurut insertId dalam urutan asli yang dibagi, seperti yang ditunjukkan oleh indeksnya dalam entri log cloud.

Struktur log terpisah sama dengan struktur yang disebutkan dalam Panduan entri log audit terpisah untuk Cloud Audit Logs. Perbedaan utama untuk log terpisah di Logging Armada adalah pemisahan terjadi di kolom jsonPayload, bukan di kolom protoPayload. Lihat contoh pemisahan yang ditampilkan di bagian berikutnya.

Jenis log yang didukung

Fleet Engine hanya mendukung pemisahan log untuk jenis log berikut yang ukuran lognya melebihi 256 KB:

Contoh struktur log terpisah

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

Mengakses log

Cloud Logs terstruktur dengan format LogEntry. Fleet Engine mengirimkan log ke Cloud Logging dengan resource.type LogEntry ditetapkan ke fleetengine.googleapis.com. Anda dapat menggunakan Logs Explorer untuk menulis kueri guna melihat log.

Misalnya, untuk melihat semua RPC ke Fleet Engine yang menampilkan error, gunakan kueri Logs Explorer berikut:

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

Untuk melihat log RPC yang dibuat dengan metode UpdateDeliveryVehicle untuk example-project-id project, gunakan kueri Logs Explorer berikut:

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

Contoh berikut menunjukkan LogEntry untuk log UpdateDeliveryVehicle. Permintaan dan respons RPC ada di dalam kolom 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"
    }

Jika error RPC ditampilkan, kolom responseDeliveryVehicle akan dihapus dan kolom errorResponse ditetapkan serta diisi dalam 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"
    }

Untuk mengetahui informasi selengkapnya tentang bahasa kueri logging, lihat Bahasa kueri logging. Untuk mendapatkan informasi tentang cara menggunakan log untuk membuat metrik, lihat Ringkasan metrik berbasis log.

Mengelola biaya logging

Setelah logging diaktifkan, Anda bertanggung jawab untuk menyiapkan cara merutekan, menyimpan, dan menyimpan log Anda. Anda dapat dikenai biaya Google Cloud tambahan untuk penyerapan dan retensi log jika Anda melebihi batas penggunaan dan retensi tanpa biaya. Namun, Anda dapat mengontrol biaya logging dengan melakukan salah satu hal berikut:

Mengurangi penggunaan logging

Anda dapat membatasi jumlah penyerapan data log dengan mengecualikan entri log tertentu.

Mengekspor atau merutekan log

Anda dapat merutekan log ke Google Cloud lain atau tujuan eksternal untuk menghindari biaya penyerapan dan penyimpanan default. Pastikan Anda menonaktifkan penyerapan log, seperti yang dijelaskan di bagian berikutnya, untuk menghindari biaya penyerapan.

Nonaktifkan penyerapan log untuk menghindari tagihan

Sebaiknya kurangi penggunaan logging, atau ekspor atau perutean log, lebih baik daripada menonaktifkan penyerapan log. Namun, jika tidak ingin menggunakan log Fleet Engine, Anda dapat menghindari potensi tagihan Cloud Logging dengan menonaktifkan penyerapan. Secara default, log Armada Mesin dirutekan ke bucket log _Default.

Perintah berikut mengupdate bucket logging _Default agar tidak menyerap log 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"''

Untuk mengetahui informasi selengkapnya, lihat: Pengecualian Cloud Logging dan Mengecualikan log. Cloud Logging Exports dan Mengekspor log

Menggunakan Logs Explorer

Untuk menggunakan Logs Explorer, buka Konsol Cloud, pilih Logging, lalu Logs Explorer. Untuk melihat daftar semua log Fleet Engine yang tersedia, klik Jenis Resource Fleet Engine. Beberapa log Delivery API diberi label dengan ID Tugas dan ID Kendaraan Pengiriman. Label ini dapat digunakan untuk memilih log tugas atau kendaraan yang Anda minati.

Label log

Filter log menurut ID kendaraan pengiriman

Di Logs Explorer, Anda dapat menggunakan kueri berikut untuk membatasi log ke kendaraan tertentu:

    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    labels.delivery_vehicle_id="delivery_vehicle_id"

Filter kendaraan

Filter log menurut ID tugas

Di Logs Explorer, Anda dapat menggunakan kueri berikut untuk membatasi log ke tugas tertentu:

    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    labels.task_id=~"task_id"

Memfilter log untuk kendaraan selama jangka waktu tertentu

Di Logs Explorer, Anda dapat menggunakan kueri berikut untuk membatasi log ke log untuk kendaraan selama jangka waktu tertentu:

    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"

Contoh metrik berbasis log

Contoh berikut menunjukkan cara menggunakan metrik berbasis log untuk melacak jumlah tugas yang dibuat dari waktu ke waktu.

  1. Di Konsol Cloud, pilih Logging, lalu Logs Explorer untuk membuka Log Explorer. Kemudian, terapkan filter berikut:

    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. Di panel Query Results, pilih drop-down Actions, lalu pilih Create Metric.

    Membuat metrik

  3. Dalam dialog Editor Metrik:

    • Tentukan nama metrik (misalnya, billable_tasks).
    • Tentukan deskripsi metrik (misalnya, Jumlah Tugas yang Dapat Ditagih).
    • Biarkan opsi Units kosong. _ Biarkan opsi Type sebagai Counter.

    Lalu, pilih tombol Create Metric.

  4. Pada halaman Metrik Berbasis Log, Anda akan melihat pesan yang mengonfirmasi bahwa metrik berhasil dibuat, dan metrik baru akan muncul di bagian Metrik yang ditentukan pengguna. Metrik ini sekarang akan diisi saat log yang cocok dibuat.

  5. Pilih drop-down vertikal di sisi kanan metrik baru, lalu pilih View in Metrics Explorer.

    Lihat metrik

  6. Di panel kiri pada bagian Build Your Query, tetapkan Resource Type ke Fleet Engine, lalu telusuri metrik billable_tasks.

    Metrik penelusuran

    Grafik di sebelah kanan menunjukkan rasio panggilan billable_tasks.

Menggunakan BigQuery

BigQuery adalah alat yang ampuh untuk melakukan analisis. Dapat digunakan untuk menyimpan log jangka panjang dan melakukan kueri seperti SQL ad hoc terhadap data.

Merutekan log ke BigQuery

Untuk memanfaatkan BigQuery, log harus dirutekan ke datastore BigQuery, sebagai berikut:

  1. Di Konsol Cloud, pilih Logging, lalu Logs Explorer.

  2. Buat filter yang mengisolasi log Fleet Engine. Di Logs Field Explorer, pilih jenis resource Fleetengine.googleapis.com/DeliveryFleet.

    Buat filter

  3. Di panel Query Results, klik drop-down Actions, lalu pilih Create Sink.

    Buat
wastafel

  4. Pada dialog Select sink service, pilih BigQuery dataset.

    Pilih
wastafel

  5. Dalam dialog Edit Sink, tetapkan opsi berikut:

    • Tentukan nama sink (misalnya, FleetEngineLogsSink).
    • Biarkan Layanan Sink sebagai BigQuery.
    • Pilih opsi Use Partitioned Tables. Cara ini akan meningkatkan performa kueri.
    • Di bagian Sink Destination, pilih Create New BigQuery Dataset, lalu tentukan nama set data BigQuery (misalnya, FleetEngineLogs).
    • Klik tombol Create Sink.

    Edit
    sink

Log Anda sekarang akan mulai mengisi set data BigQuery. Anda dapat melihat data tersebut di bagian BigQuery pada Konsol Cloud.

Bagian
BigQuery

Beberapa tabel dalam set data FleetEngineLogs akan diisi secara otomatis, satu tabel untuk setiap jenis log:

  • CreateDeliveryVehicle
  • GetDeliveryVehicle
  • ListDeliveryVehicle
  • UpdateDeliveryVehicle
  • CreateTask
  • GetTask
  • UpdateTask
  • ListTasks

Nama tabel menggunakan pola berikut:

project_id.data_set.log_name

Misalnya, jika project bernama test_project dan nama set datanya adalah FleetEngineLogs, tabel CreateTask akan memiliki nama berikut:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task

Contoh kueri

Bagian ini menampilkan contoh kueri yang dapat Anda buat.

Tugas yang dibuat per jam

Kueri berikut menghitung jumlah log CreateTasks dan mengelompokkannya berdasarkan jam.

    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

Jumlah perhentian per kendaraan per jam

Kueri berikut menghasilkan jumlah perhentian yang dilayani kendaraan, yang diperinci berdasarkan jam.

Misalnya, kueri ini dapat menunjukkan bahwa dalam satu jam terakhir:

  • Kendaraan A selesai 10 perhentian dalam jam ke-12 dan 8 perhentian dalam jam ke-13.
  • Kendaraan B menyelesaikan 5 perhentian dalam jam 11 dan 7 perhentian di jam 12.
  • Kendaraan C menyelesaikan 12 perhentian di jam 13 dan 9 perhentian di jam 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
    

Tingkat keberhasilan pengiriman pertama

Kueri berikut yang menunjukkan persentase keberhasilan dalam rasio upaya pengiriman pertama.

    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

Dasbor Datastudio

BigQuery dapat diintegrasikan dengan alat business intelligence dan dasbor dapat dibuat untuk analisis bisnis.

Contoh berikut menunjukkan cara membuat dasbor tempat tugas dan gerakan kendaraan dapat divisualisasikan pada peta.

  1. Luncurkan dasbor Datastudio baru dan pilih BigQuery sebagai koneksi data.

    Koneksi
data

  2. Pilih Kueri Kustom, lalu pilih Project Cloud yang harus ditagih.

    Pilih project

  3. Masukkan kueri berikut ke dalam kotak kueri.

    Masukkan kueri

    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. Pilih Jenis Diagram sebagai Peta Balon, lalu pilih kolom lokasi.

    Jenis
diagram

  2. Pilih Buat Kolom.

    Buat kolom

  3. Beri nama kolom dan tambahkan formula berikut: CONCAT(lat, ",", lng).

    Kemudian setel jenis ke Geo->Lintang, Bujur.

    Jenis
pengaturan

  4. Anda dapat menambahkan kontrol ke dasbor untuk memfilter data. Misalnya, pilih Filter rentang tanggal.

    Menambahkan
kontrol

  5. Edit kotak rentang tanggal untuk memilih rentang tanggal default.

    Rentang
tanggal

  6. Anda dapat menambahkan kontrol Drop-down tambahan untuk delivery_vehicle_id.

    Daftar
drop-down

Dengan kontrol ini, Anda dapat memvisualisasikan pergerakan kendaraan atau gerakan dalam pengiriman.