Logowanie

Fleet Engine oferuje prostą usługę logowania, która umożliwia Żądania do interfejsu API i ładunki odpowiedzi. Za pomocą tych dzienników możesz debugować tworzyć wskaźniki monitorowania i analizować wzorce ruchu.

Fleet Engine wysyła logi jako platforma logi do Cloud Logging, aby można było korzystać z Cloud narzędzia logowania pozwalające uzyskać do nich dostęp;

Co loguje Fleet Engine

Fleet Engine wysyła wiele informacji do Cloud rejestrowanie danych, na przykład:

  • Wszystkie uwierzytelnione żądania i odpowiedzi REST i gRPC
  • Odpowiedzi na błędy
  • Żądania, odpowiedzi i komunikaty o błędach pochodzące z połączeń zainicjowanych przez kierowcę Pakiet SDK do Fleet Engine.
  • Podziel logi dla obsługiwanych typów logów:

Zapoznaj się z dokumentacją, aby uzyskać informacje o dostępnych komunikatach logu i schematach, w sekcji Logowanie Plik referencyjny.

Używaj ograniczonych i domyślnych zasobników logów w celu zapewnienia zgodności z zasadami przechowywania danych

Korzystanie z ustawienia „ograniczone” i „domyślny” pozwala uzyskać jasny obraz ograniczone i nieograniczone wykorzystanie danych. Niektóre dane logów wykorzystywane przez Fleet Engine wysyłane do Google Maps Platform mogą być przechowywane tylko przez ograniczony czas, według raportu Mobility Service Specific Warunki korzystania z usługi. Aby mieć pewność, że przechowujesz dane objęte ograniczeniami tylko przez dozwolony czas, te dane powinny być oznaczone jako TOS_RESTRICTED (Fleet Engine już to robi) i zalogowano w dedykowanym zasobniku o nazwie „z ograniczonym dostępem”.

W tym miejscu możesz określić, jak długo dane mają być przechowywane, i automatycznie usuwać je po wygaśnięcia zgodnie z ustawieniami Cloud Logging. Na przykład logi o ograniczonym wykorzystaniu powinny są przechowywane tylko przez 30 dni.

Zapisz wszystkie pozostałe nieobjęte ograniczeniami dane „domyślne” w którym można przechowywane przez dłuższy czas, zgodnie z definicją w specyfikacji Warunki (zwykle przez 1 rok). Korzystanie z ustawienia „ograniczone” i „domyślny” pozwala zapewnić jak ograniczone i nieograniczone wykorzystanie danych.

Uzyskaj pełny widok, scalając logi ograniczone i nieograniczone

Dzienniki o ograniczonym wykorzystaniu zawierają dane o ograniczonym wykorzystaniu oraz odniesienie do logu domyślnego, aby można je było uwzględniać razem. Dziennik z ograniczonym dostępem zawiera domyślny identyfikator insertId logu jako odwołanie w polu parent_insert_id. . Za pomocą tego pola możesz złączyć dane z obu logów i uzyskać pełny obraz.

Dokumentację wszystkich dostępnych komunikatów logu i schematu znajdziesz w sekcji Logowanie Plik referencyjny.

Włączam Cloud Logging

Fleet Engine automatycznie włącza logi domyślne dla nowych klientów Mobility, od projektów utworzonych 10 lutego 2022 r. Możesz sprawdzić, czy logowanie jest włączone przy użyciu następującego zapytania w Logach Eksplorator:

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

Jeśli nie widzisz żadnych logów dla tego zapytania, być może usługa Cloud Logging włączono w projekcie. Nawiązanie kontaktu pomocy, jeśli chcesz. aby włączyć tę funkcję.

Włącz logi o ograniczonym wykorzystaniu

Logi o ograniczonym wykorzystaniu są włączane na żądanie. Aby włączyć te logi na koncie Google projekt Cloud, wykonaj te czynności:

