Logging

Fleet Engine menawarkan layanan {i>logging<i} sederhana yang memungkinkan Anda menyimpan Permintaan API dan payload respons. Dengan log ini, Anda dapat men-debug integrasi, membuat metrik pemantauan, dan menganalisis pola traffic.

Fleet Engine mengirimkan log sebagai platform log ke Cloud Logging, agar Anda dapat menggunakan Cloud Alat 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 Pengemudi SDK ke Fleet Engine.
  • Log terpisah untuk jenis log yang didukung:

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

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

Menggunakan "dibatasi" dan "default" bucket memastikan gambaran yang jelas tentang penggunaan data yang dibatasi dan tidak dibatasi. Beberapa data log yang dimiliki Fleet Engine yang dikirimkan ke Google Maps Platform hanya dapat disimpan dalam jangka waktu terbatas, sesuai dengan Mobility Service Specific Persyaratan. 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 bucket khusus yang disebut "restricted".

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

Catat semua data yang tidak dibatasi yang tersisa ke "default" , di mana ia bisa dipertahankan untuk durasi yang lebih lama seperti yang ditentukan dalam Mobility Service Specific Persyaratan (biasanya selama 1 tahun). Menggunakan "dibatasi" dan "default" bucket memastikan tujuan yang jelas gambar 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 {i>default<i} sehingga mereka dapat dianggap bersama. Log penggunaan terbatas berisi insertId log default sebagai referensi dalam parent_insert_id kolom tersebut. Anda dapat menggunakan {i>field<i} ini untuk menggabungkan data dari kedua log dan mendapatkan gambaran lengkap.

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

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 diaktifkan dengan menggunakan kueri berikut di kolom Log Penjelajah :

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

Jika Anda tidak melihat log apa pun untuk kueri tersebut, Cloud Logging mungkin belum untuk project Anda. Kontak Dukungan jika Anda ingin untuk mengaktifkan fitur tersebut.

Aktifkan log penggunaan terbatas

Log penggunaan terbatas diaktifkan berdasarkan permintaan. Untuk mengaktifkan log ini bagi akun Google 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. Pada "Choose logs to filter out of sink" klik tombol "Tambahkan Pengecualian" tombol:
      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 = &quot;fleetengine.googleapis.com/Fleet&quot; OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") BUKAN (labels.restriction = "TOS_LIMITED")
      5. Klik "Create sink"

Hubungi dukungan untuk mengaktifkan log penggunaan terbatas

Kemudian, hubungi memberikan dukungan 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 terdaftar.
  3. Dengan mengaktifkan penggunaan konten Google Maps yang dibatasi di Cloud Logging, Anda setuju untuk mematuhi Google Maps Platform persyaratan dan Layanan mobilitas tindakan persyaratan, termasuk persyaratan penyimpanan dalam cache dan penggunaan yang diizinkan karena berkaitan dengan Google Konten Maps. Ya / Tidak

Setelah tim dukungan menerima permintaan Anda, mereka mengirimkan konfirmasi bahwa {i>logging<i} telah diaktifkan untuk project Anda

Memisahkan Log Cloud

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

Untuk mengakses log pemisahan asli, gabungkan log pemisahan menurut insertIds dalam urutan asli yang mereka bagi, seperti yang ditunjukkan oleh indeksnya dalam entri log cloud.

Struktur log pemisahan sama dengan struktur yang disebutkan di Audit terpisah entri log untuk Cloud Audit Logs. Perbedaan utama untuk log terpisah di {i>Fleet Logging <i}adalah bahwa pemisahan terjadi di kolom jsonPayload, bukan di protoPayload kolom tersebut. 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

Log Cloud terstruktur di sekitar LogEntry format font. Fleet Engine mengirim log ke Cloud Logging dengan kunci LogEntry resource.type ditetapkan ke fleetengine.googleapis.com. Anda dapat menggunakan Log Penjelajah ke menulis kueri untuk 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 dengan metode UpdateDeliveryVehicle untuk contoh-proyek-proyek-proyek, gunakan kueri Logs Explorer berikut:

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

