Journalisation

Fleet Engine propose un service de journalisation simple qui vous permet d'enregistrer ses requêtes API et ses charges utiles de réponse. Ils vous permettent de déboguer votre intégration, de créer des métriques de surveillance et d'analyser les modèles de trafic.

Fleet Engine envoie les journaux en tant que journaux de plate-forme à Cloud Logging, afin que vous puissiez utiliser les outils Cloud Logging pour y accéder.

Données consignées par Fleet Engine

Fleet Engine envoie plusieurs informations à Cloud Logging, telles que:

  • Toutes les requêtes et réponses REST et gRPC authentifiées
  • Réponses d'erreur
  • Requêtes, réponses et messages d'erreur provenant d'appels initiés par le SDK du pilote à Fleet Engine.
  • Répartissez les journaux en fonction des types de journaux compatibles:

Consultez la documentation pour connaître le schéma et les messages de journal disponibles dans la documentation de référence de Logging.

Utilisez des buckets de journaux limités et par défaut pour respecter les règles de conservation des données

L'utilisation de buckets "limités" et "par défaut" garantit une vision claire de votre utilisation des données, qu'elles soient limitées ou non. Certaines données de journaux envoyées par Fleet Engine à Google Maps Platform ne peuvent être conservées que pendant une durée limitée, conformément aux Conditions spécifiques du service de mobilité. Pour vous assurer de ne conserver les données restreintes que pendant la durée autorisée, elles doivent être associées au libellé TOS_RESTRICTED (Fleet Engine le fait déjà) et enregistrées dans un bucket dédié appelé "restricted".

Vous pouvez ensuite contrôler leur durée de conservation et les supprimer définitivement automatiquement à l'expiration à l'aide des paramètres Cloud Logging. Par exemple, les journaux à usage restreint ne doivent être conservés que pendant 30 jours.

Consignez toutes les données non restreintes restantes dans le bucket "default", où elles peuvent être conservées plus longtemps comme défini dans les Conditions spécifiques aux services de mobilité (généralement pendant un an). L'utilisation de buckets "limités" et "par défaut" garantit une vision claire de votre consommation de données restreinte et non restreinte.

Obtenez une vue complète en fusionnant les journaux restreints et non restreints

Les journaux à usage limité contiennent les données relatives à une utilisation limitée et une référence au journal par défaut afin de pouvoir les prendre en compte ensemble. Ce journal contient l'insertId du journal par défaut comme référence dans le champ parent_insert_id. Vous pouvez utiliser ce champ pour joindre les données des deux journaux et obtenir une vue d'ensemble complète.

Consultez la documentation sur l'ensemble des messages de journal et des schémas disponibles dans la documentation de référence de Logging.

Activer Cloud Logging

Fleet Engine active automatiquement les journaux par défaut pour les nouveaux clients Mobility, à commencer par les projets créés le 10 février 2022. Vous pouvez vérifier si la journalisation est activée en exécutant la requête suivante dans l'explorateur de journaux :

resource.type:"fleetengine.googleapis.com/DeliveryFleet"

Si aucun journal ne s'affiche pour cette requête, il est possible que Cloud Logging n'ait pas été activé pour votre projet. Contactez l'assistance si vous souhaitez activer la fonctionnalité.

Activer les journaux à usage limité

Les journaux à usage limité sont activés sur demande. Pour activer ces journaux pour votre projet Google Cloud, procédez comme suit:

Préparer votre projet à recevoir des journaux à usage limité

  1. Dans la console Google Cloud, ouvrez la page "Routeur de journaux".
  2. Mettez à jour le bucket de journalisation _Default pour exclure les journaux à usage limité.
    1. Sélectionnez le bucket de journalisation _Default, puis cliquez sur Modifier le récepteur.
    2. Dans la section "Choisissez des journaux à exclure du récepteur", cliquez sur le bouton "Ajouter une exclusion" :
      1. Nom du filtre d'exclusion: ExcludeRestrictedLogs
      2. Filtre d'exclusion: labels.restriction="TOS_RESTRICTED"
    3. Cliquez sur "Mettre à jour le récepteur".
  3. Mettez à jour le bucket de journalisation restreinte pour stocker les journaux à usage limité.
    1. Sur la page "Routeur de journaux", sélectionnez "Créer un récepteur".
    2. Créez un récepteur avec les paramètres suivants :
      1. Détails du récepteur :
        1. Nom: RestrictedLogs
        2. Description: Journaux à usage limité de Routes Fleet Engine
      2. Destination du récepteur :
        1. Service du récepteur: bucket Logging
        2. Sélectionner un bucket de journaux: créer un bucket de journaux
          1. Nom: restreint
          2. Description: contient des journaux Fleet Engine à usage limité
        3. Durée de conservation: 30 jours
          1. Remarque: La durée de conservation ne doit pas dépasser 30 jours.
      3. Journaux à inclure dans le récepteur: laisser vide
      4. Pour exclure le récepteur du récepteur de journaux, cliquez sur "Ajouter une exclusion".
        1. Nom du filtre d'exclusion: ExcludeNonRestrictedLogs
        2. Filtre d'exclusion: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
      5. Cliquez sur "Créer un récepteur".

