API-Anfragen und -Antworten protokollieren

Fleet Engine bietet einen einfachen Logging-Dienst, mit dem Sie seine API-Anfragen und Antwortnutzlasten speichern können. Mit diesen Logs können Sie Fehler in der Integration beheben, Monitoring-Messwerte erstellen und Traffic-Muster analysieren.

Fleet Engine sendet die Logs als Plattformlogs an Cloud Logging, damit Sie mit den Cloud Logging-Tools darauf zugreifen können.

Inhalte von Fleet Engine-Logs

Fleet Engine sendet mehrere Informationen an Cloud Logging, z. B.:

  • Alle authentifizierten REST- und gRPC-Anfragen und -Antworten
  • Fehlerantworten
  • Anfragen, Antworten und Fehlermeldungen von Aufrufen, die vom Driver SDK an die Fleet Engine initiiert wurden.
  • Logs für unterstützte Logtypen aufteilen:

Informationen zu verfügbaren Logeinträgen und zum Schema finden Sie in der Logging-Referenz.

Eingeschränkte und Standard-Log-Buckets verwenden, um Aufbewahrungsrichtlinien für Daten einzuhalten

Durch die Verwendung von „eingeschränkten“ und „Standard“-Buckets erhalten Sie ein klares Bild Ihrer eingeschränkten und uneingeschränkten Datennutzung. Einige der Logdaten, die Fleet Engine an die Google Maps Platform sendet, können gemäß den dienstspezifischen Nutzungsbedingungen für Mobilitätsdienste nur für einen begrenzten Zeitraum aufbewahrt werden. Damit eingeschränkte Daten nur für den zulässigen Zeitraum aufbewahrt werden, sollten diese Daten mit TOS_RESTRICTED gekennzeichnet und in einem dedizierten Bucket mit dem Namen „eingeschränkt“ protokolliert werden. Bei Fleet Engine ist das bereits geschehen.

Dort können Sie festlegen, wie lange die Daten aufbewahrt werden, und sie nach Ablauf in den Cloud Logging-Einstellungen automatisch dauerhaft löschen. Logs mit eingeschränkter Nutzung sollten beispielsweise nur 30 Tage lang aufbewahrt werden.

Loggen Sie alle verbleibenden uneingeschränkten Daten im Standard-Bucket. Dort können sie gemäß den Nutzungsbedingungen des Mobilitätsdienstes (normalerweise ein Jahr) lang aufbewahrt werden. Durch die Verwendung von „eingeschränkten“ und „Standard“-Buckets erhalten Sie ein klares Bild Ihrer eingeschränkten und uneingeschränkten Datennutzung.

Senden Sie alle verbleibenden uneingeschränkten Logdaten an den Standard-Bucket, wo sie auf unbestimmte Zeit verbleiben können.

Eingeschränkte und uneingeschränkte Logs zusammenführen, um eine vollständige Ansicht zu erhalten

Logs für eingeschränkte Nutzung enthalten die Daten für die eingeschränkte Nutzung und einen Verweis auf das Standardlog, sodass sie zusammen betrachtet werden können. Das Log mit eingeschränkter Verwendung enthält die „insertId“ des Standardlogs als Referenz im Feld parent_insert_id. Über dieses Feld können Sie die Daten aus beiden Logs zusammenführen und ein vollständiges Bild erhalten.

Eine Dokumentation aller verfügbaren Lognachrichten und -schemata finden Sie in der Logging-Referenz.

Cloud Logging aktivieren

Fleet Engine aktiviert automatisch Standardlogs für neue Mobilitätskunden, beginnend mit Projekten, die am 10. Februar 2022 erstellt wurden. Mit der folgenden Abfrage im Log-Explorer können Sie prüfen, ob das Logging aktiviert ist :

resource.type:"fleetengine.googleapis.com"

Wenn für diese Abfrage keine Logs angezeigt werden, wurde Cloud Logging für Ihr Projekt möglicherweise nicht aktiviert. Wenden Sie sich an den Support, wenn Sie diese Funktion aktivieren möchten.

Logs mit eingeschränkter Verwendung aktivieren

Logs für eingeschränkte Nutzung werden auf Anfrage aktiviert. Führen Sie die folgenden Schritte aus, um diese Logs für Ihr Google Cloud-Projekt zu aktivieren:

