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 mengirim log sebagai log platform ke Cloud Logging, sehingga Anda dapat menggunakan alat Cloud Logging untuk mengaksesnya.

Yang dicatat oleh Fleet Engine

Fleet Engine mengirimkan beberapa informasi ke Cloud Logging, seperti:

  • Semua permintaan dan respons REST dan gRPC terautentikasi
  • 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 bagian Referensi Logging.

Menggunakan 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 sebagai TOS_LIMITED (Fleet Engine sudah melakukannya) dan dicatat ke dalam bucket khusus yang disebut "restricted".

Dari sana, Anda dapat mengontrol berapa lama data tersebut dipertahankan dan menghapusnya secara otomatis setelah masa berlaku habis menggunakan setelan Cloud Logging. Misalnya, log dengan penggunaan terbatas hanya boleh disimpan selama 30 hari.

Catat semua data yang tidak dibatasi lainnya 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 "restricted" dan "default" memastikan gambaran yang jelas tentang penggunaan data yang dibatasi dan tidak dibatasi.

Dapatkan tampilan lengkap dengan menggabungkan log yang dibatasi dan yang 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.

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

Mengaktifkan Cloud Logging

Fleet Engine secara otomatis mengaktifkan log default untuk pelanggan Mobilitas baru, dimulai dari project yang dibuat pada 10 Februari 2022. Anda dapat mengonfirmasi apakah logging 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 dengan penggunaan yang dibatasi

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

Mempersiapkan project untuk menerima log dengan penggunaan yang dibatasi

  1. Di konsol Google Cloud, buka halaman Log Router.
  2. Perbarui bucket logging _Default untuk mengecualikan log penggunaan yang dibatasi.
    1. Pilih bucket logging _Default, lalu pilih Edit sink.
    2. Di bagian "Choose logs to filter out of sink", klik tombol "Add Pengecualian":
      1. Nama filter pengecualian: {7}RestrictedLogs
      2. Filter pengecualian: labels.restriction="TOS_restrictionED"
    3. Klik "Update sink".
  3. Perbarui bucket Logging terbatas untuk menyimpan log dengan penggunaan yang dibatasi.
    1. Dari halaman Log Router, pilih "Create sink".
    2. Buat sink dengan setelan berikut:
      1. Detail sink:
        1. Nama: RestrictedLogs
        2. Deskripsi: Merutekan log untuk penggunaan yang dibatasi Fleet Engine
      2. Tujuan sink:
        1. Layanan sink: Bucket logging
        2. Pilih bucket log: Membuat bucket log baru
          1. Nama: Dibatasi
          2. Deskripsi: Berisi log penggunaan yang dibatasi Fleet Engine
        3. Periode retensi: 30 hari
          1. Catatan: Periode retensi data 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 dengan penggunaan terbatas

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

  1. Project ID 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 yang dibatasi penggunaan di Cloud Logging, Anda setuju untuk mematuhi persyaratan Google Maps Platform dan persyaratan khusus layanan mobilitas, termasuk persyaratan penyimpanan cache dan penggunaan yang diizinkan karena berkaitan dengan Konten Google Maps. Ya / Tidak

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

Log Cloud Terpisah

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

Untuk mengakses log tidak terpisah yang asli, gabungkan log terpisah menurut insertId dalam urutan asli saat log tersebut dipisahkan, seperti yang ditunjukkan oleh indeks 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 Fleet Logging adalah pemisahan terjadi di kolom jsonPayload, bukan di kolom protoPayload. Lihat contoh pemisahan yang ditampilkan di bagian berikutnya.

Jenis log yang didukung

Fleet Engine mendukung pemisahan log hanya 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 disusun dengan format LogEntry. Fleet Engine mengirim log ke Cloud Logging dengan resource.type LogEntry ditetapkan ke fleetengine.googleapis.com. Anda dapat menggunakan Logs Explorer untuk menulis kueri guna melihat log Anda.

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 ke metode UpdateDeliveryVehicle untuk project example-project-id, 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 berada 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 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 dapat dikenai biaya tambahan Google Cloud untuk penyerapan dan retensi log jika Anda melebihi batas penggunaan dan retensi secara gratis. Namun, Anda dapat mengontrol biaya logging dengan melakukan salah satu tindakan berikut:

Mengurangi penggunaan logging

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

Mengekspor atau merutekan log

Anda dapat mengarahkan 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

Mengurangi penggunaan logging, atau mengekspor atau merutekan log, lebih diutamakan daripada menonaktifkan penyerapan log. Namun, jika tidak ingin menggunakan log Fleet Engine, Anda dapat menghindari potensi biaya Cloud Logging dengan menonaktifkan penyerapan. Secara default, log Fleet Engine dirutekan ke bucket log _Default.

Perintah berikut memperbarui 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. Ekspor Cloud Logging 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 Resource Type Fleet Engine. Beberapa log Delivery API diberi label dengan ID Tugas dan ID Kendaraan Pengiriman. Anda dapat menggunakan label ini untuk memilih log tugas atau kendaraan yang Anda minati.

Label log

Memfilter 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 kendaraan selama jangka waktu tertentu

Di Logs Explorer, Anda dapat menggunakan kueri berikut untuk membatasi log hanya 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 Logs Explorer. Lalu, 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. Pada dialog Metric Editor:

    • Tentukan nama metrik (misalnya, billable_tasks).
    • Tentukan deskripsi metrik (misalnya, The number of Billable Tasks).
    • Biarkan opsi Units kosong. _ Biarkan opsi Type sebagai Counter.

    Lalu, pilih tombol Create Metric.

  4. Di halaman Metrics Berbasis Log, Anda akan melihat pesan yang mengonfirmasi bahwa metrik berhasil dibuat, dan metrik baru akan muncul di bagian Metrik tentukan pengguna. Metrik 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 Build Your Query, tetapkan Resource Type ke Fleet Engine dan telusuri metrik billable_tasks.

    Metrik penelusuran

    Grafik di sebelah kanan menunjukkan tingkat panggilan billable_tasks.

Menggunakan BigQuery

BigQuery adalah alat yang ampuh untuk melakukan analisis. Layanan ini dapat digunakan untuk menyimpan log jangka panjang dan menjalankan 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 dan pilih Create Sink.

    Buat
sink

  4. Pada dialog Pilih layanan sink, pilih set data BigQuery.

    Pilih
sink

  5. Pada dialog Edit Sink, tetapkan opsi berikut:

    • Tentukan nama sink (misalnya, FleetEngineLogsSink).
    • Biarkan Sink Service sebagai BigQuery.
    • Pilih opsi Use Partitioned Tables. Tindakan ini akan meningkatkan performa kueri.
    • Di bagian Tujuan Sink, 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 ini 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
  • SearchTasks

Nama tabel menggunakan pola berikut:

project_id.data_set.log_name

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

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task

Contoh kueri

Bagian ini menunjukkan 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 menyelesaikan 10 perhentian pada jam 12 dan 8 perhentian pada jam 13.
  • Kendaraan B menyelesaikan 5 perhentian pada jam 11 dan 7 perhentian pada jam 12.
  • Kendaraan C menyelesaikan 12 perhentian pada jam 13 dan 9 perhentian pada 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 percobaan 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 pergerakan kendaraan yang 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 untuk penagihan.

    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).

    Lalu tetapkan jenis ke Geo->Lintang, Bujur.

    Tetapkan jenis

  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 daftar drop-down lain untuk delivery_vehicle_id.

    Daftar
drop-down

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