Fleet Engine ofrece un servicio de registro sencillo que te permite guardar sus Solicitudes a la API y cargas útiles de respuesta. Con estos registros, puedes depurar tus crear métricas de supervisión y analizar patrones de tráfico.
Fleet Engine envía los registros como plataforma registros a Cloud Logging, para que puedas usar el servicio Herramientas de registro para acceder a ellas.
Qué registros de Fleet Engine
Fleet Engine envía múltiples 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 conductor a Fleet Engine.
Divide los registros para los tipos de registros compatibles:
Consulta la documentación para conocer los mensajes de registro y los esquemas disponibles en la página de Registros Referencia.
Usa buckets de registros restringidos y predeterminados para cumplir con las políticas de retención de datos
Uso de contenido “restringido” y “predeterminada” garantiza un panorama claro de tu el uso de datos restringido y sin restricciones. Algunos de los datos de registro que Fleet Engine que envíe a Google Maps Platform solo se retendrán por un período limitado, según el Reglamento del servicio de movilidad Condiciones. Para asegurarte de conservar los datos restringidos solo durante el tiempo permitido, esos datos deben etiquetarse como TOS_RESTRICTED (Fleet Engine ya lo hace) y se registran en un bucket dedicado llamado “restringido”.
Desde allí, puedes controlar por cuánto tiempo se retendrá y borrar los datos automáticamente con la configuración de Cloud Logging. Por ejemplo, los registros de uso restringido solo se conservarán por 30 días.
Registrar todos los datos sin restricciones restantes en la “configuración predeterminada” de servicio, en el que se puede se retendrán por períodos más prolongados, como se define en la Especificación de Condiciones (generalmente, durante 1 año). Uso de contenido “restringido” y “predeterminada” garantiza que se haya definido del uso de datos restringido y sin restricciones.
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
para que puedan considerarse en conjunto. El registro de uso restringido
Contiene el insertId del registro predeterminado como referencia en el parent_insert_id
.
. Puedes usar este campo para unir los datos de ambos registros y obtener
el panorama completo.
Consulta la documentación para ver todos los mensajes y esquemas de registro disponibles en Logging Referencia.
Habilita Cloud Logging
Fleet Engine habilita automáticamente los registros predeterminados para los nuevos clientes de movilidad, empezando por los proyectos creados el 10 de febrero de 2022. Puedes confirmar si el registro se habilita con la siguiente consulta en la sección Registros Explorador :
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
Si no ves ningún registro para esa consulta, es posible que Cloud Logging no se haya habilitado para tu proyecto. Contacto Asistencia si lo deseas para 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 cuenta de Google Cloud, completa los siguientes pasos:
Prepara tu proyecto para recibir registros de uso restringido
- En la consola de Google Cloud, abre la página Enrutador de registros.
- Actualizar el bucket de registros _Default para excluir los registros de uso restringido
- Selecciona el bucket de registro _Default y, luego, elige Editar receptor.
- En “Elige registros para filtrar fuera del receptor”, haz clic en el botón
Exclusión" :
- Nombre del filtro de exclusión: ExcludeRestrictedLogs
- Filtro de exclusión: labels.restriction="TOS_RESTRICTED"
- Haz clic en “Actualizar receptor”.
- Actualiza el bucket de registros restringidos para almacenar los registros de uso restringido.
- En la página Enrutador de registros, selecciona “Crear receptor”.
- Crea un receptor con la siguiente configuración:
- Detalles del receptor:
- Nombre: RestrictedLogs
- Descripción: Registros de uso restringido de las rutas de Fleet Engine
- Destino del receptor:
- Servicio del receptor: bucket de Logging
- Seleccionar bucket de registros: Crear un bucket de registros nuevo
- Nombre: Restringido
- Descripción: Contiene registros de uso restringido de Fleet Engine
- Período de retención: 30 días
- Nota: El período de retención no debe superar los 30 días.
- Registros para incluir en el receptor: déjalos vacíos
- Registros para filtrar fuera del receptor: Haz clic en "Agregar exclusión"
- Nombre del filtro de exclusión: ExcludeNonRestrictedLogs
- Filtro de exclusión: NOT (resource.type = "fleetengine.googleapis.com/Fleet" O resource.type = "fleetengine.googleapis.com/DeliveryFleet") NO (labels.restriction = "TOS_RESTRICTED")
- Haz clic en "Crear receptor"
- Detalles del receptor:
Comunícate con el equipo de asistencia para habilitar los registros de uso restringido
Luego, comunícate con asistencia y proporcionar la siguiente información en tu solicitud de asistencia:
- IDs de los proyectos que se habilitarán:
- Dirección de correo electrónico de la persona que solicita el cambio:
- Nota: Esta persona debe tener acceso de edición a los proyectos de Google Cloud. en la lista.
- Si habilitas el contenido de uso restringido de Google Maps en Cloud Logging, aceptas para cumplir con los lineamientos de Google Maps Platform condiciones y el Servicio de movilidad específico condiciones, incluidos los requisitos de almacenamiento en caché y uso permitido en relación con las Contenido de Maps. Sí / No
Cuando el equipo de asistencia al cliente reciba su solicitud, le enviará una confirmación de que el registro se habilitó 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 los registros supere 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. Tales registros tienen un insertId para indicar el orden en que el servicio divide el registro más pequeño del registro de gran tamaño original. Luego, puedes volver a unirlos según su insertId.
Para acceder al registro original sin dividir, combina los registros divididos por su insertIds en el orden original en que se dividieron, como lo indica su índice en la a la entrada de registro de Cloud.
La estructura del registro dividido es la misma que la que se menciona en Auditoría dividida
guía de entradas de registro para
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 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 de registro supere 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 en torno a la
LogEntry
de un conjunto de datos
tengan un formato común. Fleet Engine envía registros a Cloud Logging con el
Se estableció resource.type
en fleetengine.googleapis.com
. Puedes usar la pestaña Registros
Explorador a
escribir consultas para ver tus registros.
Por ejemplo, para ver todas las RPC de Fleet Engine que mostraron un error, usa el siguiente consulta del Explorador de registros:
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR
Para ver los registros de las RPC realizadas al método UpdateDeliveryVehicle
del
project 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 UpdateDeliveryVehicle
registro. 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
Se borrará y el campo errorResponse
se establezca y se complete en 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 las consultas de registro, visita Consulta de Logging idioma. Si deseas obtener información sobre cómo puedes usar tus registros para crear métricas, consulta Descripción general de registros basados en métricas.
Administra los costos de los registros
Después de habilitar el registro, eres responsable de configurar cómo deseas para enrutar, almacenar y retener tus registros. Es posible que incurras en gastos adicionales de cargos por registro transferencia y retención si superas los límites de uso y retención sin y cargar. 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 externos para evitar las los costos predeterminados de transferencia y almacenamiento. Asegúrate de desactivar la transferencia de registros, ya que que se describe en la siguiente sección, para evitar costos de transferencia.
Desactiva la transferencia de registros para evitar cargos
Es preferible reducir el uso de los registros, o exportar o enrutar los registros, en lugar de convertir fuera de la transferencia de registros. Sin embargo, si no pretendes usar los registros de Fleet Engine, puedes evitar posibles cargos de Cloud Logging desactivando la transferencia. 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 la flota de Compute 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 Cloud Logging Exclusiones y Exclusión los registros del sistema. Cloud Logging Exportaciones y Exportaciones 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 una ID de tarea y un ID de vehículo de entrega. Puedes usar estas etiquetas para seleccionar registros las tareas o los vehículos que te interesan.
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 registros por ID de tarea
En el Explorador de registros, puedes usar la siguiente consulta para restringir los registros a un 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 a aquellos para 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 hacer un seguimiento de la cantidad tareas creadas con el tiempo.
En la consola de Cloud, selecciona Logging y, luego, Explorador de registros para abrir. el Explorador de registros. 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")
En el panel Resultados de la consulta, selecciona el menú desplegable Acciones y, luego, selecciona Crear métrica.
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.
En la página Métricas basadas en registros, deberías ver un mensaje en el que se confirma que el se creó correctamente y la métrica nueva debería aparecer en el Sección de métricas definidas por el usuario. La métrica ahora se propagará como coincidente. cuando se generan registros.
Selecciona el menú desplegable vertical que se encuentra a la derecha de la métrica nueva y, luego, Selecciona Ver en el Explorador de métricas.
En el panel izquierdo en Build Your Query, establezca el tipo de recurso en Flota. Engine y busca la métrica billable_tasks.
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, ya que sigue:
En la consola de Cloud, selecciona Logging y, luego, Explorador de registros.
Crear un filtro que aísle los registros de Fleet Engine En el Explorador del campo de registros, selecciona el tipo de recurso Fleetengine.googleapis.com/DeliveryFleet.
En el panel Resultados de la consulta, haz clic en el menú desplegable Acciones y selecciona Crear Receptor.
En el diálogo Seleccionar servicio del receptor, elige Conjunto de datos de BigQuery.
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 impulsará la búsqueda rendimiento.
- En Destino del receptor, selecciona Crear nuevo conjunto de datos de BigQuery y, luego, especificar un nombre de conjunto de datos de BigQuery (por ejemplo, FleetEngineLogs).
- Haz clic en el botón Crear receptor.
Tus registros deberían comenzar a propagarse en el conjunto de datos de BigQuery. Puedes consultar la datos en la sección BigQuery de la consola de Cloud.
Se propagarán varias tablas del conjunto de datos de FleetEngineLogs automáticamente, 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 según 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 realizó un vehículo, que no funcionan 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 muestra el porcentaje de éxito en la primera entrega tasa de intentos.
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 puede integrarse en herramientas de inteligencia empresarial, y los paneles pueden crearse para el análisis empresarial.
En el siguiente ejemplo, se muestra cómo crear un panel en qué tareas y vehículo los movimientos se pueden visualizar en un mapa.
Iniciar un nuevo panel de Data Studio y seleccionar BigQuery como los datos conexión.
Selecciona Custom Query y, luego, el proyecto de Cloud al que debe estar facturados.
Ingresa la siguiente consulta en el cuadro de 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`
Selecciona Tipo de gráfico como Mapa de burbujas y, luego, selecciona el campo de ubicación.
Selecciona Crear campo.
Asígnale un nombre al campo y agrega la siguiente fórmula: CONCAT(lat, ",", lng).
Luego, configura el tipo como Geo->Latitude, Longitude.
Puedes agregar controles al panel para filtrar datos. Por ejemplo, selecciona el filtro Período.
Edita el cuadro de período para seleccionar un período predeterminado.
Puedes agregar controles adicionales en la lista desplegable para delivery_vehicle_id.
Con estos controles, puedes visualizar el movimiento del vehículo o de la movimiento dentro de una entrega.