Contactez l'assistance pour activer les journaux à usage limité

Ensuite, contactez l'assistance et fournissez les informations suivantes dans votre demande:

  1. ID des projets à activer:
  2. Adresse e-mail de la personne à l'origine de la demande de modification :
    1. Remarque: Cette personne doit disposer d'un accès en modification aux projets Google Cloud répertoriés.
  3. En activant le Contenu Google Maps à usage limité dans Cloud Logging, vous acceptez de respecter les Conditions d'utilisation de Google Maps Platform et les Conditions spécifiques au service de mobilité, y compris les exigences de mise en cache et d'utilisation autorisée applicables au Contenu Google Maps. Oui/Non

Une fois que l'équipe d'assistance a reçu votre demande, elle vous envoie une confirmation que la journalisation a été activée pour votre projet.

Diviser les journaux cloud

Cloud Logging limite la taille des journaux entrants à 256 Ko. Au-delà de ce seuil, le service supprime les journaux. Pour garantir que Cloud Logging conserve les journaux volumineux, Fleet Engine peut les diviser en une série de journaux inférieurs au seuil de 256 Ko. Ces journaux présentent un préfixe insertId commun qui indique l'ordre dans lequel le service a divisé le plus petit journal du journal d'origine surdimensionné. Vous pouvez ensuite les rejoindre à nouveau en fonction de leur insertId.

Pour accéder au journal non fractionné d'origine, fusionnez les journaux fractionnés par leurs ID insertId dans l'ordre dans lequel ils ont été fractionnés, comme indiqué par leur index dans l'entrée du journal cloud.

La structure du journal fractionné est identique à la structure mentionnée dans le guide des entrées de journal d'audit fractionné pour Cloud Audit Logs. La principale différence avec les journaux fractionnés dans la journalisation du parc est que la division s'effectue dans le champ jsonPayload plutôt que dans le champ protoPayload. Consultez l'exemple de fractionnement présenté dans la section suivante.

Types de journaux compatibles

Fleet Engine n'accepte le fractionnement des journaux que pour les types de journaux suivants, dont la taille dépasse 256 Ko:

Exemple de structure de journal fractionné

// 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
  }
}

Accéder à vos journaux

Les journaux cloud sont structurés selon le format LogEntry. Fleet Engine envoie des journaux à Cloud Logging avec l'élément resource.type de LogEntry défini sur fleetengine.googleapis.com. Vous pouvez utiliser l'explorateur de journaux pour écrire des requêtes permettant d'afficher vos journaux.

Par exemple, pour afficher tous les RPC envoyés à Fleet Engine qui ont renvoyé une erreur, utilisez la requête suivante de l'explorateur de journaux:

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

Pour afficher les journaux des RPC effectués sur la méthode UpdateDeliveryVehicle pour le projet example-project-id, utilisez la requête de l'explorateur de journaux suivante:

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

L'exemple suivant montre une entrée LogEntry pour le journal UpdateDeliveryVehicle. La requête et la réponse RPC se trouvent dans le champ 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"
    }

Si une erreur RPC est renvoyée, le champ responseDeliveryVehicle est effacé, et le champ errorResponse est défini et renseigné dans jsonPayload:

    {
      "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"
    }

Pour en savoir plus sur le langage de requête Logging, consultez la page Langage de requête Logging. Pour en savoir plus sur l'utilisation des journaux pour créer des métriques, consultez la page Présentation des métriques basées sur les journaux.

Gérer les coûts de journalisation

Une fois la journalisation activée, vous devez configurer la manière dont vous souhaitez acheminer, stocker et conserver vos journaux. Des frais Google Cloud supplémentaires peuvent vous être facturés pour l'ingestion et la conservation des journaux si vous dépassez les limites d'utilisation et de conservation sans frais. Toutefois, vous pouvez contrôler les coûts de journalisation en effectuant l'une des opérations suivantes:

Réduire l'utilisation de la journalisation

