使用 BigQuery 分析日志

BigQuery 是用于执行分析的强大工具。您可以用它来存储长期日志,并对数据执行类似 SQL 的查询。如需使用 BigQuery 进行分析,您必须明确地将日志路由到 BigQuery,具体如下一部分所述。

将日志路由到 BigQuery

  1. 日志浏览器中,创建一个隔离 Fleet Engine 日志的过滤条件:Fleetengine.googleapis.com/Fleet
  2. “查询结果”窗格中,点击操作更多操作菜单,然后选择创建接收器
  3. 指定接收器名称(例如 FleetEngineLogsSink)。点击下一步
  4. 接收器目标位置中,选择 BigQuery 数据集
  5. 选择 BigQuery 数据集中,选择新建 BigQuery 数据集
  6. 创建数据集对话框中,输入数据集 ID
  7. 保持其他设置不变,然后点击创建数据集
  8. 选中使用分区表。点击下一步
  9. 保留选择要包含在接收器中的日志选择要从接收器中过滤掉的日志,保持原样。
  10. 点击创建接收器

您的日志现在应该开始填充 BigQuery 数据集,这可能需要一小段时间。另请参阅将日志路由到支持的目标位置

将日志数据路由到 BigQuery 后,系统会自动在 FleetEngineLogs 数据集下填充多个表,每个日志类型对应一个表:

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

表名称使用以下模式:

project_id.data_set.log_name

例如,如果项目名为 test-project,数据集名称为 FleetEngineLogs,则 CreateTrip 表将具有以下名称:

test-project.FleetEngineLogs.fleetengine_googleapis_com_create_trip

BigQuery 查询示例

以下示例查询展示了如何在 BigQuery 中搜索不同的日志条目。

CreateTrips 日志数量(按小时分组)

    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

每车每小时的停靠次数

    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

例如,以下查询可以告诉您过去一小时内:

  • 车辆 A 在第 12 个小时完成 10 次经停,在第 13 个小时完成 8 次经停。
  • 车辆 B 在第 11 小时完成了 5 次停止,在第 12 小时完成了 7 次停止。
  • 车辆 C 在第 13 个小时完成了 12 次经停,在第 14 个小时完成了 9 次经停。

另请参阅查看路由到 BigQuery 的日志

将 BigQuery 与 Looker Studio 集成

BigQuery 可以与商业智能工具集成,以创建用于业务分析的信息中心。请参阅 Looker Studio

以下示例展示了如何构建 Looker Studio 信息中心,以在地图上直观呈现行程和车辆移动情况。

  1. 启动新的 Looker 数据洞察信息中心,然后选择 BigQuery 作为数据连接。
  2. 选择自定义查询,然后手动输入或选择它用于结算的 Cloud 项目。
  3. 在查询框中输入以下某个查询。

按需行程查询示例

    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.TableName.fleetengine_googleapis_com_update_vehicle`

计划任务示例查询

    SELECT
    labels.delivery_vehicle_id,
    jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.longitude as lat, jsonpayload_v1_updatedeliveryvehiclelog.response.lastlocation.rawlocation.latitude as lng
    FROM `ProjectID.TableName.fleetengine_googleapis_com_update_delivery_vehicle`
  1. 选择 Chart Type as Bubble Map,然后选择 location 字段。
  2. 选择添加字段
  3. 为该字段命名,然后添加以下公式:CONCAT(lat, ",", lng)
  4. 将类型设置为 Geo->Latitude, Longitude
  5. 您可以向信息中心添加控件来过滤数据。例如,选择日期范围过滤条件。
  6. 修改日期范围框以选择默认日期范围。
  7. 您可以为 vehicle_id 添加其他下拉列表控件。借助这些控件,您可以直观地查看车辆的移动情况或行程中的移动情况。

Looker Studio 输出示例:

Looker Studio 示例输出

后续步骤

如需遵守数据保留政策,请参阅限制日志保留