Przygotowywanie projektu do otrzymywania logów o ograniczonym wykorzystaniu

  1. W konsoli Google Cloud otwórz stronę Router logów.
  2. Zaktualizuj zasobnik logowania _Default, aby wykluczyć logi o ograniczonym wykorzystaniu.
    1. Wybierz zasobnik logowania _Default, a następnie kliknij Edytuj ujście.
    2. Na stronie „Wybierz logi do odfiltrowania z ujścia” kliknij przycisk Dodaj Wykluczenie” przycisk:
      1. Nazwa filtra wykluczeń: WykluczRestrictedLogs
      2. Filtr wykluczeń: label.restriction="TOS_RESTRICTED"
    3. Kliknij „Zaktualizuj ujście”.
  3. Zaktualizuj zasobnik logowania z ograniczonym dostępem, aby przechowywać logi o ograniczonym wykorzystaniu.
    1. Na stronie Router logów wybierz „Utwórz ujście”.
    2. Utwórz ujście z następującymi ustawieniami:
      1. Szczegóły ujścia:
        1. Nazwa: RestrictedLogs
        2. Opis: logi ograniczonego użycia Fleet Engine
      2. Miejsce docelowe ujścia:
        1. Usługa ujścia: zasobnik Logging
        2. Wybierz zasobnik logów: utwórz nowy zasobnik logów
          1. Nazwa: Zastrzeżony
          2. Opis: zawiera logi o ograniczonym wykorzystaniu Fleet Engine
        3. Okres przechowywania: 30 dni
          1. Uwaga: okres przechowywania nie może przekraczać 30 dni.
      3. Logi do uwzględnienia w ujścia: pozostaw puste
      4. Logi, które mają być odfiltrowywane z ujścia: kliknij „Dodaj wykluczenie”
        1. Nazwa filtra wykluczeń: ExcludeNonRestrictedLogs
        2. Filtr wykluczania: NIE (resource.type = "fleetengine.googleapis.com/Fleet" LUB resource.type = „fleetengine.googleapis.com/DeliveryFleet”) NIE (labels.restriction = "TOS_RESTRICTED")
      5. Kliknij „Utwórz ujście”

Aby włączyć logi o ograniczonym wykorzystaniu, skontaktuj się z zespołem pomocy

Następnie skontaktuj się pomocy i dostarczać podaj te informacje w zgłoszeniu do zespołu pomocy:

  1. Identyfikatory projektów do włączenia:
  2. Adres e-mail osoby, która prosi o zmianę:
    1. Uwaga: ta osoba powinna mieć uprawnienia do edycji projektów Google Cloud na liście produktów.
  3. Włączając w usłudze Cloud Logging Treści z Map Google objęte ograniczeniami, wyrażasz zgodę są zgodne z Google Maps Platform, warunki korzystania z usługi i Usługi mobilne konkretne , w tym wymagania dotyczące buforowania i dozwolonego użycia w odniesieniu do Google Treści w Mapach Google. Tak/nie

Po otrzymaniu prośby zespół pomocy wysyła potwierdzenie, że logowanie Włączono w Twoim projekcie

Podziel logi chmury

Cloud Logging ogranicza rozmiar logów przychodzących do 256 KB. Usługa usuwa logi przekracza ten próg. Aby mieć pewność, że Cloud Logging będzie przechowywać duże logi, Wyszukiwarka może podzielić je na serię logów poniżej progu 256 KB. Takie logi mają wspólne insertId prefiks wskazujący kolejność, w której usługa dzieli mniejszy log od i wielkości taśmy. Możesz potem połączyć je ponownie na podstawie insertId.

Aby uzyskać dostęp do pierwotnego logu podzielonego, scal logi podzielone według ich insertIds w pierwotnej kolejności, w jakiej zostały podzielone, co wskazuje ich indeks w wpisu logu Cloud.

Struktura podzielonego logu jest taka sama jak struktura wymieniona w kontroli podziału przewodnik po wpisach logu Logi kontrolne Cloud. Główna różnica w przypadku logów podzielonych we flocie Logging polega na tym, podział ma miejsce w polu jsonPayload, a nie w protoPayload . Przykładowy podział jest przedstawiony w następnej sekcji.

Obsługiwane typy logów

Fleet Engine obsługuje podział logów tylko w przypadku poniższych typów logów rozmiar dziennika przekracza 256 KB:

Przykładowa struktura logów podziału

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

Dostęp do dzienników

Logi Cloud są układane wokół LogEntry . Fleet Engine wysyła logi do Cloud Logging za pomocą tagu LogEntry Ustawiono resource.type na fleetengine.googleapis.com. Możesz użyć narzędzia Logi Explorer, aby tworzyć zapytania służące do wyświetlania logów.

Aby na przykład wyświetlić wszystkie RPC we Fleet Engine, które zwróciły błąd, użyj to zapytanie eksploratora logów:

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

Aby wyświetlić logi RPC wykonane za pomocą metody UpdateDeliveryVehicle dla przykładowego-projektu-projektu, użyj tego zapytania eksploratora logów:

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

Poniższy przykład zawiera wpis logu do wpisu w UpdateDeliveryVehicle log. Żądanie i odpowiedź RPC znajdują się w polu 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"
    }

Jeśli zostanie zwrócony błąd RPC, pole responseDeliveryVehicle ma wartość wyczyszczono, a pole errorResponse zostało ustawione i wypełnione w 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"
    }

Więcej informacji o języku zapytań dotyczących logów znajdziesz w sekcji Zapytanie dotyczące logowania język. Informacje o tym, jak używać logów do tworzenia wskaźników, znajdziesz w sekcji Omówienie opartych na logach .