Vous pouvez limiter la quantité de données de journaux ingérées en excluant certaines entrées de journal.

Exporter ou acheminer les journaux

Vous pouvez acheminer les journaux vers d'autres destinations Google Cloud ou externes afin d'éviter les coûts d'ingestion et de stockage par défaut. Veillez à désactiver l'ingestion de journaux, comme décrit dans la section suivante, pour éviter des coûts d'ingestion.

Désactivez l'ingestion de journaux pour éviter des frais

Il est préférable de réduire l'utilisation des journaux, ou d'exporter ou de router les journaux plutôt que de désactiver l'ingestion de journaux. Toutefois, si vous n'avez pas l'intention d'utiliser les journaux Fleet Engine, vous pouvez éviter d'éventuels frais liés à Cloud Logging en désactivant l'ingestion. Par défaut, les journaux Fleet Engine sont acheminés vers le bucket de journaux _Default.

La commande suivante met à jour le bucket de journalisation _Default de manière à ne pas ingérer les journaux Fleet Engine.

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"''

Pour en savoir plus, consultez les pages Exclusions Cloud Logging et Exclure des journaux. Exportations Cloud Logging et journaux d'exportation

Utiliser l'explorateur de journaux

Pour utiliser l'explorateur de journaux, ouvrez la console Cloud, sélectionnez Logging, puis Explorateur de journaux. Pour afficher la liste de tous les journaux Fleet Engine disponibles, cliquez sur le type de ressource Fleet Engine. Certains journaux de l'API de livraison sont libellés avec un ID de tâche et un ID de véhicule de livraison. Vous pouvez utiliser ces étiquettes pour sélectionner des journaux pour les tâches ou les véhicules qui vous intéressent.

Libellés de journaux

Filtrer les journaux par ID du véhicule de livraison

Dans l'explorateur de journaux, vous pouvez utiliser la requête suivante pour limiter les journaux à un véhicule spécifique:

    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    labels.delivery_vehicle_id="delivery_vehicle_id"

Filtrer le véhicule

Filtrer les journaux par ID de tâche

Dans l'explorateur de journaux, vous pouvez utiliser la requête suivante pour restreindre les journaux à une tâche spécifique:

    resource.type="fleetengine.googleapis.com/DeliveryFleet"
    labels.task_id=~"task_id"

Filtrer les journaux d'un véhicule sur une période spécifique

Dans l'explorateur de journaux, vous pouvez utiliser la requête suivante pour limiter les journaux à ceux d'un véhicule sur une période spécifique:

    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"

Exemple de métriques basées sur les journaux

L'exemple suivant montre comment utiliser des métriques basées sur les journaux pour suivre le nombre de tâches créées au fil du temps.

  1. Dans la console Cloud, sélectionnez Journalisation, puis Explorateur de journaux pour ouvrir l'explorateur de journaux. Appliquez ensuite le filtre suivant:

    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. Dans le volet "Résultats de la requête", sélectionnez le menu déroulant Actions, puis Créer une métrique.

    Créer une métrique

  3. Dans la boîte de dialogue "Metric Editor" (Éditeur de métriques) :

    • Spécifiez un nom de métrique (par exemple, billable_tasks).
    • Spécifiez une description de la métrique (par exemple, Le nombre de tâches facturables).
    • Laissez l'option Unités vide. _ Laissez l'option Type définie sur Counter (Compteur).

    Sélectionnez ensuite le bouton Create Metric (Créer une métrique).

  4. Sur la page "Métriques basées sur les journaux", un message devrait confirmer que la métrique a bien été créée. La nouvelle métrique doit apparaître dans la section "Métriques définies par l'utilisateur". La métrique est alors renseignée à mesure que les journaux correspondants sont générés.

  5. Sélectionnez le menu déroulant vertical situé à droite de la nouvelle métrique, puis sélectionnez Afficher dans l'explorateur de métriques.

    Afficher la métrique

  6. Dans le volet de gauche, sous "Créer votre requête", définissez le type de ressource sur Fleet Engine et recherchez la métrique "billable_tasks".

    Rechercher une métrique

    Le graphique de droite indique le taux d'appels billable_tasks.

Utiliser BigQuery

BigQuery est un outil puissant pour effectuer des analyses. Il permet de stocker des journaux à long terme et d'exécuter des requêtes ad hoc de type SQL sur les données.

Acheminer des journaux vers BigQuery

