API-Anfragen und -Antworten protokollieren

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

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

Fleet Engine-Logs

Fleet Engine sendet verschiedene Informationen an Cloud Logging, darunter:

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

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

Verwenden Sie eingeschränkte und Standard-Log-Buckets, um Richtlinien zur Datenaufbewahrung 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 von Fleet Engine an die Google Maps Platform gesendet werden, dürfen gemäß den Nutzungsbedingungen für mobile Dienste nur für einen begrenzten Zeitraum aufbewahrt werden. Damit eingeschränkte Daten nur so lange wie möglich aufbewahrt werden, sollten diese Daten mit dem Label TOS_RESTRICTED versehen (Fleet Engine ist dies bereits) und in einem dedizierten Bucket namens „Eingeschränkt“ protokolliert.

Dort können Sie mithilfe der Cloud Logging-Einstellungen steuern, wie lange sie aufbewahrt werden, und sie nach Ablauf automatisch dauerhaft löschen. Logs mit eingeschränkter Verwendung sollten beispielsweise nur 30 Tage lang aufbewahrt werden.

Alle verbleibenden uneingeschränkten Daten im Standard-Bucket protokollieren. Dort können sie wie in den Nutzungsbedingungen für den Mobildienst definiert länger aufbewahrt werden (in der Regel für ein Jahr). Durch die Verwendung von „eingeschränkten“ und „Standard“-Buckets erhalten Sie ein klares Bild Ihrer eingeschränkten und uneingeschränkten Datennutzung.

Alle verbleibenden uneingeschränkten Logdaten an den Standard-Bucket senden, wo sie auf unbestimmte Zeit aufbewahrt werden können.

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

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

Dokumentation zu allen verfügbaren Lognachrichten und Schemas finden Sie in der 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. Mit der folgenden Abfrage im Log-Explorer können Sie prüfen, ob Logging aktiviert ist :

resource.type:"fleetengine.googleapis.com"

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

Logs mit eingeschränkter Nutzung aktivieren

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

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 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 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:
      1. Details zu Senken:
        1. Name: RestrictedLogs
        2. Beschreibung: Routes Fleet Engine-Logs für eingeschränkte Nutzung
      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 für eingeschränkte Nutzung
        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 mit eingeschränkter Verwendung zu aktivieren

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

  1. Zu aktivierende Projekt-ID(s):
  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 Mobilitätsdienste einzuhalten, einschließlich der Anforderungen an Caching und zulässige Nutzung in Bezug auf Google Maps-Inhalte. Ja/Nein

Sobald das Supportteam Ihre Anfrage erhält, 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. Logs, die über diesen Schwellenwert hinausgehen, werden vom Dienst gelöscht. Um sicherzustellen, dass Cloud Logging große Logs speichert, kann Fleet Engine diese in eine Reihe von Logs unter dem Grenzwert von 256 KB aufteilen. Solche Logs haben ein gemeinsames Präfix insertId, 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 zusammenführen.

Um auf das ursprüngliche nicht aufgeteilte Log zuzugreifen, führen Sie die aufgeteilten Logs anhand ihrer insertIds in der ursprünglichen Reihenfolge zusammen, in der sie aufgeteilt wurden. Der Index wird 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 aufgeteilte Logs in Flotten-Logging besteht darin, dass die Aufteilung im Feld jsonPayload und nicht im Feld protoPayload erfolgt. 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": {
    "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

Die Struktur von Cloud-Logs basiert auf dem LogEntry. Fleet Engine sendet Logs an Cloud Logging, wobei resource.type des Eintrags auf fleetengine.googleapis.com gesetzt ist. Mit dem Log-Explorer können Sie Abfragen zum Anzeigen 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 anzusehen, 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 einen LogEntry für das UpdateVehicle-Log. 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 festgelegt und innerhalb von jsonPayload 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 zum Erstellen von Messwerten mithilfe von Logs finden Sie unter Übersicht über logbasierte Messwerte.

Logging-Kosten verwalten

Nach der Aktivierung des Loggings 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 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 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

Sie sollten die Logging-Nutzung reduzieren oder Logs exportieren oder weiterleiten, anstatt die Logaufnahme zu deaktivieren. Wenn Sie jedoch nicht beabsichtigen, Fleet Engine-Logs zu verwenden, können Sie potenzielle Cloud Logging-Gebühren vermeiden, indem Sie die Aufnahme deaktivieren. Standardmäßig werden Flet 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 und 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-Protokolle sind mit einer Fahrt-ID und einer Fahrzeug-ID gekennzeichnet. Mit diesen Labels können Sie Protokolle 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 die 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 die Logs auf die 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 mit den Abfrageergebnissen das Drop-down-Menü Aktionen und dann Messwert erstellen aus.

    Messwert erstellen

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

    • Geben Sie einen Messwertnamen an (z. B. billable_trips).
    • Geben Sie eine Beschreibung des Messwerts an (z. B. Die Anzahl der Aufrufe von abrechenbaren Fahrten).
    • Lassen Sie die Option Einheiten leer. Belassen Sie die Option Typ auf Zähler.

    Klicken Sie dann auf die Schaltfläche Messwert erstellen.

  4. Auf der Seite „Logbasierte Messwerte“ sollte eine Meldung angezeigt werden, die bestätigt, dass der Messwert erfolgreich erstellt wurde, und der neue Messwert sollte im Bereich „Benutzerdefinierte Messwerte“ angezeigt werden. Der Messwert wird nun ausgefüllt, wenn übereinstimmende Logs generiert werden.

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

    Messwert ansehen

  6. Legen Sie im linken Bereich unter "Abfrage erstellen" den Ressourcentyp Fleet Engine fest und suchen Sie nach dem Messwert "billable_trips".

    Messwert suchen

    Das rechte Diagramm zeigt die Rate der „billable_trips“-Aufrufe.

BigQuery verwenden

BigQuery ist ein leistungsstarkes Tool zur Durchführung von Analysen. Damit können längerfristige Logs gespeichert und Ad-hoc-SQL-ähnliche Abfragen der Daten durchgeführt werden.

Logs an BigQuery weiterleiten

Damit Sie 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 zum Isolieren von Fleet Engine-Logs. 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

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

Abschnitt „BigQuery“

Mehrere Tabellen unter dem FleetEngineLogs-Dataset werden automatisch gefüllt, eine für jeden Logtyp:

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

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 lautet, hat die Tabelle "CreateTrip" 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.

Pro Stunde durchgeführte Fahrten

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 Stopps pro Fahrzeug und Stunde

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

Diese Abfrage könnte uns beispielsweise liefern, 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_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 lässt sich in Business-Intelligence-Tools einbinden und Dashboards für Geschäftsanalysen erstellen.

Das folgende Beispiel zeigt, wie Sie ein Dashboard erstellen, auf dem Wegstrecken 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 dann das Cloud-Projekt aus, dem die Abrechnung zugewiesen 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 Blasenkarte 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).

    Setzen Sie den Typ auf Geo-Region -> Breitengrad, Längengrad.

    Typ
festlegen

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

    Steuerelemente
hinzufügen

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

    Zeitraum

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

    Drop-down-Liste

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