Projekt auf 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 im Bereich „Logs zum Filtern aus der Senke auswählen“ auf die Schaltfläche „Ausschluss hinzufügen“:
      1. Name des Ausschlussfilters: „AusschließenRestrictedLogs“
      2. Ausschlussfilter: labels.restriction="TOS_RESTRICTED"
    3. Klicken Sie auf „Senke aktualisieren“.
  3. Aktualisieren Sie den Bucket für das eingeschränkte Logging, um die Logs für die eingeschränkte 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:
      1. Senkendetails:
        1. Name: RestrictedLogs
        2. Beschreibung: Logs zur eingeschränkten Nutzung von Fleet Engine-Routen
      2. Senkenziel:
        1. Senkendienst: Logging-Bucket
        2. Log-Bucket auswählen: Neuen Log-Bucket erstellen
          1. Name: Eingeschränkt
          2. Beschreibung: Enthält Fleet Engine-Logs zur eingeschränkten Verwendung
        3. Aufbewahrungsdauer: 30 Tage
          1. Hinweis: Die Aufbewahrungsdauer darf 30 Tage nicht überschreiten.
      3. In Senke einzuschließende Logs: leer lassen
      4. Logs zum Herausfiltern aus der Senke: Klicken Sie auf „Ausschluss hinzufügen“.
        1. Name des Ausschlussfilters: AusschließenNonRestrictedLogs
        2. Ausschlussfilter: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
      5. Klicken Sie auf „Senke erstellen“.

Support kontaktieren, um Logs für eingeschränkte Nutzung zu aktivieren

Wenden Sie sich dann an den Support und geben Sie in Ihrer Supportanfrage die folgenden Informationen an:

  1. Projekt-ID(s), die aktiviert werden sollen:
  2. E-Mail-Adresse der Person, die die Änderung beantragt:
    1. Hinweis: Diese Person sollte Bearbeitungszugriff auf die aufgeführten Google Cloud-Projekte haben.
  3. Wenn Sie Google Maps-Inhalte mit eingeschränkter Nutzung in Cloud Logging aktivieren, erklären Sie sich damit einverstanden, die Nutzungsbedingungen für die Google Maps Platform und die Nutzungsbedingungen für den Mobilitätsdienst einzuhalten, einschließlich der Anforderungen an das Caching und die zulässige Nutzung in Bezug auf Google Maps-Inhalte. Ja/Nein

Sobald das Supportteam Ihre Anfrage erhalten hat, sendet es eine Bestätigung, dass Logging für Ihr Projekt aktiviert wurde

Cloud-Logs aufteilen

Cloud Logging begrenzt die Größe eingehender Logs auf 256 KB. Der Dienst löscht Logs, die diesen Grenzwert überschreiten. Damit Cloud Logging große Logs aufbewahrt, kann Fleet Engine sie in eine Reihe von Logs unter dem Grenzwert von 256 KB aufteilen. Solche Logs haben ein gemeinsames insertId-Präfix, um die Reihenfolge anzugeben, in der der Dienst das kleinere Log vom ursprünglichen übergroßen Log aufgeteilt hat. Sie können sie dann anhand ihrer insertId wieder verknüpfen.

Für den Zugriff auf das ursprüngliche nicht aufgeteilte Log führen Sie die aufgeteilten Logs mit ihren insertIds in der ursprünglichen Reihenfolge zusammen, wie durch ihren Index im Cloud-Logeintrag angegeben.

Die Struktur der aufgeteilten Logs entspricht der Struktur, die im Leitfaden zu aufgeteilten Audit-Logeinträgen für Cloud-Audit-Logs erwähnt wird. Der Hauptunterschied für Aufteilungslogs in Flotten-Logging besteht darin, dass die Aufteilung im Feld jsonPayload und nicht im Feld protoPayload erfolgt. Sehen Sie sich dazu die Beispielaufteilung im nächsten Abschnitt an.

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 von aufgeteilten Logs