Zarządzanie kosztami logowania

Po włączeniu logowania odpowiadasz za skonfigurowanie ustawień do kierowania, przechowywania i przechowywania logów. Możesz ponieść dodatkowe koszty związane z Google Cloud opłaty za dziennik pozyskiwania i przechowywania danych, jeśli przekroczysz limity wykorzystania i przechowywania ładowania. Możesz jednak kontrolować koszty rejestrowania, wykonując jedną z tych czynności:

Ogranicz użycie logowania

Możesz ograniczyć ilość przetwarzanych danych logu, wykluczając określone wpisy.

Eksportuj lub kieruj logi

Możesz kierować logi do innych miejsc docelowych Google Cloud lub zewnętrznych miejsc docelowych, aby uniknąć domyślne koszty pozyskiwania i przechowywania danych. Pamiętaj, aby wyłączyć przetwarzanie logów, opisane w następnej sekcji, aby uniknąć kosztów pozyskiwania danych.

Wyłącz pozyskiwanie logów, aby uniknąć opłat

Zmniejszenie wykorzystania logowania lub eksportowanie bądź routing logów by wyłączyć przetwarzanie logów. Jeśli jednak nie chcesz używać logów Fleet Engine, może uniknąć potencjalnych opłat za Cloud Logging przez wyłączenie pozyskiwania danych. Domyślnie Logi Fleet Engine są kierowane do zasobnika logów _Default.

To polecenie aktualizuje zasobnik logowania _Default tak, aby nie przetwarzał floty Logi wyszukiwarki.

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

Więcej informacji znajdziesz w artykule Cloud Logging (Cloud Logging) Wykluczenia i Wykluczanie . Cloud Logging Eksportowanie i eksportowanie logi

Korzystanie z eksploratora logów

Aby użyć eksploratora logów, otwórz konsolę Cloud, wybierz Logowanie, a następnie Eksplorator logów. Aby wyświetlić listę wszystkich dostępnych logów Fleet Engine, kliknij typu zasobu Fleet Engine. Niektóre logi interfejsu Delivery API są oznaczone etykietą Identyfikator zadania i identyfikator pojazdu dostawy. Możesz użyć tych etykiet, aby wybrać logi dla zadania lub pojazdy, które Cię interesują;

Etykiety logów

Filtruj dzienniki według identyfikatora pojazdu dostawy

W eksploratorze logów możesz użyć poniższego zapytania, aby ograniczyć logi do konkretny pojazd:

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

Filtruj pojazd

Filtruj logi według identyfikatora zadania

W eksploratorze logów możesz użyć poniższego zapytania, aby ograniczyć logi do konkretne zadanie:

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

Filtrowanie dzienników dotyczących pojazdu w wybranym okresie

W eksploratorze logów możesz użyć poniższego zapytania, aby ograniczyć logi do tych dla pojazdu w wybranym przedziale czasu:

    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"

Przykład wskaźników opartych na logach

Poniższy przykład pokazuje, jak za pomocą wskaźników opartych na logach śledzić liczbę utworzonych na przestrzeni czasu.

  1. W konsoli Cloud wybierz Logowanie, a następnie Eksplorator logów, aby otworzyć tę usługę. w eksploratorze logów. Następnie zastosuj ten filtr:

    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. W panelu Wyniki zapytania kliknij menu Działania, a następnie wybierz Utwórz wskaźnik.

    Utwórz wskaźnik

  3. W oknie edytora wskaźników:

    • Podaj nazwę danych (np. billable_tasks).
    • Określ opis wskaźnika (np. Liczba podlegających rozliczeniom) Lista zadań).
    • Pozostaw opcję Units (Jednostki) pustą. _ Zostaw jako opcję Typ wartość. Licznik.

    Następnie kliknij przycisk Utwórz wskaźnik.

  4. Na stronie Wskaźniki oparte na logach powinien być widoczny komunikat potwierdzający, że i udało się utworzyć nowy rodzaj danych, który powinien pojawić się Sekcja danych definiowanych przez użytkownika. Dane będą teraz wypełniane jako pasujące gdy zostaną wygenerowane logi.

  5. Wybierz pionowe menu po prawej stronie nowych danych, a następnie wybierz Wyświetl w narzędziu Metrics Explorer.

    Wyświetl dane

  6. W panelu po lewej stronie w sekcji Utwórz zapytanie ustaw typ zasobu na Flota wyszukiwarki i wyszukaj dane Billable_tasks.

    Wyszukaj dane

    Wykres po prawej stronie pokazuje współczynnik wywołań płatnych_zadań.

Korzystanie z BigQuery

