Günlük Kaydı

Fleet Engine, verilerini günlüğe kaydetmenize olanak tanıyan basit bir günlük kaydı hizmeti API istekleri ve yanıt yükleri. Bu günlükler sayesinde izleme metrikleri oluşturun ve trafik modellerini analiz edin.

Fleet Engine, günlükleri platform günlükleri Cloud'a Cloud'u kullanabilmeniz için günlük kaydı Erişim için günlük kaydı araçları.

Fleet Engine hangi verileri günlüğe kaydeder?

Fleet Engine, Cloud'a çeşitli bilgiler gönderir. Günlük kaydı. Örneğin:

  • Kimliği doğrulanmış tüm REST ve gRPC istekleri ve yanıtları
  • Hata yanıtları
  • Sürücü tarafından başlatılan aramalardan gelen istekler, yanıtlar ve hata mesajları Fleet Engine'e SDK olarak entegre edildi.
  • Desteklenen günlük türleri için günlükleri bölün:

Mevcut günlük mesajları ve şemalarla ilgili bilgi edinmek için Logging Referans.

Veri saklama politikalarına uymak için kısıtlanmış ve varsayılan günlük paketlerini kullanma

"Kısıtlanmış" kullanımı ve "default" açık bir şekilde resmedildiğiniz kısıtlanmış ve sınırsız veri kullanımı vardır. Fleet Engine'in kaydettiği günlük verilerinden bazıları Google Haritalar Platformu'na gönderilen veriler yalnızca sınırlı bir süre boyunca saklanabilir. Mobilite Hizmetine Özel Şartlar. Kısıtlanmış verileri yalnızca izin verilen süre boyunca sakladığınızdan emin olmak için bu tür veriler TOS_RESTRICTED olarak etiketlenmelidir (Fleet Engine bunu zaten yapıyor) ve "Kısıtlanmış" adlı özel bir pakete kaydedilir.

Oradan ne kadar süre saklanacağını kontrol edebilir ve verileri şurada otomatik olarak tamamen silebilirsiniz: sona erme tarihidir. Örneğin, kısıtlı kullanım günlükleri yalnızca 30 gün boyunca saklanır.

Kalan kısıtlanmamış tüm verileri "varsayılan" olarak kaydet yardımcı olacak bir Mobilite Hizmetine Özel Şartlar (genellikle 1 yıldır). "Kısıtlanmış" kullanımı ve "default" açık bir şekilde kısıtlı ve sınırsız veri kullanımınızın resmi.

Kısıtlanmış ve kısıtlanmamış günlükleri birleştirerek eksiksiz bir görünüm elde edin

Kısıtlı kullanım günlükleri, kısıtlanmış kullanım verilerini ve Böylece birlikte değerlendirilebilecekleri varsayılan bir günlük olur. Kısıtlı kullanım günlüğü parent_insert_id içinde referans olarak varsayılan günlüğün insertId değerini içerir girin. Bu alanı, her iki günlükteki verileri birleştirmek ve aşağıdaki verilere erişmek için kullanabilirsiniz: bir resim oluşturabilirsiniz.

Mevcut tüm günlük mesajları ve şemalarla ilgili dokümanları Logging Referans.

Cloud Logging'i etkinleştirme

Fleet Engine, yeni Mobility müşterileri için varsayılan günlükleri otomatik olarak etkinleştirir. 10 Şubat 2022'de oluşturulan projelerden başlayarak. Okuyucu Gelirleri Yöneticisi'nin Günlükler Gezgin :

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

Bu sorguyla ilgili herhangi bir günlük görmüyorsanız Cloud Logging etkinleştirin. İletişim Destekle tıklayın.

Kısıtlı kullanım günlüklerini etkinleştir

Kısıtlı kullanımlı günlükler istek üzerine etkinleştirilir. Google Hesabınızda bu günlükleri etkinleştirmek için Cloud projesi için aşağıdaki adımları tamamlayın:

Projenizi kısıtlı kullanım günlüklerini alacak şekilde hazırlama

  1. Google Cloud konsolunda Günlük Yönlendirici sayfasını açın.
  2. _Default Logging paketini kısıtlanmış kullanım günlüklerini hariç tutacak şekilde güncelleyin.
    1. _Varsayılan günlük kaydı paketini, ardından Havuzu düzenle'yi seçin.
    2. "Dosyadan çıkarılacak günlükleri seçin" bölümünde "Ekle"yi tıklayın Hariç tutuluyor" düğme:
      1. Hariç tutma filtresi adı: ExcludeRestrictedLogs
      2. Hariç tutma filtresi: labels.restriction="TOS_RESTRICTED"
    3. "Havuzu güncelle"yi tıklayın.
  3. Kısıtlanmış kullanım günlüklerini depolamak için kısıtlanmış günlük kaydı paketini güncelleyin.
    1. Günlük Yönlendirici sayfasında "Havuz oluştur"u seçin.
    2. Aşağıdaki ayarları kullanarak havuz oluşturun:
      1. Havuz ayrıntıları:
        1. Ad: RestrictedLogs
        2. Açıklama: Routes Fleet Engine kısıtlı kullanım günlükleri
      2. Havuz hedefi:
        1. Havuz hizmeti: Günlük kaydı paketi
        2. Günlük paketi seçin: Yeni günlük paketi oluşturun
          1. Ad: Kısıtlanmış
          2. Açıklama: Fleet Engine kısıtlı kullanım günlüklerini içerir
        3. Saklama süresi: 30 gün
          1. Not: Saklama süresi 30 günü geçmemelidir.
      3. Havuza dahil edilecek günlükler: Boş bırakın
      4. Havuzun dışında filtrelenecek günlükler: "Hariç Tutma Ekle"yi tıklayın
        1. Hariç tutma filtresi adı: ExcludeNonKısıtlanmışLogs.
        2. Hariç tutma filtresi: DEĞİL (resource.type = "fleetengine.googleapis.com/Fleet" VEYA resource.type = "fleetengine.googleapis.com/DeliveryFleet") DEĞİL (labels.restriction = "TOS_SINIRLI")
      5. "Havuz oluştur"u tıklayın

Kısıtlı kullanım günlüklerini etkinleştirmek için destek ekibiyle iletişime geçin

Daha sonra iletişime geçin destek verip destek talebinizde şu bilgileri bulabilirsiniz:

  1. Etkinleştirilecek proje kimlikleri:
  2. Değişikliği talep eden kişinin e-posta adresi:
    1. Not: Bu kişi, Google Cloud projelerinde Düzenleme erişimine sahip olmalıdır. listelendi.
  3. Cloud Logging'de kısıtlı kullanımlı Google Haritalar içeriklerini etkinleştirerek şunları kabul etmiş olursunuz: Google Haritalar Platformu'na şartları ve Mobilite Hizmeti belirli şartları yerine getirmek Google ile ilgili oldukları için önbelleğe alma ve izin verilen kullanım gereksinimlerini Haritalar İçeriği. Evet/Hayır

Destek ekibi isteğinizi aldıktan sonra, projeniz için etkinleştirildi

Bulut Günlüklerini Böl

Cloud Logging, gelen günlüklerdeki boyutu 256 KB ile sınırlandırır. Hizmet, günlükleri bırakır üzerine çıkacaktır. Cloud Logging'in büyük günlükleri sakladığından emin olmak için Fleet Motor, bu verileri 256 KB'lık eşiğin altında bir dizi günlük halinde bölebilir. Bu tür günlükler ortak bir hedefi var insertId önek öneki ile, hizmetin daha küçük günlüğü günlük büyük boyutlu orijinal bir günlük. Şu koşullara göre gruplara tekrar katılabilirsiniz: insertId.

Bölünmüş orijinal günlüğe erişmek için bölünmüş günlükleri insertIds 7/50'lik dilimlere bölünerek, orijinal sıraya göre Cloud Logging girişine göz atın.