Pour tirer parti de BigQuery, les journaux doivent être acheminés vers un datastore BigQuery, comme suit:

  1. Dans la console Cloud, sélectionnez Journalisation, puis Explorateur de journaux.

  2. Créer un filtre qui isole les journaux Fleet Engine Dans l'explorateur de champs de journaux, sélectionnez le type de ressource Fleetengine.googleapis.com/DeliveryFleet.

    Créer un filtre

  3. Dans le volet "Résultats de la requête", cliquez sur le menu déroulant "Actions", puis sélectionnez Créer un récepteur.

    Créer
un récepteur

  4. Dans la boîte de dialogue "Sélectionner le service de récepteur", choisissez Ensemble de données BigQuery.

    Sélectionner un récepteur

  5. Dans la boîte de dialogue "Modifier le récepteur", spécifiez les options suivantes:

    • Spécifiez un nom de récepteur (par exemple, FleetEngineLogsSink).
    • Laissez le service du récepteur sur BigQuery.
    • Sélectionnez l'option Use Partitioned Tables (Utiliser des tables partitionnées). Cela améliorera les performances des requêtes.
    • Sous "Destination du récepteur", sélectionnez Créer un ensemble de données BigQuery, puis spécifiez un nom d'ensemble de données BigQuery (par exemple, FleetEngineLogs).
    • Cliquez sur le bouton Créer un récepteur.

    Modifier le récepteur

Vos journaux devraient maintenant commencer à remplir l'ensemble de données BigQuery. Vous pouvez consulter les données dans la section "BigQuery" de la console Cloud.

Section BigQuery

Plusieurs tables de l'ensemble de données FleetEngineLogs seront renseignées automatiquement, une pour chaque type de journal:

  • CreateDeliveryVehicle
  • GetDeliveryVehicle
  • ListDeliveryVehicle
  • UpdateDeliveryVehicle
  • CreateTask
  • GetTask
  • UpdateTask
  • ListTasks
  • SearchTasks

Les noms de table utilisent le format suivant:

project_id.data_set.log_name

Par exemple, si le projet s'appelle test_project et que le nom de l'ensemble de données est FleetEngineLogs, la table CreateTask porte le nom suivant:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task

Exemples de requêtes

Cette section présente des exemples de requêtes que vous pouvez créer.

Tâches créées par heure

La requête suivante compte le nombre de journaux CreateTasks et les regroupe par heure.

    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

Nombre d'escales par véhicule et par heure

La requête suivante génère le nombre d'arrêts desservis par un véhicule, répartis par heure.

Par exemple, cette requête peut indiquer qu'au cours de la dernière heure:

  • Le véhicule A a effectué 10 arrêts à l'heure 12 et 8 arrêts à l'heure 13.
  • Le véhicule B a effectué 5 arrêts à l'heure 11 et 7 arrêts à l'heure 12.
  • Le véhicule C a effectué 12 arrêts à l'heure 13 et 9 arrêts à l'heure 14.

    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
    

Taux de réussite de la première livraison

La requête suivante, qui affiche le pourcentage de réussite dans le taux de première tentative de livraison.

    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

Tableaux de bord Data Studio

BigQuery peut être intégré aux outils d'informatique décisionnelle, et des tableaux de bord peuvent être créés pour l'analyse métier.

L'exemple suivant montre comment créer un tableau de bord sur lequel les tâches et les déplacements de véhicules peuvent être visualisés sur une carte.

  1. Lancez un nouveau tableau de bord Datastudio et sélectionnez BigQuery comme connexion de données.

    Connexion de données

  2. Sélectionnez "Requête personnalisée", puis le projet Cloud auquel elle doit être facturée.

    Sélectionner un projet

  3. Saisissez la requête suivante dans la zone de requête.

    Saisir une requête

    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. Sélectionnez "Type de graphique" sur Carte à bulles, puis sélectionnez le champ d'emplacement.

    Type de graphique

  2. Sélectionnez Créer un champ.

    Créer un
champ

  3. Attribuez un nom au champ, puis ajoutez la formule suivante: CONCAT(lat, ",", lng).

    Définissez ensuite le type sur Geo->Latitude, Longitude.

    Définir le
type

  4. Vous pouvez ajouter des commandes au tableau de bord pour filtrer les données. Par exemple, sélectionnez le filtre "Plage de dates".

    Ajouter des commandes

  5. Modifiez la zone de sélection de la plage de dates pour sélectionner une plage de dates par défaut.

    Plage de dates

  6. Vous pouvez ajouter d'autres commandes de liste déroulante pour delivery_vehicle_id.

    Liste déroulante

Ces commandes vous permettent de visualiser le mouvement du véhicule ou le mouvement au cours d'une livraison.