Registro

Fleet Engine ofrece un servicio de registro simple que te permite guardar sus cargas útiles de respuesta y solicitudes a la API. Con estos registros, puedes depurar tu integración, crear métricas de supervisión y analizar patrones de tráfico.

Fleet Engine envía los registros como registros de la plataforma a Cloud Logging para que puedas usar las herramientas de Cloud Logging y acceder a ellos.

Qué registros de Fleet Engine

Fleet Engine envía varios datos a Cloud Logging, como los siguientes:

  • Todas las solicitudes y respuestas autenticadas de REST y gRPC
  • Respuestas de error
  • Solicitudes, respuestas y mensajes de error de las llamadas que inició el SDK del controlador a Fleet Engine.
  • Divide los registros para los tipos de registros compatibles:

Consulta la documentación para ver los mensajes de registro y el esquema disponibles en la Referencia de Logging.

Usa buckets de registros restringidos y predeterminados para cumplir con las políticas de retención de datos

El uso de buckets “restringidos” y “predeterminados” garantiza un panorama claro del uso de datos restringido y sin restricciones. Solo se pueden conservar algunos de los datos de registro que Fleet Engine envía a Google Maps Platform durante un período limitado, de acuerdo con las Condiciones Específicas del Servicio de Movilidad. Para asegurarte de conservar los datos restringidos solo durante el tiempo permitido, estos deben etiquetarse como TOS_RESTRICTED (Fleet Engine ya lo hace) y registrarse en un bucket dedicado llamado “restringido”.

Desde allí, puedes controlar por cuánto tiempo se retiene y borrar los datos de forma automática cuando venza mediante la configuración de Cloud Logging. Por ejemplo, los registros de uso restringido solo se deben conservar por 30 días.

Registra todos los datos restantes sin restricciones en el bucket “predeterminado”, donde se pueden conservar durante períodos más prolongados, como se define en las Condiciones específicas del servicio de movilidad (generalmente, por 1 año). El uso de buckets “restringidos” y “predeterminados” garantiza un panorama claro del uso de datos restringido y no restringido.

Combina registros restringidos y no restringidos para obtener una vista completa

Los registros de uso restringido contienen los datos de uso restringido y una referencia al registro predeterminado para que se puedan considerar juntos. El registro de uso restringido contiene el insertId predeterminado del registro como referencia en el campo parent_insert_id. Puedes usar este campo para unir los datos de ambos registros y obtener la imagen completa.

Consulta la documentación para ver todos los mensajes de registro y esquemas disponibles en la Referencia de Logging.

Habilita Cloud Logging

Fleet Engine habilita de forma automática los registros predeterminados para los clientes nuevos de movilidad a partir de los proyectos creados el 10 de febrero de 2022. Puedes confirmar si el registro está habilitado mediante la siguiente consulta en el Explorador de registros :

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

Si no ves ningún registro de esa consulta, es posible que Cloud Logging no se haya habilitado para tu proyecto. Comunícate con el equipo de asistencia si deseas habilitar la función.

Habilita los registros de uso restringido

Los registros de uso restringido se habilitan a pedido. Para habilitar estos registros en tu proyecto de Google Cloud, completa los siguientes pasos:

Prepara tu proyecto para recibir registros de uso restringido

  1. En la consola de Google Cloud, abre la página Enrutador de registros.
  2. Actualizar el bucket de registros _Default para excluir los registros de uso restringido
    1. Selecciona el bucket de registro _Default y, luego, elige Editar receptor.
    2. En la sección "Elige registros para filtrar fuera del receptor", haz clic en el botón "Agregar exclusión":
      1. Nombre del filtro de exclusión: ExcludeRestrictedLogs
      2. Filtro de exclusión: labels.restriction="TOS_RESTRICTED"
    3. Haz clic en “Actualizar receptor”.
  3. Actualiza el bucket de registros restringidos para almacenar los registros de uso restringido.
    1. En la página Enrutador de registros, selecciona “Crear receptor”.
    2. Crea un receptor con la siguiente configuración:
      1. Detalles del receptor:
        1. Nombre: RestrictedLogs
        2. Descripción: Registros de uso restringido de las rutas de Fleet Engine
      2. Destino del receptor:
        1. Servicio del receptor: bucket de Logging
        2. Seleccionar bucket de registros: Crear un bucket de registros nuevo
          1. Nombre: Restringido
          2. Descripción: Contiene registros de uso restringido de Fleet Engine
        3. Período de retención: 30 días
          1. Nota: El período de retención no debe superar los 30 días.
      3. Registros para incluir en el receptor: déjalos vacíos
      4. Registros para filtrar fuera del receptor: Haz clic en "Agregar exclusión".
        1. Nombre del filtro de exclusión: ExcludeNonRestrictedLogs
        2. Filtro de exclusión: NOT (resource.type = "fleetengine.googleapis.com/Fleet" OR resource.type = "fleetengine.googleapis.com/DeliveryFleet") NOT (labels.restriction = "TOS_RESTRICTED")
      5. Haz clic en "Crear receptor"