// First Split Log
{
  // insertId appended with an increasing number
  "insertId": "ABCDE-1",
  "jsonPayload": {
    "response": {
      "matches": [
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-0",
            // ...
          }
        },
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-1",
            // ...
            }
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "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": {
    "response": {
      "matches": [
        {},{} // Previous matches appear as empty objects
        {
          // ...
          "vehicle": {
            "name": "providers/test-123/vehicles/test-vehicle-2",
            // ...
          },
        }
      ]
    },
    "@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
    "request": {
      "searchTripTypes": [
        "EXCLUSIVE_TRIP"
      ],
      "pickupPoint": {},
      "count": 50,
      "pickupRadiusMeters": 400,
      "minimumCapacity": 1,
      "matchOrderBy": "PICKUP_POINT_ETA",
      "vehicleTypes": [
        {
          "vehicleCategory": "TAXI"
        }
      ]
    }
  },
  "resource": {
    "type": "fleetengine.googleapis.com/Fleet",
    "labels": {
      "resource_container": "projects/test-123",
      "location": "global"
    }
  },
  // Same timestamp
  "timestamp": "2024-02-06T22:48:50.620713Z",
  "logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
  "receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
  "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

Cloud-Logs basieren auf dem LogEntry. Fleet Engine sendet Logs an Cloud Logging, wobei resource.type des Verteilers auf fleetengine.googleapis.com gesetzt ist. Mit dem Log-Explorer können Sie Abfragen zum Aufrufen Ihrer Logs schreiben.

Wenn Sie beispielsweise alle RPCs an Fleet Engine ansehen möchten, die einen Fehler zurückgegeben haben, verwenden Sie die folgende Log-Explorer-Abfrage:

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

Verwenden Sie die folgende Log-Explorer-Abfrage, um Logs von RPCs aufzurufen, die an die Methode UpdateVehicle für das Projekt „example-project-id“ gesendet wurden:

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

Das folgende Beispiel zeigt ein Handler für das Log UpdateVehicle. 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.UpdateVehicleLog"
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "labels": {2},
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

Wenn ein RPC-Fehler zurückgegeben wird, wird das Feld responseVehicle gelöscht und das Feld errorResponse wird innerhalb von jsonPayload festgelegt und ausgefüllt:

    {
      "insertId": "c6b85fbc927343fc8a85338c57a65733",
      "jsonPayload": {
        "errorResponse": {
          "httpStatusCode": 404,
          "code": "NOT_FOUND",
          "message": "No entity with id invalidVehicleId exists"
        },
        "@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
        "request": {
          "vehicle": {3},
          "updateMask": "deviceSettings",
          "vehicleId": "fakeVehicleId",
          "header": {4}
        }
      },
      "resource": {
        "type": "fleetengine.googleapis.com/Fleet",
        "labels": {2}
      },
      "timestamp": "2021-01-01T00:00:00.000000000Z",
      "severity": "ERROR",
      "labels": {2}
      "logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
      "receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
    }

Weitere Informationen zur Logging-Abfragesprache finden Sie unter Logging-Abfragesprache . Informationen dazu, wie Sie Ihre Logs zum Erstellen von Messwerten verwenden können, finden Sie unter Übersicht über logbasierte Messwerte.

Logging-Kosten verwalten

Nachdem das Logging aktiviert wurde, müssen Sie festlegen, wie Sie Ihre Logs weiterleiten, speichern und aufbewahren möchten. Wenn Sie die Nutzungs- und Aufbewahrungslimits kostenlos überschreiten, können zusätzliche Google Cloud-Gebühren für die Logaufnahme und -aufbewahrung anfallen. Sie können die Logging-Kosten jedoch mit einer der folgenden Methoden steuern:

Logging-Nutzung reduzieren

Sie können den Umfang 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 die standardmäßigen Aufnahme- und Speicherkosten zu vermeiden. Deaktivieren Sie die Logaufnahme wie im nächsten Abschnitt beschrieben, um Aufnahmekosten zu vermeiden.

Logaufnahme deaktivieren, um Gebühren zu vermeiden

Es ist besser, die Logging-Nutzung zu reduzieren oder Logs zu exportieren oder weiterzuleiten, anstatt die Logaufnahme zu deaktivieren. Wenn Sie jedoch nicht vorhaben, Fleet Engine-Logs zu verwenden, können Sie potenzielle Cloud Logging-Gebühren vermeiden, indem Sie die Aufnahme deaktivieren. Standardmäßig werden Fleet Engine-Logs an den Log-Bucket „_Default“ weitergeleitet.

Mit dem folgenden Befehl wird der Logging-Bucket „_Default“ so aktualisiert, dass keine Fleet Engine-Logs aufgenommen werden.

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 Logs ausschließen. Cloud Logging-Exporte und Logs exportieren

Log-Explorer verwenden

Wenn Sie den Log-Explorer verwenden möchten, öffnen Sie die Cloud Console, wählen Sie Logging und dann Log-Explorer aus. Klicken Sie auf den Ressourcentyp Fleet Engine, um eine Liste aller verfügbaren Fleet Engine-Logs aufzurufen. Einige API-Logs sind mit einer Fahrt-ID und einer Fahrzeug-ID gekennzeichnet. Mit diesen Labels können Sie Logs für die Fahrten oder Fahrzeuge auswählen, die Sie interessieren.

Loglabels

Protokolle nach Fahrzeug-ID filtern

Im Log-Explorer können Sie die folgende Abfrage verwenden, um Logs auf ein bestimmtes Fahrzeug zu beschränken:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="vehicle_id"

Fahrzeug filtern

Logs nach Fahrt-ID filtern

Im Log-Explorer können Sie die folgende Abfrage verwenden, um Logs auf eine bestimmte Fahrt zu beschränken:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.trip_id=~"trip_id"

Protokolle für ein Fahrzeug über einen bestimmten Zeitraum filtern

Im Log-Explorer können Sie die folgende Abfrage verwenden, um Logs auf die Logs eines Fahrzeugs über einen bestimmten Zeitraum zu beschränken:

    resource.type="fleetengine.googleapis.com/Fleet"
    labels.vehicle_id="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 logbasierter Messwerte die Anzahl der erstellten Fahrten im Zeitverlauf verfolgen können.

  1. Wählen Sie in der Cloud Console Logging und dann Log-Explorer aus, um den Log-Explorer zu öffnen. Wenden Sie dann den folgenden Filter an:

    resource.type="audited_resource"
    resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
    
  2. Wählen Sie im Bereich „Abfrageergebnisse“ das Drop-down-Menü Aktionen und dann Messwert erstellen aus.

    Messwert erstellen

  3. Im Dialogfeld „Messwerteditor“:

    • Geben Sie einen Namen für den Messwert an (z. B. billable_trips).
    • Geben Sie eine Messwertbeschreibung an, z. B. Die Anzahl der Aufrufe zu abrechenbaren Fahrten.
    • Lassen Sie die Option Units (Einheiten) leer. Behalten Sie für Typ die Option Zähler bei.

    Klicken Sie dann auf die Schaltfläche Messwert erstellen.

  4. Auf der Seite „Logbasierte Messwerte“ sollte eine Meldung angezeigt werden, mit der bestätigt wird, dass der Messwert erfolgreich erstellt wurde. Der neue Messwert sollte dann im Bereich „Benutzerdefinierte Messwerte“ angezeigt werden. Der Messwert wird jetzt eingefügt, wenn übereinstimmende Logs generiert werden.

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

    Messwert aufrufen

  6. Legen Sie im linken Bereich unter „Build Your Query“ (Abfrage erstellen) den Ressourcentyp Fleet Engine (Fleet Engine) fest und suchen Sie nach dem Messwert „biable_trips“.

    Messwert suchen

    Die Grafik auf der rechten Seite zeigt die Rate der „biable_trips“-Aufrufe.

BigQuery verwenden

BigQuery ist ein leistungsstarkes Tool zur Durchführung von Analysen. Sie können damit längerfristige Logs speichern und Ad-hoc-SQL-ähnliche Abfragen der Daten ausführen.

Logs an BigQuery weiterleiten

Damit Sie die Vorteile von BigQuery nutzen können, müssen Logs an einen BigQuery-Datenspeicher weitergeleitet werden:

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

  2. Erstellen Sie einen Filter, der Fleet Engine-Logs isoliert. Wählen Sie im Logfeld-Explorer den Ressourcentyp Fleetengine.googleapis.com/Fleet aus.

    Filter erstellen

  3. Klicken Sie im Bereich „Abfrageergebnisse“ auf das Drop-down-Menü „Aktionen“ und wählen Sie Senke erstellen aus.

    Senke erstellen

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

    Senke auswählen

  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 Abfrageleistung.
    • Wählen Sie unter „Senkenziel“ die Option Neues BigQuery-Dataset erstellen aus und geben Sie einen Namen für das BigQuery-Dataset an (z. B. FleetEngineLogs).
    • Klicken Sie auf die Schaltfläche Senke erstellen.

    Senke bearbeiten

Die Logs sollten jetzt in das BigQuery-Dataset gefüllt werden. Sie können die Daten im BigQuery-Bereich der Cloud Console sehen.

BigQuery-Abschnitt

Mehrere Tabellen im Dataset FleetEngineLogs werden automatisch ausgefüllt, eine für jeden Logtyp:

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • SearchVehicles
  • UpdateVehicle
  • CreateTrip
  • GetTrip
  • UpdateTrip
  • ListTrips

Die Tabellennamen verwenden das folgende Muster:

project_id.data_set.log_name

Wenn das Projekt beispielsweise test_project heißt und der Name des Datasets FleetEngineLogs ist, hat die CreateTrip-Tabelle den folgenden Namen:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

Beispielabfragen

In diesem Abschnitt finden Sie Beispiele für Abfragen, die Sie erstellen können.

Erstellte Fahrten pro Stunde

Die folgende Abfrage zählt die Anzahl der CreateTrips-Logs und gruppiert sie nach Stunde.

    SELECT TIMESTAMP_TRUNC(timestamp, HOUR) as hour,
           count(*) as num_trips_created
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_create_trip`
    GROUP BY hour
    ORDER by hour

Anzahl der Haltestellen pro Fahrzeug und Stunde

Die folgende Abfrage generiert die Anzahl der Haltestellen, die ein Fahrzeug angefahren hat, aufgeschlüsselt nach Stunde.

Diese Abfrage könnte uns beispielsweise mitteilen, dass in der letzten Stunde:

  • Fahrzeug A hat 10 Zwischenstopps in Stunde 12 und 8 Zwischenstopps in Stunde 13 abgeschlossen.
  • Fahrzeug B fuhr 5 Zwischenstopps in Stunde 11 und 7 Zwischenstopps in Stunde 12.
  • Fahrzeug C erzielte 12 Zwischenstopps in Stunde 13 und 9 Zwischenstopps in Stunde 14.

    SELECT
      jsonpayload_v1_updatevehiclelog.request.vehicleid AS vehicle,
      TIMESTAMP_TRUNC(timestamp, HOUR) AS hour,
      COUNT(*) AS num_stops
    FROM
      `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update__vehicle`
    WHERE
    ARRAY_LENGTH(jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments) > 0
    AND jsonpayload_v1_updatevehiclelog.request.vehicle.remainingvehiclejourneysegments[
    OFFSET
    (0)].stop.state = 'VEHICLE_STOP_STATE_LOG_ARRIVED'
    GROUP BY
    1,
    2
    ORDER BY
    2
    

Data Studio-Dashboards

BigQuery kann in Business-Intelligence-Tools eingebunden und Dashboards für Geschäftsanalysen erstellt werden.

Das folgende Beispiel zeigt, wie Sie ein Dashboard erstellen, auf dem Fahrstreifen und Fahrzeugbewegungen auf einer Karte visualisiert werden können.

  1. Starten Sie ein neues Datastudio-Dashboard und wählen Sie BigQuery als Datenverbindung aus.

    Datenverbindung

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

    Projekt auswählen

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

    Abfrage
eingeben

    SELECT
     timestamp,
     labels.vehicle_id,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.latitude AS lat,
    jsonpayload_v1_updatevehiclelog.response.lastlocation.location.longitude AS lng
    FROM
    `ProjectId.FleetEngineLogs.fleetengine_googleapis_com_update_vehicle`
    
  4. Wählen Sie als Diagrammtyp Karte mit Blasen und dann das Standortfeld aus.

    Diagrammtyp

  5. Wählen Sie Feld erstellen aus.

    Feld
erstellen

  6. Benennen Sie das Feld und fügen Sie die folgende Formel hinzu: CONCAT(lat; ","; lng).

    Legen Sie dann als Typ Standort->Breitengrad, Längengrad fest.

    Typ
festlegen

  7. Sie können dem Dashboard Steuerelemente hinzufügen, um Daten zu filtern. Wählen Sie zum Beispiel den Filter für den Zeitraum aus.

    Steuerelemente
hinzufügen

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

    Zeitraum

  9. Sie können für „vehicle_id“ weitere Steuerelemente für Drop-down-Listen hinzufügen.

    Dropdown-
Liste

Mit diesen Steuerelementen können Sie die Bewegung des Fahrzeugs oder die Bewegung innerhalb einer Fahrt visualisieren.