Анализируйте журналы с помощью BigQuery

BigQuery — мощный инструмент для проведения аналитики. Вы можете использовать его для хранения долговременных логов и для выполнения SQL-подобных запросов к данным. Для использования BigQuery в анализе необходимо явно направлять ваши логи в BigQuery, как описано в следующем разделе.

Перенаправлять журналы в BigQuery

  1. В обозревателе журналов создайте фильтр, который изолирует журналы Fleet Engine: Fleetengine.googleapis.com/Fleet .
  2. В области «Результаты запроса» щелкните меню «Действия» или «Дополнительные действия» и выберите «Создать приемник» .
  3. Укажите имя приемника (например, FleetEngineLogsSink ). Нажмите «Далее» .
  4. В поле «Назначение приемника» выберите набор данных BigQuery .
  5. В разделе «Выбор набора данных BigQuery» выберите «Создать новый набор данных BigQuery» .
  6. В диалоговом окне «Создать набор данных» введите идентификатор набора данных .
  7. Оставьте все остальное как есть и нажмите «Создать набор данных» .
  8. Установите флажок «Использовать секционированные таблицы» . Нажмите «Далее» .
  9. Оставьте поля «Выбрать журналы для включения в приемник» и «Выбрать журналы для фильтрации из приемника» без изменений.
  10. Нажмите «Создать приемник» .

Теперь ваши журналы должны начать заполнять набор данных BigQuery, что может занять некоторое время. См. также раздел «Направление журналов в поддерживаемые места назначения» .

После того, как вы настроите передачу данных журналов в BigQuery, несколько таблиц в наборе данных FleetEngineLogs будут автоматически заполнены, по одной для каждого типа журналов:

  • CreateVehicle
  • GetVehicle
  • ListVehicles
  • Поисковые транспортные средства
  • Обновить транспортное средство
  • CreateTrip
  • GetTrip
  • Обновление поездки
  • 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

Например, этот запрос может показать, что за последний час:

  • Транспортное средство А совершило 10 остановок за 12 часов и 8 остановок за 13 часов.
  • Транспортное средство B совершило 5 остановок за 11-й час и 7 остановок за 12-й час.
  • Транспортное средство C совершило 12 остановок за 13-й час и 9 остановок за 14-й час.

См. также Просмотр журналов, направляемых в BigQuery .

Интеграция BigQuery с Looker Studio

BigQuery можно интегрировать с инструментами бизнес-аналитики для создания панелей мониторинга бизнес-аналитики. См. Looker Studio .

В следующем примере показано, как создать панель мониторинга Looker Studio для визуализации поездок и перемещений транспортных средств на карте.

  1. Запустите новую панель мониторинга Looker Studio и выберите BigQuery в качестве источника данных.
  2. Выберите «Пользовательский запрос» и вручную введите или выберите облачный проект, к которому следует отнести счет.
  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. Выберите тип диаграммы «Пузырьковая диаграмма» , а затем выберите поле «Местоположение» .
  2. Выберите «Добавить поле» .
  3. Назовите поле и добавьте следующую формулу: CONCAT(lat, ",", lng) .
  4. Установите тип данных на Geo->Latitude, Longitude .
  5. На панель управления можно добавить элементы управления для фильтрации данных. Например, выберите фильтр «Диапазон дат» .
  6. Отредактируйте поле «Диапазон дат», чтобы выбрать диапазон дат по умолчанию.
  7. Для vehicle_id можно добавить дополнительные элементы управления в виде выпадающих списков . С помощью этих элементов управления можно визуализировать движение транспортного средства или движение в рамках поездки.

Пример выходных данных в Looker Studio:

Пример выходных данных Looker Studio

Что дальше?

Для соблюдения правил хранения данных см. раздел «Ограничение хранения журналов» .