Comunícate con el equipo de asistencia para habilitar los registros de uso restringido

Luego, comunícate con el equipo de asistencia y proporciona la siguiente información en tu solicitud de asistencia:

  1. IDs de los proyectos que se habilitarán:
  2. Dirección de correo electrónico de la persona que solicita el cambio:
    1. Nota: Esta persona debe tener acceso de edición a los proyectos de Google Cloud enumerados.
  3. Si habilitas el Contenido de Google Maps de uso restringido en Cloud Logging, aceptas cumplir con las condiciones específicas de Google Maps Platform y las condiciones específicas del servicio de movilidad, incluidos los requisitos de almacenamiento en caché y uso permitido relacionados con el Contenido de Google Maps. Sí / No

Una vez que el equipo de asistencia al cliente reciba tu solicitud, te enviará una confirmación de que se habilitó el registro para tu proyecto.

Divide los registros de la nube

Cloud Logging limita el tamaño de los registros entrantes a 256 KB. El servicio descarta registros por encima de ese umbral. Para garantizar que Cloud Logging retenga registros grandes, Fleet Engine puede dividirlos en una serie de registros por debajo del umbral de 256 KB. Estos registros tienen un prefijo insertId común para indicar el orden en el que el servicio dividió el registro más pequeño del registro original de gran tamaño. Luego, puedes volver a unirlas según su insertId.

Para acceder al registro original sin dividir, combina los registros divididos por sus insertId en el orden original en que se dividieron, como lo indica su índice en la entrada de registro de la nube.

La estructura de registro dividido es la misma que la estructura mencionada en la guía de entradas de registro de auditoría dividida para los registros de auditoría de Cloud. La principal diferencia para los registros divididos en Fleet Logging es que la división se produce en el campo jsonPayload, en lugar de en el campo protoPayload. Consulta la división de ejemplo que se muestra en la siguiente sección.

Tipos de registros compatibles

Fleet Engine solo admite la división de registros para los siguientes tipos de registros cuyo tamaño supera los 256 KB:

Ejemplo de estructura de registro de división

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

Accede a tus registros

Los registros de Cloud se estructuran alrededor del formato LogEntry. Fleet Engine envía registros a Cloud Logging con el resource.type de LogEntry configurado como fleetengine.googleapis.com. Puedes usar el Explorador de registros para escribir consultas a fin de ver tus registros.

Por ejemplo, para ver todas las RPC de Fleet Engine que mostraron un error, usa la siguiente consulta del Explorador de registros:

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

Si quieres ver los registros de las RPC realizadas al método UpdateDeliveryVehicle del proyecto example-project-id, usa la siguiente consulta del Explorador de registros:

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

En el siguiente ejemplo, se muestra una LogEntry para el registro UpdateDeliveryVehicle. La solicitud y la respuesta de RPC se encuentran dentro del campo 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 se muestra un error de RPC, el campo responseDeliveryVehicle se borra, y el campo errorResponse se configura y propaga dentro de 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"
    }

Para obtener más información sobre el lenguaje de consulta de Logging, visita Lenguaje de consulta de Logging. Si quieres obtener información sobre cómo puedes usar tus registros para crear métricas, consulta Descripción general de las métricas basadas en registros.

Administra los costos de los registros