Bölünmüş günlük yapısı, Bölünmüş denetleme bölümünde belirtilen yapıyla aynıdır. günlük girişleri kılavuzu Cloud Denetleme Günlükleri. Fleet Logging'deki bölünmüş günlüklerin en önemli farkı, bölme, protoPayload yerine jsonPayload alanında gerçekleşir girin. Sonraki bölümde gösterilen örnek bölüme bakın.

Desteklenen günlük türleri

Fleet Engine, yalnızca aşağıdaki günlük türleri için günlük bölmeyi destekler günlük boyutu 256 KB'ı aşan kullanıcılar:

Örnek bölme günlüğü yapısı

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

Günlüklerinize erişme

Cloud Günlükleri, LogEntry biçimindedir. Fleet Engine, günlükleri resource.type şu değere ayarlandı: fleetengine.googleapis.com. Günlükler Gezgin'i seçin günlüklerinizi görüntülemek için sorgu yazabilirsiniz.

Örneğin, Fleet Engine'e hata döndüren tüm RPC'leri görüntülemek için aşağıdaki Günlük Gezgini sorgusu:

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

UpdateDeliveryVehicle project example-project-id için aşağıdaki Günlük Gezgini sorgusunu kullanın:

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

Aşağıdaki örnekte UpdateDeliveryVehicle için bir Günlük Girişi gösterilmektedir . RPC isteği ve yanıtı jsonPayload alanının içinde bulunur:

    {
      "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"
    }

Bir RPC hatası döndürülürse responseDeliveryVehicle alanı errorResponse alanı ayarlanıp jsonPayload içinde doldurulur:

    {
      "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"
    }

Günlük kaydı sorgu dili hakkında daha fazla bilgi için Logging sorgusu"na bakın. dil bölümüne bakın. Metrik oluşturmak için günlüklerinizi nasıl kullanabileceğiniz hakkında bilgi edinmek üzere Genel Bakış bölümünü inceleyin. günlük tabanlı metrikleri inceleyin.

Günlük kaydı maliyetlerini yönetme

Günlük kaydı etkinleştirildikten sonra, istediğiniz zaman günlüklerinizi yönlendirme, depolama ve saklamaya yönelik Ek Google Cloud ücreti ödemeniz gerekebilir günlük için ücretler için kullanım ve saklama sınırlarını aşarsanız şarj edin. Ancak aşağıdakilerden birini yaparak günlük kaydı maliyetlerini kontrol edebilirsiniz:

Günlük kaydı kullanımını azaltma

Belirli günlük girişlerini hariç tutarak günlük verisi kullanımı miktarını sınırlandırabilirsiniz.

Günlükleri dışa aktarma veya yönlendirme

Günlükleri diğer Google Cloud'a veya harici hedeflere yönlendirebilirsiniz. varsayılan kullanım ve depolama maliyetleri. Aşağıdaki gibi günlük beslemesini devre dışı bıraktığınızdan emin olun: başlıklı makaleyi inceleyin.

Ücret ödememek için günlük kullanımını devre dışı bırakın

Günlük kaydı kullanımını azaltmak veya günlükleri dışa aktarmak ya da yönlendirmek, hariç tutmanızı sağlar. Ancak, Fleet Engine günlüklerini kullanmak istemiyorsanız kullanımı kapatarak olası Cloud Logging ücretlerini önleyebilirsiniz. Varsayılan olarak Fleet Engine günlükleri, _Default günlük paketine yönlendirilir.

Aşağıdaki komut, _Default günlük kaydı paketini Filoyu almayacak şekilde günceller Motor günlükleri.

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"''

Daha fazla bilgi için Cloud Logging'e göz atın. Hariç tutmalar ve Hariç tutma günlükler hakkında daha fazla bilgi edinin. Cloud Logging Dışa Aktarma ve Dışa Aktarma günlükler

Günlük Gezgini'ni kullanma