Contoh berikut menunjukkan LogEntry untuk UpdateDeliveryVehicle log. 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 di 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 lebih lanjut tentang bahasa kueri logging, lihat Kueri logging bahasa. Untuk mendapatkan informasi tentang cara menggunakan log untuk membuat metrik, lihat Ringkasan berbasis log metrik.

Mengelola biaya logging

Setelah pencatatan log diaktifkan, Anda bertanggung jawab untuk mengatur cara yang Anda untuk merutekan, menyimpan, dan menyimpan log Anda. Anda dapat dikenai biaya tambahan Google Cloud biaya untuk catatan penyerapan dan retensi jika Anda melebihi batas penggunaan dan retensi tanpa besar. 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 mengarahkan log ke Google Cloud lain atau tujuan eksternal untuk menghindari biaya penyerapan dan penyimpanan default. Pastikan Anda menonaktifkan penyerapan log, sebagai yang dijelaskan di bagian selanjutnya, untuk menghindari biaya penyerapan.

Nonaktifkan penyerapan log untuk menghindari tagihan

Lebih baik mengurangi penggunaan logging, atau mengekspor atau merutekan log. menonaktifkan penyerapan log. Namun, jika Anda tidak bermaksud menggunakan log Fleet Engine, Anda dapat menghindari potensi tagihan Cloud Logging dengan menonaktifkan penyerapan. Secara {i>default<i}, Log Fleet Engine diarahkan ke bucket log _Default.

Perintah berikut memperbarui bucket logging _Default agar tidak menyerap Fleet Log mesin.

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: Cloud Logging Pengecualian dan Pengecualian log. Cloud Logging Ekspor 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. Anda dapat menggunakan label ini untuk memilih log untuk tugas atau kendaraan yang menarik minat Anda.

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 {i>specific task<i} (tugas spesifik):

    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 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 di {i>Log Explorer<i}. 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 Buat Metrik.

    Membuat metrik

  3. Dalam dialog Editor Metrik:

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

    Lalu, pilih tombol Create Metric.

  4. Di halaman Metrik Berbasis Log, Anda akan melihat pesan yang mengonfirmasi bahwa berhasil dibuat, dan metrik baru akan muncul di Bagian metrik yang ditentukan pengguna. Metrik sekarang akan diisi sebagai cocok log akan 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 dan 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, seperti berikut ini:

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

  2. Buat filter yang mengisolasi log Fleet Engine. Di {i>Log Field Explorer<i}, pilih jenis resource Fleetengine.googleapis.com/DeliveryFleet.

    Berkreasi
filter

  3. Di panel Query Results, klik drop-down Tindakan dan pilih Create Wastafel.

    Berkreasi
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. Hal ini akan meningkatkan kueri tingkat tinggi.
    • Di bagian Tujuan Sink, pilih Buat Set Data BigQuery Baru, lalu menentukan nama set data BigQuery (misalnya, FleetEngineLogs).
    • Klik tombol Create Sink.

    Mengedit
    wastafel

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

BigQuery
bagian

Beberapa tabel pada {i>dataset<i} FleetEngineLogs akan diisi secara otomatis, satu 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 data adalah FleetEngineLogs, tabel CreateTask 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 dalam jam kerja lokal mereka.

    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 dilewati kendaraan, menurun per 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 menampilkan persentase keberhasilan dalam pengiriman pertama tingkat percobaan.

    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 yang dapat dibuat untuk analitik bisnis.

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

  1. Luncurkan dasbor Datastudio baru dan pilih BigQuery sebagai datanya koneksi jarak jauh.

    Data
koneksi

  2. Pilih Kueri Kustom dan pilih Project Cloud tempat project tersebut berada ditagih.

    Pilih
rencana

  3. Masukkan kueri berikut ke dalam kotak kueri.

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

    Diagram
(jenis

  2. Pilih Buat Kolom.

    Berkreasi
kolom

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

    Kemudian setel jenis ke Geo->Lintang, Bujur.

    Tetapkan
(jenis

  4. Anda dapat menambahkan kontrol ke dasbor untuk memfilter data. Misalnya, pilih filter Rentang tanggal.

    Tambah
kontrol

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

    Tanggal
rentang

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

    Drop-down
daftar

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