Después de habilitar el registro, eres responsable de configurar cómo deseas enrutar, almacenar y conservar tus registros. Es posible que se generen cargos adicionales de Google Cloud por la transferencia y retención de registros si superas los límites de uso y retención sin costo alguno. Sin embargo, puedes controlar los costos de registro si realizas una de las siguientes acciones:

Reduce el uso de registros

Puedes limitar la cantidad de transferencia de datos de registro excluyendo ciertas entradas de registro.

Exportar o enrutar registros

Puedes enrutar los registros a otros destinos de Google Cloud o a destinos externos para evitar los costos predeterminados de transferencia y almacenamiento. Asegúrate de desactivar la transferencia de registros, como se describe en la siguiente sección, para evitar los costos de transferencia.

Desactiva la transferencia de registros para evitar cargos

Se recomienda reducir el uso de los registros, o exportar o enrutar los registros, en lugar de desactivar la transferencia de registros. Sin embargo, si no deseas usar los registros de Fleet Engine, puedes desactivar la transferencia para evitar posibles cargos de Cloud Logging. De forma predeterminada, los registros de Fleet Engine se enrutan al bucket de registros _Default.

El siguiente comando actualiza el bucket de registros _Default para no transferir registros de 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"''

Para obtener más información, consulta Exclusiones de Cloud Logging y Exclusión de registros. Exportaciones de Cloud Logging y Exporta registros

Usar el Explorador de registros

Para usar el Explorador de registros, abre la consola de Cloud, selecciona Logging y, luego, Explorador de registros. Para ver una lista de todos los registros de Fleet Engine disponibles, haz clic en el tipo de recurso de Fleet Engine. Algunos registros de la API de Delivery están etiquetados con un ID de tarea y un ID de vehículo de entrega. Puedes usar estas etiquetas para seleccionar registros de las tareas o los vehículos que te interesan.

Etiquetas de registro

Filtrar registros por ID de vehículo de entrega

En el Explorador de registros, puedes usar la siguiente consulta para restringir los registros a un vehículo específico:

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

Filtrar vehículo

Filtrar registros por ID de tarea

En el Explorador de registros, puedes usar la siguiente consulta para restringir los registros a una tarea específica:

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

Filtrar los registros de un vehículo durante un período específico

En el Explorador de registros, puedes usar la siguiente consulta para restringir los registros de un vehículo durante un período específico:

    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"

Ejemplo de métricas basadas en registros

En el siguiente ejemplo, se muestra cómo usar métricas basadas en registros para realizar un seguimiento de la cantidad de tareas creadas a lo largo del tiempo.

  1. En la consola de Cloud, selecciona Logging y, luego, Explorador de registros para abrirlo. Luego, aplica el siguiente filtro:

    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. En el panel Resultados de la consulta, selecciona el menú desplegable Acciones y, luego, Crear métrica.

    Crear métrica

  3. En el diálogo Editor de métricas, sigue estos pasos:

    • Especifica un nombre de métrica (por ejemplo, billable_tasks).
    • Especifica una descripción de la métrica (por ejemplo, The number of Billable Tasks).
    • Deja la opción Unidades en blanco. _ Deja la opción Tipo como Contador.

    Luego, selecciona el botón Crear métrica.

  4. En la página Métricas basadas en registros, deberías ver un mensaje en el que se confirma que la métrica se creó de forma correcta y que la métrica nueva debería aparecer en la sección Métricas definidas por el usuario. La métrica se propagará a medida que se generen registros coincidentes.

  5. Selecciona el menú desplegable vertical a la derecha de la métrica nueva y, luego, selecciona Ver en el Explorador de métricas.

    Ver métrica

  6. En el panel izquierdo en Build Your Query, establece el Tipo de recurso en Fleet Engine y busca la métrica billable_tasks.

    Buscar métrica

    En el gráfico de la derecha, se muestra la tarifa de llamadas billable_tasks.

Usar BigQuery

BigQuery es una herramienta potente para realizar análisis. Se puede usar para almacenar registros a largo plazo y realizar consultas ad hoc similares a las de SQL en los datos.

Enruta registros a BigQuery