Günlük Gezgini'ni kullanmak için Cloud Console'u açın, Günlük Kaydı'nı seçin, ardından Günlük Gezgini. Mevcut tüm Fleet Engine günlüklerinin listesini görmek için şunu tıklayın: Fleet Engine Kaynak Türü. Bazı Delivery API günlükleri Görev Kimliği ve Teslimat Aracı Kimliği. Bu etiketleri kullanarak görevleri veya araçları görebilirsiniz.

Günlük etiketleri

Günlükleri gönderim aracı kimliğine göre filtreleyin

Günlük Gezgini'nde, günlükleri belirli bir belirli araç:

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

Aracı filtrele

Günlükleri görev kimliğine göre filtrele

Günlük Gezgini'nde, günlükleri belirli bir belirli bir görev:

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

Bir aracın belirli bir dönemdeki günlüklerini filtreleme

Günlük Gezgini'nde, günlükleri belirli bir süre boyunca araç için:

    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"

Günlük tabanlı metrik örneği

Aşağıdaki örnekte, günlük temelli metriklerin sayısını izlemek için görevleri belirlemenize yardımcı olur.

  1. Cloud Console'da Günlük Kaydı'nı, ardından Günlük Gezgini'ni seçerek açın. tıklayın. Ardından aşağıdaki filtreyi uygulayın:

    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. Query Results (Sorgu Sonuçları) bölmesinde İşlemler açılır menüsünü, ardından da şunu seçin: Metrik oluşturun.

    Metrik oluştur

  3. Metrik Düzenleyici iletişim kutusunda:

    • Metrik adı belirtin (örneğin, billable_tasks).
    • Bir metrik açıklaması belirtin (örneğin, Faturalandırılabilir öğe sayısı Görevler) de ekleyebilirsiniz.
    • Units (Birimler) seçeneğini boş bırakın. _ Type (Tür) seçeneğini olduğu gibi bırakın. Sayaç.

    Ardından, Metrik Oluştur düğmesini seçin.

  4. Günlük Tabanlı Metrikler sayfasında metrik başarıyla oluşturulmuştur ve yeni metrik, Kullanıcı tarafından tanımlanan metrikler bölümü. Metrik artık eşleşiyor olarak doldurulur oluşturulur.

  5. Yeni metriğin sağ tarafındaki dikey açılır menüyü seçin ve ardından Metrik Gezgini'nde görüntüle'yi seçin.

    Metriği göster

  6. Sol bölmede Create Your Query (Sorgunuzu Oluşturun) bölümünün altında, Resource Type (Kaynak Türü) seçeneğini Fleet (Filo) olarak ayarlayın. Engine'i tıklayın ve billable_tasks metriğini arayın.

    Arama metriği

    Sağdaki grafikte billable_tasks çağrılarının oranı gösterilmektedir.

BigQuery'yi Kullanma

BigQuery, analiz gerçekleştirmek için güçlü bir araçtır. Bu özellik, daha uzun vadeli günlükler hazırlama ve verilere üzerinde SQL benzeri anlık sorgular gerçekleştirme olanağı sunar.

Günlükleri BigQuery'ye yönlendirme

BigQuery'den yararlanmak için günlüklerin aşağıdaki gibi bir BigQuery veri deposuna yönlendirilmesi gerekir: şöyle olur:

  1. Cloud Console'da Günlük Kaydı'nı, ardından Günlük Gezgini'ni seçin.

  2. Fleet Engine günlüklerini izole eden bir filtre oluşturun. Günlükler Alanı Gezgini'nde, Fleetengine.googleapis.com/DeliveryFleet kaynak türünü seçin.

    İçerik üretme
filtre

  3. Sorgu Sonuçları bölmesinde İşlemler açılır menüsünü tıklayın ve Oluştur Lavabo.

    İçerik üretme
lavabo

  4. Havuz hizmetini seçin iletişim kutusunda BigQuery veri kümesi'ni seçin.

    Seç
