Fleet Engine oferuje prostą usługę logowania, która umożliwia zapisywanie żądań i ładunków odpowiedzi interfejsu API. Za ich pomocą możesz debugować integrację, tworzyć wskaźniki monitorowania i analizować wzorce ruchu.
Fleet Engine wysyła logi jako logi platformy do Cloud Logging, aby umożliwić Ci dostęp do nich za pomocą narzędzi Cloud Logging.
Jakie dzienniki Fleet Engine
Fleet Engine wysyła do Cloud Logging wiele informacji, takich jak:
- Wszystkie uwierzytelnione żądania i odpowiedzi REST oraz gRPC
- Odpowiedzi dotyczące błędów
- Żądania, odpowiedzi i komunikaty o błędach z wywołań zainicjowanych przez pakiet SDK sterowników do Fleet Engine.
Podziel logi według obsługiwanych typów logów:
Sprawdź dostępne komunikaty logu i schemat w dokumentacji logowania.
Używaj ograniczonych i domyślnych zasobników logów, aby zachować zgodność z zasadami przechowywania danych
Użycie zasobników „ograniczonych” i „domyślnych” daje wyraźny obraz ograniczonego i nieograniczonego wykorzystania danych. Niektóre dane dziennika wysyłane przez Fleet Engine do Google Maps Platform mogą być przechowywane tylko przez ograniczony czas zgodnie ze Szczegółowymi warunkami korzystania z usługi mobilnej. Aby mieć pewność, że dane z ograniczeniami przechowujesz tylko przez dozwolony czas, oznacz je etykietą TOS_RESTRICTED (już to robi Fleet Engine) i zarejestruj w specjalnym zasobniku o nazwie „z ograniczeniami”.
W ustawieniach Cloud Logging możesz określić, jak długo dane mają być przechowywane, i trwale je usuwać po wygaśnięciu. Na przykład logi o ograniczonym użyciu należy przechowywać tylko przez 30 dni.
Loguj wszystkie pozostałe dane nieograniczone do „domyślnego” zasobnika, w którym mogą być przechowywane przez dłuższy czas, zgodnie z definicją w Szczegółowych warunkach korzystania z usług mobilnych (zwykle przez 1 rok). Użycie zasobników „ograniczonych” i „domyślnych” zapewnia wyraźny obraz ograniczonego i nieograniczonego wykorzystania danych.
Uzyskaj pełny widok przez połączenie logów z ograniczeniami i bez ograniczeń
Logi o ograniczonym wykorzystaniu zawierają dane o ograniczonym wykorzystaniu i odniesienie do logu domyślnego, dzięki czemu można je traktować razem. Log o ograniczonym wykorzystaniu zawiera parametr insertId domyślnego logu w polu parent_insert_id
. Za pomocą tego pola możesz połączyć dane z obu logów i uzyskać pełny obraz.
Wszystkie dostępne komunikaty i schematy znajdziesz w dokumentacji logowania.
Włączam Cloud Logging
Fleet Engine automatycznie włącza logi domyślne dla nowych klientów korzystających z usług mobilnych, zaczynając od projektów utworzonych 10 lutego 2022 r. Aby sprawdzić, czy logowanie jest włączone, użyj tego zapytania w eksploratorze logów :
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
Jeśli nie widzisz żadnych logów dla tego zapytania, usługa Cloud Logging mogła nie zostać włączona w Twoim projekcie. Jeśli chcesz ją włączyć, skontaktuj się z działem pomocy.
Włącz logi o ograniczonym wykorzystaniu
Logi ograniczonego użycia są włączone na żądanie. Aby włączyć te logi w projekcie Google Cloud, wykonaj te czynności:
Przygotuj projekt do otrzymywania logów o ograniczonym wykorzystaniu
- W konsoli Google Cloud otwórz stronę Router logów.
- Zaktualizuj _Domyślny zasobnik logowania, aby wykluczyć logi o ograniczonym wykorzystaniu.
- Wybierz _Domyślny zasobnik logowania, a następnie kliknij Edytuj ujście.
- W sekcji „Wybierz logi do odfiltrowania ujścia” kliknij przycisk „Dodaj wykluczenie”:
- Nazwa filtra wykluczeń: ExcludeRestrictedLogs
- Filtr wykluczeń: label.restriction="TOS_RESTRICTED"
- Kliknij „Zaktualizuj ujście”.
- Zaktualizuj zasobnik ograniczonego logowania, aby przechowywać logi o ograniczonym wykorzystaniu.
- Na stronie Router logów wybierz „Utwórz ujście”.
- Utwórz ujście z tymi ustawieniami:
- Szczegóły ujścia:
- Nazwa: RestrictedLogs
- Opis: logi ograniczonego użycia Routes Fleet Engine
- Miejsce docelowe ujścia:
- Usługa ujścia: zasobnik Logging
- Wybierz zasobnik logów: utwórz nowy zasobnik logów
- Nazwa: Zastrzeżona
- Opis: zawiera logi o ograniczonym wykorzystaniu Fleet Engine
- Okres przechowywania: 30 dni
- Uwaga: okres przechowywania nie może przekraczać 30 dni.
- Logi do uwzględnienia w ujściu: pozostaw puste
- Logi do odfiltrowania ujścia: kliknij „Dodaj wykluczenie”
- Nazwa filtra wykluczeń: WykluczNonRestrictedLogs
- Filtr wykluczania: NIE (resource.type = "fleetengine.googleapis.com/Fleet" LUB resource.type = "fleetengine.googleapis.com/DeliveryFleet") NIE (labels.restriction = "TOS_RESTRICTED")
- Kliknij „Utwórz ujście”.
- Szczegóły ujścia:
Skontaktuj się z zespołem pomocy, aby włączyć logi ograniczonego użycia
Następnie skontaktuj się z zespołem pomocy i podaj w zgłoszeniu te informacje:
- Identyfikatory projektów do włączenia:
- Adres e-mail osoby, która prosi o zmianę:
- Uwaga: ta osoba powinna mieć uprawnienia do edycji projektów Google Cloud na liście.
- Włączając treści z Map Google do ograniczonego użytku w usłudze Cloud Logging, zgadzasz się przestrzegać warunków korzystania z Google Maps Platform i warunków korzystania z usług mobilnych, w tym wymagań dotyczących buforowania i dozwolonego użytku, w odniesieniu do Treści w Mapach Google. Tak/nie
Gdy zespół pomocy otrzyma Twoją prośbę, wyśle potwierdzenie, że logowanie zostało włączone w projekcie.
Podziel logi Cloud
Cloud Logging ogranicza rozmiar logów przychodzących do 256 KB. Usługa odrzuca logi poniżej tego progu. Aby zagwarantować, że Cloud Logging będzie przechowywać duże logi, Fleet Engine może je podzielić na serie logów poniżej progu 256 KB. Takie logi mają wspólny przedrostek insertId, który wskazuje kolejność, w jakiej usługa podzieliła mniejszy logi od oryginalnego logu ponadwymiarowego. Możesz je potem połączyć ponownie na podstawie ich insertId.
Aby uzyskać dostęp do oryginalnego niepodzielonego logu, scal podzielone logi według identyfikatorów insertId w pierwotnej kolejności, w jakiej zostały podzielone, zgodnie z ich indeksem we wpisie logu w chmurze.
Podzielona struktura logów jest taka sama jak struktura opisana w przewodniku po podziale wpisów logu kontrolnego dla logów kontrolnych Cloud. Główna różnica w przypadku logów podziału we Fleet Logging polega na tym, że podział następuje w polu jsonPayload
, a nie protoPayload
. Przykład podziału znajdziesz w następnej sekcji.
Obsługiwane typy logów
Fleet Engine obsługuje dzielenie logów tylko w przypadku tych typów logów, których rozmiar przekracza 256 KB:
Przykład podzielonej struktury logów
// 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
}
}
Uzyskiwanie dostępu do logów
Logi Cloud mają strukturę opartą na formacie LogEntry. Fleet Engine wysyła logi do Cloud Logging z wartością resource.type
logEntry ustawioną na fleetengine.googleapis.com
. Zapytania pozwalające na wyświetlanie logów możesz tworzyć w eksploratorze logów.
Aby na przykład wyświetlić wszystkie RPC w Fleet Engine, które zwróciły błąd, użyj tego zapytania Eksploratora logów:
resource.type:"fleetengine.googleapis.com/DeliveryFleet"
severity=ERROR
Aby wyświetlić logi RPC wykonane z użyciem metody UpdateDeliveryVehicle
dla przykładowego-identyfikatora-projektu, użyj tego zapytania Eksploratora logów:
logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_delivery_vehicle"
Poniższy przykład pokazuje wpis LogEntry dla logu UpdateDeliveryVehicle
. Żą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"
}
W przypadku zwrócenia błędu RPC pole responseDeliveryVehicle
jest czyszczone, a pole errorResponse
jest ustawiane i wypełniane w ramach 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 artykule Język zapytań dotyczących logów. Więcej informacji o tym, jak używać logów do tworzenia wskaźników, znajdziesz w artykule Omówienie danych opartych na logach.
Zarządzaj kosztami logowania
Po włączeniu logowania musisz skonfigurować sposób kierowania, przechowywania i przechowywania logów. Jeśli przekroczysz limity wykorzystania i przechowywania bez opłat, Google Cloud może naliczyć dodatkowe opłaty za pozyskiwanie i przechowywanie logów. Możesz jednak kontrolować koszty rejestrowania, wykonując jedną z tych czynności:
Ogranicz użycie logów
Możesz ograniczyć pozyskiwanie danych dziennika, wykluczając określone wpisy w logu.
Eksportowanie lub kierowanie logów
Możesz kierować logi do innych miejsc docelowych w Google Cloud lub zewnętrznych, aby uniknąć domyślnych kosztów pozyskiwania danych i przechowywania danych. Aby uniknąć kosztów pozyskiwania logów, wyłącz pozyskiwanie logów w sposób opisany w następnej sekcji.
Wyłącz pozyskiwanie logów, aby uniknąć opłat
Zamiast wyłączania pozyskiwania logów preferowane jest ograniczenie wykorzystania logów albo ich eksportowanie lub kierowanie. Jeśli jednak nie chcesz używać logów Fleet Engine, możesz wyłączyć pozyskiwanie danych, aby uniknąć potencjalnych opłat za Cloud Logging. Domyślnie logi Fleet Engine są kierowane do domyślnego zasobnika logów.
To polecenie aktualizuje _Default zasobnik logów, tak aby nie przetwarzał logów 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"''
Więcej informacji znajdziesz w artykułach o wykluczeniach Cloud Logging i wykluczaniu logów. Eksporty Cloud Logging i eksportowanie logów
Używanie eksploratora logów
Aby użyć eksploratora logów, otwórz Cloud Console, wybierz Logowanie, a następnie Eksplorator logów. Aby wyświetlić listę wszystkich dostępnych logów Fleet Engine, kliknij typ zasobu Fleet Engine. Niektóre logi interfejsu Delivery API mają etykiety identyfikator zadania i identyfikator pojazdu dostawy. Możesz ich używać do wybierania logów dla interesujących Cię zadań lub pojazdów.
Filtruj dzienniki według identyfikatora pojazdu dostawczego
W eksploratorze logów możesz użyć tego zapytania, aby ograniczyć logi do konkretnego pojazdu:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.delivery_vehicle_id="delivery_vehicle_id"
Filtruj logi według identyfikatora zadania
W eksploratorze logów możesz użyć tego zapytania, aby ograniczyć logi do określonego zadania:
resource.type="fleetengine.googleapis.com/DeliveryFleet"
labels.task_id=~"task_id"
Filtrowanie dzienników pojazdu z wybranego okresu
W eksploratorze logów możesz użyć tego zapytania, aby ograniczyć logi do danych dotyczących pojazdu w danym okresie:
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ę zadań tworzonych w danym okresie.
W konsoli Cloud wybierz Logowanie i Eksplorator logów, aby otworzyć eksplorator 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")
W panelu Wyniki zapytania wybierz menu Działania, a następnie Utwórz wskaźnik.
W oknie „Edytor wskaźników”:
- Podaj nazwę danych (np. billable_tasks).
- Określ opis danych (np. Liczba zadań płatnych).
- Opcję Units (Jednostki) pozostaw pustą. _ W polu Typ pozostaw wartość Licznik.
Następnie kliknij przycisk Utwórz wskaźnik.
Na stronie Wskaźniki oparte na logach powinien pojawić się komunikat potwierdzający, że dane zostały utworzone. Nowy wskaźnik powinien pojawić się w sekcji wskaźników zdefiniowanych przez użytkownika. Wskaźnik będzie teraz wypełniany w miarę generowania pasujących logów.
Wybierz pionowe menu po prawej stronie nowych danych i wybierz Wyświetl w narzędziu Metrics Explorer.
W panelu po lewej stronie w sekcji Build Your Query (Utwórz zapytanie) ustaw typ zasobu na Fleet Engine (Mechanizm floty) i wyszukaj wskaźnik billable_tasks.
Wykres po prawej stronie pokazuje liczbę wywołań rozliczanych w ramach funkcji billable_tasks.
Korzystanie z BigQuery
BigQuery to zaawansowane narzędzie do przeprowadzania analiz. Można jej używać do przechowywania logów długoterminowych i wykonywania na danych doraźnych zapytań podobnych do SQL.
Kierowanie logów do BigQuery
Aby można było korzystać z BigQuery, logi muszą być kierowane do magazynu danych BigQuery w ten sposób:
W konsoli Cloud wybierz Logowanie, a następnie Eksplorator logów.
Utwórz filtr, który izoluje logi Fleet Engine. W Eksploratorze pól logów wybierz typ zasobu Fleetengine.googleapis.com/DeliveryFleet.
W panelu Wyniki zapytania kliknij menu Działania i wybierz Utwórz ujście.
W oknie wyboru usługi ujścia kliknij Zbiór danych BigQuery.
W oknie Edytuj ujście określ te opcje:
- Określ nazwę ujścia (na przykład FleetEngineLogsSink).
- W usłudze ujścia wybierz BigQuery.
- Wybierz opcję Użyj tabel partycjonowanych. Zwiększy to wydajność zapytań.
- W sekcji Miejsce docelowe ujścia wybierz Utwórz nowy zbiór danych BigQuery i podaj nazwę zbioru danych BigQuery (na przykład FleetEngineLogs).
- Kliknij przycisk Utwórz ujście.
Logi powinny teraz zacząć wypełniać zbiór danych BigQuery. Dane są widoczne w sekcji BigQuery w konsoli Cloud.
Kilka tabel w zbiorze danych FleetEngineLogs zostanie uzupełnionych automatycznie, po jednej dla każdego typu logów:
- CreateDeliveryVehicle
- GetDeliveryVehicle
- ListDeliveryVehicle
- UpdateDeliveryVehicle
- CreateTask
- GetTask
- UpdateTask
- ListTasks
Nazwy tabel są zgodne z tym wzorcem:
project_id.data_set.log_name
Jeśli na przykład projekt nazywa się test_project, a nazwa zbioru danych to test_project, tabela CreateTask ma taką nazwę:
test_project.FleetEngineLogs.fleetengine_googleapis_com_create_task
Przykładowe zapytania
W tej sekcji znajdziesz przykłady zapytań, które możesz tworzyć.
Zadania tworzone na godzinę
To zapytanie zlicza liczbę logów CreateTasks i grupuje je według godziny.
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ę
To zapytanie generuje liczbę przystanków obsłużonych przez pojazd z podziałem na godziny.
To zapytanie może np. wskazywać, że w ciągu ostatniej godziny:
- Pojazd A przejechał 10 przystanków w ciągu 12 godzin i 8 przystanków w ciągu godziny 13.
- Pojazd B miał 5 przesiadek w ciągu 11 godzin i 7 przesiadek w ciągu godziny 12.
Pojazd C miał 12 przesiadek w ciągu 13 godzin i 9 przesiadek w ciągu godziny 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 wyświetlenia
Podane niżej zapytanie wskazuje odsetek sukcesu pierwszej próby wyświetlania.
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. Ponadto można tworzyć panele do analizy biznesowej.
Poniższy przykład pokazuje, jak utworzyć panel, na podstawie którego zadania i ruch pojazdów można wizualizować na mapie.
Uruchom nowy panel Studia danych i jako połączenie danych wybierz BigQuery.
Wybierz Zapytanie niestandardowe i wskaż projekt Cloud, do którego ma być ono przypisane.
W polu zapytania wpisz podane niżej 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`
Jako typ wykresu wybierz Mapa bąbelkowa, a potem wybierz pole lokalizacji.
Wybierz Utwórz pole.
Nazwij pole i dodaj tę formułę: CONCAT(lat, ",", lng).
Następnie ustaw typ na Geo->Szerokość, długość geograficzna.
Do panelu możesz dodać elementy sterujące umożliwiające filtrowanie danych. Wybierz np. filtr Zakres dat.
Aby wybrać domyślny zakres dat, edytuj pole zakresu dat.
Możesz dodać dodatkowe elementy sterujące listy w atrybucie „delivery_vehicle_id”.
Za pomocą tych elementów sterujących możesz wizualizować ruch pojazdu lub ruch w dostawie.