Logging

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

  1. Öffnen Sie in der Google Cloud Console die Seite „Logrouter“.
  2. Aktualisieren Sie den Logging-Bucket „_Default“, um Logs mit eingeschränkter Nutzung auszuschließen.
    1. Wählen Sie den Logging-Bucket „_Default“ und dann Senke bearbeiten aus.
    2. 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>
      1. Name des Ausschlussfilters: AusschließenRestrictedLogs
      2. Ausschlussfilter: labels.restriction="TOS_RESTRICTED"
    3. Klicken Sie auf „Senke aktualisieren“.
  3. Aktualisieren Sie den Bucket mit eingeschränktem Logging, um die Logs mit eingeschränkter Nutzung zu speichern.
    1. Wählen Sie auf der Seite „Logrouter“ die Option „Senke erstellen“ aus.
    2. Erstellen Sie eine Senke mit den folgenden Einstellungen: <ph type="x-smartling-placeholder">
        </ph>
      1. Details zu Senken: <ph type="x-smartling-placeholder">
          </ph>
        1. Name: RestrictedLogs
        2. Beschreibung: Routes Fleet Engine-Logs für eingeschränkte Nutzung
      2. Senkenziel: <ph type="x-smartling-placeholder">
          </ph>
        1. Senkendienst: Logging-Bucket
        2. Log-Bucket auswählen: Neuen Log-Bucket erstellen <ph type="x-smartling-placeholder">
            </ph>
          1. Name: Eingeschränkt
          2. Beschreibung: Enthält Fleet Engine-Logs für eingeschränkte Nutzung
        3. Aufbewahrungsdauer: 30 Tage <ph type="x-smartling-placeholder">
            </ph>
          1. Hinweis: Die Aufbewahrungsdauer darf 30 Tage nicht überschreiten.
      3. In Senke einzuschließende Logs: leer lassen
      4. Logs zum Filtern aus der Senke: Klicken Sie auf "Ausschluss hinzufügen" <ph type="x-smartling-placeholder">
          </ph>
        1. Name des Ausschlussfilters: AusschließenNonRestrictedLogs
        2. Ausschlussfilter: NOT (resource.type = &quot;fleetengine.googleapis.com/Fleet&quot; ODER resource.type = "fleetengine.googleapis.com/DeliveryFleet") NICHT (labels.restriction = "TOS_RESTRICTED")
      5. Klicken Sie auf „Senke erstellen“.

Support kontaktieren, um Logs mit eingeschränkter Verwendung zu aktivieren

Wenden Sie sich anschließend an zu unterstützen und die folgenden Informationen in Ihrer Supportanfrage:

  1. Zu aktivierende Projekt-ID(s):
  2. E-Mail-Adresse der Person, die die Änderung beantragt: <ph type="x-smartling-placeholder">
      </ph>
    1. Hinweis: Diese Person sollte Bearbeitungszugriff auf die Google Cloud-Projekte haben aufgeführt sind.
  3. 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 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.

Loglabels

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"

Fahrzeug filtern

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.

  1. 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")
    
  2. Wählen Sie im Bereich Abfrageergebnisse das Drop-down-Menü Aktionen und dann Messwert erstellen:

    Messwert erstellen

  3. Gehen Sie im Dialogfeld „Messwerteditor“ so vor:

    • Geben Sie einen Messwertnamen an (z. B. billable_tasks).
    • Geben Sie eine Beschreibung für den Messwert 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.

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

  5. Klicken Sie rechts neben dem neuen Messwert auf das Drop-down-Menü Wählen Sie Im Metrics Explorer ansehen aus.

    Messwert ansehen

  6. Legen Sie im linken Bereich unter "Abfrage erstellen" den Ressourcentyp Flotte Engine und suchen Sie nach dem Messwert billable_tasks.

    Messwert suchen

    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:

  1. Wählen Sie in der Cloud Console Logging und dann Log-Explorer aus.

  2. Erstellen Sie einen Filter zum Isolieren von Fleet Engine-Logs. Im Log Field Explorer Wählen Sie den Ressourcentyp Fleetengine.googleapis.com/DeliveryFleet aus.

    Erstellen
Filter

  3. Klicken Sie im Bereich Abfrageergebnisse auf das Dropdown-Menü Aktionen und wählen Sie Erstellen Senke.

    Erstellen
Waschbecken

  4. Wählen Sie im Dialogfeld „Senkendienst auswählen“ die Option BigQuery-Dataset aus.

    Auswählen
Waschbecken

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

    Bearbeiten
    Waschbecken

Ihre Logs sollten nun damit beginnen, das BigQuery-Dataset zu füllen. Sie können die im Bereich „BigQuery“ der Cloud Console.

BigQuery
Abschnitt

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, defekte 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 bei 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 für welche Aufgaben und Fahrzeuge erstellt wird. Bewegungen auf einer Karte visualisiert werden.

  1. Ein neues Datastudio-Dashboard starten und BigQuery als Daten auswählen

    Daten
Verbindung

  2. Wählen Sie „Benutzerdefinierte Abfrage“ und dann das Cloud-Projekt aus, in dem sie enthalten sein soll. in Rechnung gestellt.

    Auswählen
Projekt

  3. Geben Sie die folgende Abfrage in das Abfragefeld ein.

    Eingabetaste
Suchanfrage

    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. Wählen Sie als Diagrammtyp Blasenkarte und dann das Standortfeld aus.

    Diagramm
Typ

  2. Wählen Sie Feld erstellen aus.

    Erstellen
Feld

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

    Festlegen
Typ

  4. Sie können dem Dashboard Steuerelemente hinzufügen, um Daten zu filtern. Wählen Sie beispielsweise Zeitraum-Filter.

    Hinzufügen
Einstellungen

  5. Bearbeiten Sie das Feld für den Zeitraum, um einen Standardzeitraum auszuwählen.

    Datum
Bereich

  6. Sie können für „delivery_vehicle_id“ zusätzliche Steuerelemente in der Drop-down-Liste hinzufügen.

    Drop-down-Menü
Liste

Mit diesen Steuerelementen können Sie die Bewegung des Fahrzeugs Bewegung innerhalb einer Lieferung.