lavabo

  5. Havuzu Düzenle iletişim kutusunda, aşağıdaki seçenekleri belirtin:

    • Bir havuz adı belirtin (örneğin, FleetEngineLogsSink).
    • Havuz Hizmeti'nden BigQuery olarak çıkın.
    • Bölümlendirilmiş Tabloları kullan seçeneğini belirleyin. Bu, sorguyu geliştirir bazı yolları da görmüştük.
    • Havuz Hedefi bölümünde Yeni BigQuery Veri Kümesi Oluştur'u seçin, ardından bir BigQuery veri kümesi adı belirtin (örneğin, FleetEngineLogs).
    • Havuz Oluştur düğmesini tıklayın.

    Düzenle
    lavabo

Günlükleriniz BigQuery veri kümesini doldurmaya başlar. Örneğin verileri görüntüleyebilirsiniz.

BigQuery
bölüm

FleetEngineLogs veri kümesi altındaki çeşitli tablolar doldurulacak (her günlük türü için bir adet) otomatik olarak oluşturulur:

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

Tablo adları aşağıdaki kalıbı kullanır:

project_id.data_set.log_name

Örneğin, projenin adı test_project ise ve veri kümesi adı FleetEngineLogs içindeki CreateTask tablosu şu ada sahiptir:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task

Örnek sorgular

Bu bölümde, oluşturabileceğiniz sorgu örnekleri gösterilmektedir.

Saat başına oluşturulan görev sayısı

Aşağıdaki sorgu, CreateTasks günlüklerinin sayısını sayar ve bunları şu ölçüte göre gruplandırır: saat.

    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

Araç başına saatlik aktarma sayısı

Aşağıdaki sorgu, bir aracın hizmet verdiği aktarmaların sayısını verir. bir süre azalacak.

Örneğin, bu sorgu son bir saat içinde şunları gösterebilir:

  • A aracı 12. saatte 10 aktarma ve 13. saatte 8 aktarma işlemini tamamladı.
  • B aracı 11. saatte 5 aktarma ve 12. saatte 7 aktarma tamamladı.
  • C aracı 13. saatte 12 aktarma ve 14. saatte 9 aktarma tamamladı.

    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
    

İlk teslimat başarı oranı

İlk yayınlamadaki başarı yüzdesini gösteren aşağıdaki sorgu deneme oranı.

    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

Data Studio kontrol panelleri

BigQuery, iş zekası araçlarıyla entegre edilebilir. Kontrol panelleri sayesinde oluşturulması gerekir.

Aşağıdaki örnekte, bir kontrol panelinin hangi görevler ve araçlar üzerinde hareketler harita üzerinde görselleştirilebilir.

  1. Yeni bir Datastudio kontrol panelini kullanıma sunun ve veri olarak BigQuery'yi seçin bağlantı.

    Veri
aktarma

  2. Özel Sorgu'yu ve olması gereken bulut projesini seçin. faturalandırılır.

    Seç
proje

  3. Sorgu kutusuna aşağıdaki sorguyu girin.

    Girin
sorgu

    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. Baloncuk Haritası olarak Grafik Türü'nü seçin ve ardından konum alanını seçin.

    Tablo
tür

  2. Create Field (Alan Oluştur) seçeneğini belirleyin.

    İçerik üretme
alan

  3. Alana bir ad verin ve şu formülü ekleyin: CONCAT(lat, ",", lng).

    Ardından, türü Coğrafi->Enlem, Boylam olarak ayarlayın.

    Ayarla
tür

  4. Verileri filtrelemek için kontrol paneline kontrol ekleyebilirsiniz. Örneğin, tarih aralığı filtresini kullanarak bulun.

    Ekle
kontroller

  5. Varsayılan bir tarih aralığı seçmek için tarih aralığı kutusunu düzenleyin.

    Tarih
aralık

  6. delivery_vehicle_id için ek Açılır liste kontrolleri ekleyebilirsiniz.

    Açılır menü
liste

Bu denetimlerle aracın hareketini veya aracın hareketini belirli bir harekettir.