BigQuery to zaawansowane narzędzie do przeprowadzania analiz. Może być wykorzystywane do przechowywania długoterminowe logi i wykonywanie doraźnych zapytań w języku SQL na podstawie danych.

Kieruję logi do BigQuery

Aby korzystać z BigQuery, logi muszą być kierowane do magazynu danych BigQuery, następujące:

  1. W konsoli Cloud wybierz Logowanie, a następnie Eksplorator logów.

  2. Utwórz filtr, który izoluje logi Fleet Engine. W eksploratorze pól logów wybierz typ zasobu Fleetengine.googleapis.com/DeliveryFleet.

    Utwórz
filtr

  3. W panelu Wyniki zapytania kliknij menu Działania i wybierz Utwórz Ujście.

    Utwórz
zlew

  4. W oknie Wybierz usługę ujścia wybierz Zbiór danych BigQuery.

    Wybierz
zlew

  5. W oknie dialogowym Edytuj ujście określ następujące opcje:

    • Podaj nazwę ujścia (na przykład FleetEngineLogsSink).
    • Pozostaw usługę ujścia jako BigQuery.
    • Wybierz opcję Użyj tabel partycjonowanych. Spowoduje to ulepszenie zapytania skuteczność reklam.
    • W sekcji Miejsce docelowe ujścia wybierz Utwórz nowy zbiór danych BigQuery, a następnie podaj nazwę zbioru danych BigQuery (np. FleetEngineLogs).
    • Kliknij przycisk Utwórz ujście.

    Edytuj
    zlew

Logi powinny teraz zacząć wypełniać zbiór danych BigQuery. Możesz zobaczyć, w sekcji BigQuery w konsoli Cloud.

BigQuery
(sekcja)

Kilka tabel w zbiorze danych FleetEngineLogs zostanie uzupełnionych automatycznie, po jednym na każdy typ dziennika:

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

Nazwy tabel mają następujący wzorzec:

project_id.data_set.log_name

Jeśli na przykład projekt nazywa się test_project, a nazwa zbioru danych to FleetEngineLogs, tabela CreateTask ma tę nazwę:

test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task

Przykładowe zapytania

W tej sekcji znajdziesz przykłady zapytań, które możesz utworzyć.

Zadania utworzone na godzinę

To zapytanie zlicza liczbę logów CreateTasks i grupuje je według godz.

    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

Liczba przesiadek na pojazd na godzinę

Kolejne zapytanie generuje liczbę przystanków, w których został obsłużony, uszkodzony pojazd spadek o godzinę.

To zapytanie może na przykład wskazywać, że w ciągu ostatniej godziny:

  • Pojazd A pokonał 10 przesiadek w godziny 12 i 8 przesiadkach w godziny 13.
  • Pojazd B zatrzymał się 5 przesiadek w godziny 11 i 7 przesiadkach w godzinie 12.
  • Pojazd C ma 12 przesiadek w godziny 13 i 9 przesiadek w godzinie 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
    

Wskaźnik sukcesu pierwszego dostarczenia

Kolejne zapytanie, które pokazuje odsetek udanych wyświetleń w pierwszej kolejności odsetek prób.

    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

Panele Studia danych

BigQuery można zintegrować z narzędziami do analityki biznesowej. Panele mogą które można utworzyć na potrzeby analityki biznesowej.

Poniższy przykład pokazuje, jak utworzyć panel do zadań i pojazdu ruch można zwizualizować na mapie.

  1. Uruchom nowy panel Studia danych i wybierz BigQuery jako dane. połączenia.

    Dane
połączenie

  2. Wybierz zapytanie niestandardowe i wybierz projekt Cloud, do którego ma być przypisana rozliczono.

    Wybierz
projekt

  3. Wpisz podane niżej zapytanie w polu zapytania.

    Wejście
zapytanie

    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. Jako typ wykresu wybierz Mapa bąbelkowa, a następnie wybierz pole lokalizacji.

    Wykres
typ

  2. Wybierz Utwórz pole.

    Utwórz
pole

  3. Nazwij to pole i dodaj tę formułę: CONCAT(lat, ",", lng).

    Następnie ustaw typ na Geo->szerokość geograficzna, długość geograficzna.

    Ustaw
typ

  4. Do panelu możesz dodać elementy sterujące, aby filtrować dane. Na przykład wybierz filtrem zakresu dat.

    Dodaj
elementy sterujące

  5. Aby wybrać domyślny zakres dat, edytuj pole zakresu dat.

    Data
zakres

  6. Możesz dodać więcej elementów sterujących rozwijaną listą dla pola delivery_vehicle_id.

    Menu
lista

Za pomocą tych elementów sterujących możesz wizualizować ruch pojazdu lub ruch w ramach dostawy.