Fleet Engine, API isteklerini ve yanıt yüklerini kaydetmenize olanak tanıyan basit bir günlük kaydı hizmeti sunar. Bu günlükler sayesinde entegrasyonunuzdaki hataları ayıklayabilir, izleme metrikleri oluşturabilir ve trafik kalıplarını analiz edebilirsiniz.
Fleet Engine, günlükleri Cloud Logging'e platform günlükleri olarak gönderir. Böylece, günlüklere erişmek için Cloud Logging araçlarını kullanabilirsiniz.
Fleet Engine hangi verileri günlüğe kaydeder?
Fleet Engine, Cloud Logging'e aşağıdakiler gibi çeşitli bilgiler gönderir:
- Kimliği doğrulanmış tüm REST ve gRPC istekleri ve yanıtları
- Hata yanıtları
- Driver SDK tarafından Fleet Engine'e yapılan çağrılardan gelen istekler, yanıtlar ve hata mesajları.
Desteklenen günlük türleri için günlükleri bölün:
Logging Reference (Günlük Kaydı Referansı) bölümündeki mevcut günlük mesajları ve şemalarla ilgili belgelere göz atın.
Veri saklama politikalarına uymak için kısıtlanmış ve varsayılan günlük paketlerini kullanma
"Kısıtlanmış" ve "varsayılan" paketleri kullanmak, kısıtlanmış ve sınırsız veri kullanımınızı net bir şekilde görmenizi sağlar. Fleet Engine'in Google Haritalar Platformu'na gönderdiği bazı günlük verileri, Mobilite Hizmetine Özel Şartlar'a uygun olarak yalnızca sınırlı bir süre boyunca saklanabilir. 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 etiketlenmeli (Fleet Engine bunu zaten yapıyor) ve "Kısıtlanmış" adı verilen özel bir pakete kaydedilmelidir.
Ardından, Cloud Logging ayarlarını kullanarak verilerin ne kadar süre saklanacağını kontrol edebilir ve süresi dolduğunda verileri otomatik olarak tamamen silebilirsiniz. Örneğin, kısıtlı kullanım günlükleri yalnızca 30 gün boyunca saklanmalıdır.
Kalan tüm kısıtlanmamış verileri "varsayılan" pakete kaydedin. Bu veriler, Hareket Hizmetine Özel Şartlar'da belirtilen şekilde (genellikle 1 yıl) daha uzun süre saklanabilir. "Kısıtlanmış" ve "varsayılan" paketleri kullandığınızda kısıtlanmış ve sınırsız veri kullanımınızın net bir şekilde görülmesini sağlar.
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, birlikte değerlendirilebilmesi için kısıtlı kullanım verilerini ve varsayılan günlüğe bir referans içerir. Kısıtlı kullanım günlüğü, parent_insert_id
alanında referans olarak varsayılan günlüğün insertId değerini içerir. Bu alanı, her iki günlükteki verileri birleştirmek ve resmin tamamını görmek için kullanabilirsiniz.
Tüm günlük mesajları ve şemalarla ilgili belgelere Logging Reference (Günlük Kaydı Referansı) bölümünden ulaşabilirsiniz.
Cloud Logging'i etkinleştirme
Fleet Engine, yeni Mobility müşterileri için 10 Şubat 2022'de oluşturulan projelerden başlayarak varsayılan günlükleri otomatik olarak etkinleştirir. Logs Explorer'da aşağıdaki sorguyu kullanarak günlüğe kaydetmenin etkinleştirilip etkinleştirilmediğini doğrulayabilirsiniz :
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
Bu sorguyla ilgili herhangi bir günlük görmüyorsanız projeniz için Cloud Logging etkinleştirilmemiş olabilir. Özelliği etkinleştirmek istiyorsanız destek ekibiyle iletişime geçin.
Kısıtlı kullanım günlüklerini etkinleştir
Kısıtlı kullanımlı günlükler istek üzerine etkinleştirilir. Google Cloud projeniz için bu günlükleri etkinleştirmek için aşağıdaki adımları tamamlayın:
Projenizi kısıtlı kullanım günlüklerini alacak şekilde hazırlama
- Google Cloud konsolunda Günlük Yönlendirici sayfasını açın.
- _Default Logging paketini kısıtlanmış kullanım günlüklerini hariç tutacak şekilde güncelleyin.
- _Varsayılan günlük kaydı paketini, ardından Havuzu düzenle'yi seçin.
- "Havuzun dışında filtrelenecek günlükleri seçin" bölümünde "Hariç Tutma Ekle" düğmesini tıklayın:
- Hariç tutma filtresi adı: ExcludeRestrictedLogs
- Hariç tutma filtresi: labels.restriction="TOS_RESTRICTED"
- "Havuzu güncelle"yi tıklayın.
- Kısıtlanmış kullanım günlüklerini depolamak için kısıtlanmış günlük kaydı paketini güncelleyin.
- Günlük Yönlendirici sayfasında "Havuz oluştur"u seçin.
- Aşağıdaki ayarları kullanarak havuz oluşturun:
- Havuz ayrıntıları:
- Ad: RestrictedLogs
- Açıklama: Routes Fleet Engine kısıtlı kullanım günlükleri
- Havuz hedefi:
- Havuz hizmeti: Günlük kaydı paketi
- Günlük paketi seçin: Yeni günlük paketi oluşturun
- Ad: Kısıtlanmış
- Açıklama: Fleet Engine kısıtlı kullanım günlüklerini içerir
- Saklama süresi: 30 gün
- Not: Saklama süresi 30 günü geçmemelidir.
- Havuza dahil edilecek günlükler: Boş bırakın
- Havuzun dışında filtrelenecek günlükler: "Hariç Tutma Ekle"yi tıklayın.
- Hariç tutma filtresi adı: ExcludeNonKısıtlanmışLogs.
- Hariç tutma filtresi: DEĞİL (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
- "Havuz oluştur"u tıklayın
- Havuz ayrıntıları:
Kısıtlı kullanım günlüklerini etkinleştirmek için destek ekibiyle iletişime geçin
Ardından destek ekibiyle iletişime geçin ve destek talebinizde aşağıdaki bilgileri sağlayın:
- Etkinleştirilecek proje kimlikleri:
- Değişikliği talep eden kişinin e-posta adresi:
- Not: Bu kişi, listelenen Google Cloud Projeleri için Düzenleme erişimine sahip olmalıdır.
- Cloud Logging'de kısıtlı kullanımlı Google Haritalar İçeriği'ni etkinleştirerek, Google Haritalar İçeriği ile ilgili önbelleğe alma ve izin verilen kullanım şartları da dahil olmak üzere Google Haritalar Platformu Şartları'na ve Mobilite hizmetine özel şartlara uymayı kabul edersiniz. Evet/Hayır
Destek ekibi isteğinizi aldıktan sonra, projeniz için günlük kaydının etkinleştirildiğine dair bir onay gönderir
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 bu eşiğin aştığı şekilde bırakır. Fleet Engine, Cloud Logging'in büyük günlükleri sakladığından emin olmak için bunları 256 KB'lık eşiğin altında bir dizi günlüke bölebilir. Bu tür günlüklerde, hizmetin küçük günlüğü orijinal büyük boyutlu günlükten hangi sırayla böldüğünü belirten ortak bir insertId öneki bulunur. Daha sonra, insertId kimliklerine göre yeniden bir araya getirebilirsiniz.
Orijinal bölünmemiş günlük kaydına erişmek için, bölünmüş günlükleri insertId'leriyle, bulut günlüğü girişinde dizinlerinde belirtilen orijinal sırayla birleştirin.
Bölünmüş günlük yapısı, Cloud Denetleme Günlükleri için Bölünen denetleme günlüğü girişleri kılavuzunda belirtilen yapıyla aynıdır. Fleet Logging'deki bölünmüş günlüklerin en önemli farkı, bölünmenin protoPayload
alanı yerine jsonPayload
alanında gerçekleşmesidir. Sonraki bölümde gösterilen örnek bölüme bakın.
Desteklenen günlük türleri
Fleet Engine, yalnızca günlük boyutu 256 KB'ı aşan aşağıdaki günlük türleri için günlük bölmeyi destekler:
Ö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
Bulut Günlükleri, LogEntry biçimi temel alınarak yapılandırılır. Fleet Engine, günlükleri, LogEntry'nin resource.type
değeri fleetengine.googleapis.com
olarak ayarlanmış şekilde Cloud Logging'e gönderir. Günlüklerinizi görüntülemek amacıyla sorgu yazmak için Logs Explorer'ı kullanabilirsiniz.
Ö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 sorgusunu kullanın:
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR
example-project-id projesi için UpdateDeliveryVehicle
yönteminde oluşturulan RPC'lerin günlüklerini görüntülemek 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
günlüğü için bir LogEntry 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"
}
TBG hatası döndürülürse responseDeliveryVehicle
alanı temizlenir ve 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 sorgu dili bölümüne bakın. Metrik oluşturmak için günlüklerinizi nasıl kullanabileceğiniz hakkında bilgi edinmek isterseniz Günlük tabanlı metriklere genel bakış bölümüne bakın.
Günlük kaydı maliyetlerini yönetme
Günlük kaydı etkinleştirildikten sonra günlüklerinizi nasıl yönlendirmek, depolamak ve saklamak istediğinizi ayarlamak sizin sorumluluğunuzdadır. Kullanım ve saklama sınırlarını ücretsiz olarak aşarsanız günlük kaydı ve saklama için ek Google Cloud ücretleri alınabilir. 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
Varsayılan kullanım ve depolama maliyetlerini önlemek için günlükleri başka Google Cloud'a veya harici hedeflere yönlendirebilirsiniz. Besleme maliyetlerini önlemek için bir sonraki bölümde açıklandığı gibi günlük alımını kapattığınızdan emin olun.
Ücret ödememek için günlük kullanımını devre dışı bırakın
Günlük kullanımını kapatmak yerine günlük kaydı kullanımını azaltmak veya günlükleri dışa aktarmak ya da yönlendirmek tercih edilir. Bununla birlikte, Fleet Engine günlüklerini kullanmak istemiyorsanız aktarımı kapatarak olası Cloud Logging ücretlerinden kaçınabilirsiniz. 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 Fleet Engine günlüklerini almayacak şekilde günceller.
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 Hariç Tutmaları ve Günlükleri hariç tutma bölümlerine bakın. Cloud Logging dışa aktarma ve günlükleri dışa aktarma
Günlük Gezgini'ni kullanma
Günlük Gezgini'ni kullanmak için Cloud Console'u açın, Günlük Kaydı'nı ve ardından Günlük Gezgini'ni seçin. Mevcut tüm Fleet Engine günlüklerinin listesini görmek için Fleet Engine Kaynak Türü'nü tıklayın. Bazı Delivery API günlükleri, Görev Kimliği ve Teslimat Aracı Kimliği ile etiketlenir. İlgilendiğiniz görevler veya araçlarla ilgili günlükleri seçmek için bu etiketleri kullanabilirsiniz.
Günlükleri gönderim aracı kimliğine göre filtreleyin
Günlük Gezgini'nde, günlükleri belirli bir araçla kısıtlamak için aşağıdaki sorguyu kullanabilirsiniz:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
Günlükleri görev kimliğine göre filtrele
Günlük Gezgini'nde, günlükleri belirli bir görevle kısıtlamak için aşağıdaki sorguyu kullanabilirsiniz:
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 dönemdeki bir araçla ilgili günlüklerle kısıtlamak için aşağıdaki sorguyu kullanabilirsiniz:
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, zaman içinde oluşturulan görevlerin sayısını izlemek için günlük tabanlı metriklerin nasıl kullanılacağı gösterilmektedir.
Cloud Console'da, Günlük Gezgini'ni açmak için Günlük Kaydı'nı ve ardından Günlük Gezgini'ni seçin. 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")
Sorgu Sonuçları bölmesinde İşlemler açılır menüsünü ve ardından Metrik Oluştur'u seçin.
Metrik Düzenleyici iletişim kutusunda:
- Metrik adı belirtin (örneğin, billable_tasks).
- Bir metrik açıklaması belirtin (örneğin, Faturalandırılabilir Görevlerin sayısı).
- Units (Birimler) seçeneğini boş bırakın. _ Type (Tür) seçeneğini Sayaç olarak bırakın.
Ardından, Metrik Oluştur düğmesini seçin.
Günlük Tabanlı Metrikler sayfasında, metriğin başarıyla oluşturulduğunu onaylayan bir mesaj görürsünüz ve yeni metriğin Kullanıcı tarafından tanımlanan metrikler bölümünde görünmesi gerekir. Eşleşen günlükler oluşturuldukça metrik doldurulur.
Yeni metriğin sağ tarafındaki dikey açılır menüyü ve ardından Metrik Gezgini'nde görüntüle'yi seçin.
Sorgunuzu Oluşturun altındaki sol bölmede, Kaynak Türü'nü Fleet Engine olarak ayarlayın ve billable_tasks metriğini arayın.
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. Daha uzun vadeli günlükleri depolamak ve veriler üzerinde SQL benzeri anlık sorgular gerçekleştirmek için kullanılabilir.
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:
Cloud Console'da Günlük Kaydı'nı, ardından Günlük Gezgini'ni seçin.
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.
Sorgu Sonuçları bölmesinde, İşlemler açılır menüsünü tıklayın ve Havuz Oluştur'u seçin.
Havuz hizmetini seçin iletişim kutusunda BigQuery veri kümesi'ni seçin.
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. Böylece sorgu performansı artar.
- Havuz Hedefi bölümünde Yeni BigQuery Veri Kümesi Oluştur'u seçin ve ardından bir BigQuery veri kümesi adı belirtin (örneğin, FleetEngineLogs).
- Havuz Oluştur düğmesini tıklayın.
Günlükleriniz BigQuery veri kümesini doldurmaya başlar. Cloud Console'un BigQuery bölümünde verileri görebilirsiniz.
FleetEngineLogs veri kümesi altındaki çeşitli tablolar, her günlük türü için bir tane olmak üzere otomatik olarak doldurulur:
- 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 ve veri kümesi adı FleetEngineLogs ise CreateTask tablosu şu ada sahip olur:
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ı saate göre gruplandırır.
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 durakların saatlik dökümünü verir.
Ö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ı
Aşağıdaki sorgu, ilk yayınlama deneme oranındaki başarı yüzdesini gösterir.
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 ve iş analizi için kontrol panelleri oluşturulabilir.
Aşağıdaki örnekte, harita üzerinde hangi görevlerin ve araç hareketlerinin görselleştirilebileceği bir kontrol panelinin nasıl oluşturulacağı gösterilmektedir.
Yeni bir Datastudio kontrol panelini başlatın ve veri bağlantısı olarak BigQuery'yi seçin.
Özel Sorgu'yu ve faturalandırılması gereken Cloud projesini seçin.
Sorgu kutusuna aşağıdaki sorguyu girin.
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`
Baloncuk Haritası olarak Grafik Türü'nü seçin ve ardından konum alanını seçin.
Create Field (Alan Oluştur) seçeneğini belirleyin.
Alana bir ad verin ve şu formülü ekleyin: CONCAT(lat, ",", lng).
Ardından, türü Coğrafi->Enlem, Boylam olarak ayarlayın.
Verileri filtrelemek için kontrol paneline kontrol ekleyebilirsiniz. Örneğin, Tarih aralığı filtresini seçin.
Varsayılan bir tarih aralığı seçmek için tarih aralığı kutusunu düzenleyin.
delivery_vehicle_id için ek Açılır liste kontrolleri ekleyebilirsiniz.
Bu kontroller sayesinde aracın hareketini veya yayın içindeki hareketi görselleştirebilirsiniz.