Fleet Engine bietet einen einfachen Logging-Dienst, mit dem Sie Nutzlasten von API-Anfragen und Antworten. Mit diesen Protokollen können Sie Integration, Erstellen von Monitoring-Messwerten und Analysieren von Traffic-Mustern.
Fleet Engine sendet die Logs als Plattform Logs in Cloud Logging, damit Sie die Cloud Logging-Tools für den Zugriff darauf
Fleet Engine-Logs
Fleet Engine sendet verschiedene Informationen an Cloud Logging, z. B.:
- Alle authentifizierten REST- und gRPC-Anfragen und -Antworten
- Fehlerantworten
- Anfragen, Antworten und Fehlermeldungen nach Anrufen, die vom Fahrer initiiert wurden SDK für die Fleet Engine.
Teilen Sie Logs für unterstützte Logtypen auf:
Dokumentation zu verfügbaren Logeinträgen und Schema in der Dokumentation Logging Referenz.
Verwenden Sie eingeschränkte und Standard-Log-Buckets, um Richtlinien zur Datenaufbewahrung einzuhalten
„Eingeschränkt“ verwenden und „default“ Buckets, erhalten Sie ein klares Bild Ihrer eingeschränkte und uneingeschränkte Datennutzung. Einige der Logdaten, die Fleet Engine an die Google Maps Platform sendet, dürfen nur für einen begrenzten Zeitraum aufbewahrt werden, gemäß der Mobilitätsdienstspezifisch Nutzungsbedingungen. Um eingeschränkte Daten nur so lange wie möglich aufzubewahren, Diese Daten sollten als TOS_RESTRICTED gekennzeichnet werden (Fleet Engine erledigt dies bereits). und in einem speziellen Bucket namens "eingeschränkt" protokolliert.
Dort können Sie festlegen, wie lange sie aufbewahrt werden, und sie automatisch dauerhaft löschen. mit den Cloud Logging-Einstellungen. Logs mit eingeschränkter Nutzung sollten beispielsweise 30 Tage lang aufbewahrt werden.
Alle verbleibenden uneingeschränkten Daten in „Standard“ protokollieren Bucket, in dem es länger aufbewahrt werden, wie in den Mobilitätsdienstspezifischen Nutzungsbedingungen (in der Regel für ein Jahr). „Eingeschränkt“ verwenden und „default“ Buckets sorgen für klare Ihrer eingeschränkten und uneingeschränkten Datennutzung.
Eingeschränkte und uneingeschränkte Logs zusammenführen, um eine vollständige Ansicht zu erhalten
Logs mit eingeschränkter Nutzung enthalten die Daten mit der eingeschränkten Nutzung sowie einen Verweis auf die
Standard-Log, damit sie gemeinsam betrachtet werden können. Das Log für die eingeschränkte Nutzung
enthält die insertId des Standardlogs als Referenz im parent_insert_id
ein. Mit diesem Feld können Sie die Daten aus beiden Logs zusammenführen und den
ein vollständiges Bild machen.
Dokumentation für alle verfügbaren Log-Nachrichten und Schemas finden Sie im Artikel Logging Referenz.
Cloud Logging aktivieren
Fleet Engine aktiviert automatisch Standardlogs für neue Mobility-Kunden, beginnend mit Projekten, die am 10. Februar 2022 erstellt wurden. Sie können bestätigen, Logging wird mithilfe der folgenden Abfrage im Log-in Explorer:
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
Wenn Sie für diese Abfrage keine Logs sehen, wurde Cloud Logging möglicherweise nicht die für Ihr Projekt aktiviert sind. Kontakt Support bei Bedarf um die Funktion zu aktivieren.
Logs mit eingeschränkter Nutzung aktivieren
Logs mit eingeschränkter Verwendung werden auf Anfrage aktiviert. Um diese Protokolle für Ihr Google Cloud-Projekt führen Sie die folgenden Schritte aus:
Projekt für den Empfang von Logs mit eingeschränkter Verwendung vorbereiten
- Öffnen Sie in der Google Cloud Console die Seite „Logrouter“.
- Aktualisieren Sie den Logging-Bucket „_Default“, um Logs mit eingeschränkter Nutzung auszuschließen.
- Wählen Sie den Logging-Bucket „_Default“ und dann Senke bearbeiten aus.
- Klicken Sie auf der Seite „Logs zum Filtern aus der Senke auswählen“ klicken Sie auf den Link
Ausschluss“ Schaltfläche:
<ph type="x-smartling-placeholder">
- </ph>
- Name des Ausschlussfilters: AusschließenRestrictedLogs
- Ausschlussfilter: labels.restriction="TOS_RESTRICTED"
- Klicken Sie auf „Senke aktualisieren“.
- Aktualisieren Sie den Bucket mit eingeschränktem Logging, um die Logs mit eingeschränkter Nutzung zu speichern.
- Wählen Sie auf der Seite „Logrouter“ die Option „Senke erstellen“ aus.
- Erstellen Sie eine Senke mit den folgenden Einstellungen:
<ph type="x-smartling-placeholder">
- </ph>
- Details zu Senken:
<ph type="x-smartling-placeholder">
- </ph>
- Name: RestrictedLogs
- Beschreibung: Routes Fleet Engine-Logs für eingeschränkte Nutzung
- Senkenziel:
<ph type="x-smartling-placeholder">
- </ph>
- Senkendienst: Logging-Bucket
- Log-Bucket auswählen: Neuen Log-Bucket erstellen
<ph type="x-smartling-placeholder">
- </ph>
- Name: Eingeschränkt
- Beschreibung: Enthält Fleet Engine-Logs für eingeschränkte Nutzung
- Aufbewahrungsdauer: 30 Tage
<ph type="x-smartling-placeholder">
- </ph>
- Hinweis: Die Aufbewahrungsdauer darf 30 Tage nicht überschreiten.
- In Senke einzuschließende Logs: leer lassen
- Logs zum Filtern aus der Senke: Klicken Sie auf "Ausschluss hinzufügen"
<ph type="x-smartling-placeholder">
- </ph>
- Name des Ausschlussfilters: AusschließenNonRestrictedLogs
- Ausschlussfilter: NOT (resource.type = "fleetengine.googleapis.com/Fleet" ODER resource.type = "fleetengine.googleapis.com/DeliveryFleet") NICHT (labels.restriction = "TOS_RESTRICTED")
- Klicken Sie auf „Senke erstellen“.
- Details zu Senken:
<ph type="x-smartling-placeholder">
Support kontaktieren, um Logs mit eingeschränkter Verwendung zu aktivieren
Wenden Sie sich dann an zu unterstützen und die folgenden Informationen in Ihrer Supportanfrage:
- Zu aktivierende Projekt-ID(s):
- E-Mail-Adresse der Person, die die Änderung beantragt:
<ph type="x-smartling-placeholder">
- </ph>
- Hinweis: Diese Person sollte Bearbeitungszugriff auf die Google Cloud-Projekte haben aufgeführt sind.
- Indem Sie Google Maps-Inhalte mit eingeschränkter Nutzung in Cloud Logging aktivieren, erklären Sie sich damit einverstanden zur Einhaltung der Google Maps Platform Nutzungsbedingungen und Mobilitätsservices spezifisch Nutzungsbedingungen, einschließlich Caching-Anforderungen und Anforderungen an die zulässige Nutzung im Zusammenhang mit Google Google Maps-Inhalte. Ja/Nein
Sobald das Supportteam Ihre Anfrage erhält, sendet es eine Bestätigung, dass die Protokollierung wurde für Ihr Projekt aktiviert
Cloud-Logs aufteilen
Cloud Logging begrenzt die Größe eingehender Logs auf 256 KB. Der Dienst löscht Logs über diesen Grenzwert hinaus. Damit Cloud Logging große Logs aufbewahrt, Die Engine kann sie in eine Reihe von Logs unter dem Grenzwert von 256 KB aufteilen. Solche Protokolle haben eine gemeinsame insertId , um die Reihenfolge anzugeben, in der der Dienst das kleinere Log vom übergroßes Originalprotokoll. Sie können sie dann basierend auf insertId angeben.
Um auf das ursprüngliche nicht aufgeteilte Protokoll zuzugreifen, führen Sie die aufgeteilten Logs nach ihrer insertIds in der ursprünglichen Reihenfolge, in der sie aufgeteilt wurden, wie aus dem Index in der Cloud-Logeintrag.
Die Struktur des aufgeteilten Logs entspricht der Struktur, die unter Split-Audit beschrieben wird.
Anleitung zu Logeinträgen für
Cloud-Audit-Logs. Der Hauptunterschied für Split-Logs in Flotten-Logging besteht darin,
Die Aufteilung erfolgt im Feld jsonPayload
statt im Feld protoPayload
ein. Im nächsten Abschnitt sehen Sie die Beispielaufteilung.
Unterstützte Logtypen
Fleet Engine unterstützt die Logaufteilung nur für die folgenden Logtypen deren Loggröße 256 KB überschreitet:
Beispiel für die Struktur eines geteilten Logs
// 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
}
}
Auf Logs zugreifen
Die Struktur von Cloud-Logs basiert auf den
LogEntry
Format. Fleet Engine sendet Logs mit der
„resource.type
“ wurde auf „fleetengine.googleapis.com
“ festgelegt. Sie können die Protokolle
Explorer nach
Schreiben Sie Abfragen zum Anzeigen Ihrer Logs.
Wenn Sie beispielsweise alle RPCs an Fleet Engine ansehen möchten, die einen Fehler zurückgegeben haben, verwenden Sie die Methode folgenden Log-Explorer-Abfrage:
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR
So rufen Sie Logs von RPCs auf, die an die Methode UpdateDeliveryVehicle
für den
Projektbeispiel-Projekt-ID die folgende Log-Explorer-Abfrage verwenden:
logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle"
Das folgende Beispiel zeigt einen LogEntry für den UpdateDeliveryVehicle
Protokoll. Die RPC-Anfrage und -Antwort befinden sich im Feld 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"
}
Wenn ein RPC-Fehler zurückgegeben wird, ist das Feld responseDeliveryVehicle
gelöscht und das Feld errorResponse
wurde festgelegt und innerhalb von jsonPayload
ausgefüllt:
{
"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"
}
Weitere Informationen zur Logging-Abfragesprache finden Sie unter Logging-Abfrage Sprache. Informationen zum Erstellen von Messwerten mithilfe von Logs finden Sie unter Übersicht von logbasierten Messwerte.
Logging-Kosten verwalten
Nach der Aktivierung der Protokollierung sind Sie dafür verantwortlich, festzulegen, wie Sie um Ihre Logs weiterzuleiten, zu speichern und aufzubewahren. Möglicherweise nutzen Sie zusätzliche Google Cloud-Dienste Gebühren für Protokoll Datenaufnahme und Aufbewahrung, wenn Sie die Nutzungs- und Aufbewahrungsdauer zu laden. Sie können die Logging-Kosten jedoch mit einer der folgenden Methoden kontrollieren:
Logging-Nutzung reduzieren
Sie können die Menge der Logdatenaufnahme begrenzen, indem Sie bestimmte Logeinträge ausschließen.
Logs exportieren oder weiterleiten
Sie können Logs an andere Google Cloud- oder externe Ziele weiterleiten, um den Standardkosten für Datenaufnahme und -speicherung. Deaktivieren Sie die Logaufnahme wie im nächsten Abschnitt beschrieben, um Aufnahmekosten zu vermeiden.
Logaufnahme deaktivieren, um Gebühren zu vermeiden
Das Reduzieren der Logging-Nutzung oder das Exportieren oder Routing von Protokollen werden gegenüber dem die Logaufnahme zu deaktivieren. Wenn Sie jedoch keine Fleet Engine-Logs verwenden möchten, Sie können potenzielle Cloud Logging-Gebühren vermeiden, indem Sie die Aufnahme deaktivieren. Standardmäßig Fleet Engine-Logs werden an den Log-Bucket „_Default“ weitergeleitet.
Mit dem folgenden Befehl wird der Logging-Bucket „_Default“ aktualisiert, sodass er keine Flotte aufnehmen kann Engine-Logs
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"''
Weitere Informationen finden Sie unter: Cloud Logging Ausschlüsse und Ausschließen Logs Cloud Logging Exporte und Exporte Protokolle
Log-Explorer verwenden
Wenn Sie den Log-Explorer verwenden möchten, öffnen Sie die Cloud Console, wählen Sie Logging aus und klicken Sie dann auf Log-Explorer: Um eine Liste aller verfügbaren Fleet Engine-Logs aufzurufen, klicken Sie auf Den Ressourcentyp Fleet Engine. Einige Delivery API-Protokolle sind mit einem Aufgaben-ID und ID des Lieferfahrzeugs. Mit diesen Labels können Sie Logs für Aufgaben oder Fahrzeuge zu informieren, die Sie interessieren.
Protokolle nach ID des Lieferfahrzeugs filtern
Im Log-Explorer können Sie mit der folgenden Abfrage Logs auf einen bestimmten bestimmtes Fahrzeug:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
Logs nach Aufgaben-ID filtern
Im Log-Explorer können Sie mit der folgenden Abfrage Logs auf einen bestimmten bestimmte Aufgabe:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.task_id=~"task_id"
Protokolle für ein Fahrzeug über einen bestimmten Zeitraum filtern
Im Log-Explorer können Sie die folgende Abfrage verwenden, um Logs auf diejenigen zu beschränken, für ein Fahrzeug in einem bestimmten Zeitraum:
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"
Beispiel für logbasierte Messwerte
Das folgende Beispiel zeigt, wie Sie mithilfe von logbasierten Messwerten die Anzahl der und Aufgaben, die im Laufe der Zeit erstellt wurden.
Wählen Sie in der Cloud Console Logging und dann zum Öffnen den Log-Explorer aus. Log-Explorer. Wenden Sie dann den folgenden Filter an:
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")
Wählen Sie im Bereich Abfrageergebnisse das Drop-down-Menü Aktionen und dann Messwert erstellen:
Gehen Sie im Dialogfeld „Messwerteditor“ so vor:
- Geben Sie einen Messwertnamen an (z. B. billable_tasks).
- Geben Sie eine Beschreibung des Messwerts an (z. B. Die Anzahl der abrechenbaren Tasks)
- Lassen Sie die Option Einheiten leer. _ Behalten Sie die Option Type (Typ) bei. Zähler:
Klicken Sie dann auf die Schaltfläche Messwert erstellen.
Auf der Seite „Logbasierte Messwerte“ sollte in einer Meldung bestätigt werden, der erfolgreich erstellt wurde und der neue Messwert Bereich „Benutzerdefinierte Messwerte“. Der Messwert wird nun als übereinstimmend dargestellt Logs generiert werden.
Klicken Sie rechts neben dem neuen Messwert auf das Drop-down-Menü Wählen Sie Im Metrics Explorer ansehen aus.
Legen Sie im linken Bereich unter "Abfrage erstellen" den Ressourcentyp Flotte Engine und suchen Sie nach dem Messwert billable_tasks.
Das rechte Diagramm zeigt die Rate der „billable_tasks“-Aufrufe.
BigQuery verwenden
BigQuery ist ein leistungsstarkes Tool zur Durchführung von Analysen. Damit können Sie längerfristige Protokolle erstellen und SQL-ähnliche Ad-hoc-Abfragen der Daten durchführen.
Logs an BigQuery weiterleiten
Um BigQuery nutzen zu können, müssen Logs an einen BigQuery-Datenspeicher weitergeleitet werden, wie folgt:
Wählen Sie in der Cloud Console Logging und dann Log-Explorer aus.
Erstellen Sie einen Filter zum Isolieren von Fleet Engine-Logs. Im Log Field Explorer Wählen Sie den Ressourcentyp Fleetengine.googleapis.com/DeliveryFleet aus.
Klicken Sie im Bereich Abfrageergebnisse auf das Dropdown-Menü Aktionen und wählen Sie Erstellen Senke.
Wählen Sie im Dialogfeld „Senkendienst auswählen“ die Option BigQuery-Dataset aus.
Geben Sie im Dialogfeld „Senke bearbeiten“ die folgenden Optionen an:
- Geben Sie einen Senkennamen an (z. B. FleetEngineLogsSink).
- Behalten Sie für den Senkendienst BigQuery bei.
- Wählen Sie die Option Partitionierte Tabellen verwenden aus. Dies erhöht die Anzahl der Suchanfragen, die Leistung.
- Wählen Sie unter „Senkenziel“ die Option Neues BigQuery-Dataset erstellen aus. einen BigQuery-Dataset-Namen angeben (z. B. FleetEngineLogs).
- Klicken Sie auf die Schaltfläche Senke erstellen.
Ihre Logs sollten nun damit beginnen, das BigQuery-Dataset zu füllen. Sie können die im Bereich „BigQuery“ der Cloud Console.
Mehrere Tabellen unter dem Dataset FleetEngineLogs werden gefüllt automatisch für jeden Logtyp:
- CreateDeliveryVehicle
- GetDeliveryVehicle
- ListDeliveryVehicle
- UpdateDeliveryVehicle
- CreateTask
- GetTask
- UpdateTask
- ListTasks
Die Tabellennamen folgen dem folgenden Muster:
project_id.data_set.log_name
Wenn das Projekt beispielsweise test_project heißt und der Dataset-Name FleetEngineLogs erstellt hat, hat die CreateTask-Tabelle folgenden Namen:
test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task
Beispielabfragen
In diesem Abschnitt finden Sie Beispiele für Abfragen, die Sie erstellen können.
Pro Stunde erstellte Aufgaben
Die folgende Abfrage zählt die Anzahl der CreateTasks-Logs und gruppiert sie nach Stunde.
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
Anzahl der Stopps pro Fahrzeug und Stunde
Die folgende Abfrage generiert die Anzahl der Haltestellen, die ein Fahrzeug bedient hat, defekt um eine Stunde.
Diese Abfrage könnte beispielsweise anzeigen, dass in der letzten Stunde:
- Fahrzeug A hat in Stunde 12 10 Stopps und in Stunde 13 8 Stopps erreicht.
- Fahrzeug B hat in Stunde 11 5 Stopps und in Stunde 12 7 Stopps erreicht.
Fahrzeug C hat in Stunde 13 12 Stopps und in Stunde 14 9 Stopps erreicht.
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
Erfolgsquote der ersten Auslieferung
Die folgende Abfrage, die den Prozentsatz des Erfolgs bei der ersten Lieferung anzeigt Versuchsrate.
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
Datastudio-Dashboards
BigQuery lässt sich in Business-Intelligence-Tools einbinden und Dashboards Business Analytics erstellt werden.
Das folgende Beispiel zeigt, wie ein Dashboard erstellt wird, für welche Aufgaben und Fahrzeuge können Bewegungen auf einer Karte visualisiert werden.
Ein neues Datastudio-Dashboard starten und BigQuery als Daten auswählen
Wählen Sie „Benutzerdefinierte Abfrage“ und dann das Cloud-Projekt aus, in dem sie enthalten sein soll. in Rechnung gestellt.
Geben Sie die folgende Abfrage in das Abfragefeld ein.
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`
Wählen Sie als Diagrammtyp Blasenkarte und dann das Standortfeld aus.
Wählen Sie Feld erstellen aus.
Benennen Sie das Feld und fügen Sie die folgende Formel hinzu: CONCAT(lat, ",", lng).
Setzen Sie den Typ auf Geo-Region -> Breitengrad, Längengrad.
Sie können dem Dashboard Steuerelemente hinzufügen, um Daten zu filtern. Wählen Sie beispielsweise Zeitraum-Filter.
Bearbeiten Sie das Feld für den Zeitraum, um einen Standardzeitraum auszuwählen.
Sie können für „delivery_vehicle_id“ zusätzliche Steuerelemente in der Drop-down-Liste hinzufügen.
Mit diesen Steuerelementen können Sie die Bewegung des Fahrzeugs Bewegung innerhalb einer Lieferung.