Para aprovechar BigQuery, los registros se deben enrutar a un almacén de datos de BigQuery de la siguiente manera:

  1. En la consola de Cloud, selecciona Logging y, luego, Explorador de registros.

  2. Crear un filtro que aísle los registros de Fleet Engine En el explorador de campos de registros, selecciona el tipo de recurso Fleetengine.googleapis.com/DeliveryFleet.

    Crear
filtro

  3. En el panel Resultados de la consulta, haz clic en el menú desplegable Acciones y selecciona Crear un receptor.

    Crear
receptor

  4. En el diálogo Seleccionar servicio del receptor, elige Conjunto de datos de BigQuery.

    Seleccionar
receptor

  5. En el diálogo Editar receptor, especifica las siguientes opciones:

    • Especifica un nombre de receptor (por ejemplo, FleetEngineLogsSink).
    • Deja el servicio del receptor como BigQuery.
    • Selecciona la opción Usar tablas particionadas. Esto aumentará el rendimiento de las consultas.
    • En Destino del receptor, selecciona Crear nuevo conjunto de datos de BigQuery y, luego, especifica un nombre para el conjunto de datos de BigQuery (por ejemplo, FleetEngineLogs).
    • Haz clic en el botón Crear receptor.

    Editar
    receptor

Tus registros deberían comenzar a propagarse en el conjunto de datos de BigQuery. Puedes ver los datos en la sección BigQuery de la consola de Cloud.

Sección de BigQuery

Varias tablas del conjunto de datos FleetEngineLogs se propagarán de forma automática, una para cada tipo de registro:

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

Los nombres de la tabla usan el siguiente patrón:

project_id.data_set.log_name

Por ejemplo, si el proyecto se llama test_project y el nombre del conjunto de datos es FleetEngineLogs, la tabla CreateTask tiene el siguiente nombre:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task

Consultas de ejemplo

En esta sección, se muestran ejemplos de las consultas que puedes crear.

Tareas creadas por hora

La siguiente consulta cuenta la cantidad de registros de CreateTasks y los agrupa por hora.

    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

Cantidad de paradas por vehículo por hora

La siguiente consulta genera un recuento de las paradas que entregó un vehículo, desglosadas por hora.

Por ejemplo, esta consulta podría indicar lo siguiente en la última hora:

  • El vehículo A completó 10 paradas en la hora 12 y 8 paradas en la hora 13.
  • El vehículo B completó 5 paradas en la hora 11 y 7 paradas en la hora 12.
  • El vehículo C completó 12 paradas en la hora 13 y 9 paradas en la hora 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
    

Tasa de éxito de la primera publicación

La siguiente consulta, que muestra el porcentaje de éxito en el primer porcentaje de intentos de entrega.

    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

Paneles de Data Studio

BigQuery se puede integrar en herramientas de inteligencia empresarial, y se pueden crear paneles para estadísticas empresariales.

En el siguiente ejemplo, se muestra cómo crear un panel en el que se puedan visualizar las tareas y los movimientos de vehículos en un mapa.

  1. Inicia un panel nuevo de Data Studio y selecciona BigQuery como la conexión de datos.

    Conexión de datos

  2. Selecciona Custom Query y, luego, el proyecto de Cloud al que se debe facturar.

    Seleccionar proyecto

  3. Ingresa la siguiente consulta en el cuadro de consulta.

    Ingresar
consulta

    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. Selecciona Tipo de gráfico como Mapa de burbujas y, luego, selecciona el campo de ubicación.

    Tipo de gráfico

  2. Selecciona Crear campo.

    Crear
campo

  3. Asígnale un nombre al campo y agrega la siguiente fórmula: CONCAT(lat, ",", lng).

    Luego, configura el tipo como Geo->Latitude, Longitude.

    Tipo de
conjunto

  4. Puedes agregar controles al panel para filtrar datos. Por ejemplo, selecciona el filtro Período (Date-range).

    Cómo agregar controles

  5. Edita el cuadro de período para seleccionar un período predeterminado.

    Período

  6. Puedes agregar controles adicionales en la lista desplegable para delivery_vehicle_id.

    Lista
desplegable

Con estos controles, puedes visualizar el movimiento del vehículo o dentro de una entrega.