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 „default” 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 nieograniczone dane w pliku „domyślnym” 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 „default” pozwala zapewnić obrazu wykorzystania danych w ograniczonym i nieograniczonym zakresie.
Wyślij wszystkie pozostałe dane dziennika bez ograniczeń do „domyślnego” do zasobnika, pozostaną bezterminowe.
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łącz 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"
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
- W konsoli Google Cloud otwórz stronę Router logów.
- Zaktualizuj zasobnik logowania _Default, aby wykluczyć logi o ograniczonym wykorzystaniu.
- Wybierz zasobnik logowania _Default, a następnie kliknij Edytuj ujście.
- Na stronie „Wybierz logi do odfiltrowania z ujścia” kliknij przycisk Dodaj
Wykluczenie” przycisk:
- Nazwa filtra wykluczeń: WykluczRestrictedLogs
- Filtr wykluczeń: label.restriction="TOS_RESTRICTED"
- Kliknij „Zaktualizuj ujście”.
- Zaktualizuj zasobnik logowania z ograniczonym dostępem, aby przechowywać logi o ograniczonym wykorzystaniu.
- Na stronie Router logów wybierz „Utwórz ujście”.
- Utwórz ujście z następującymi ustawieniami:
- Szczegóły ujścia:
- Nazwa: RestrictedLogs
- Opis: logi ograniczonego użycia Fleet Engine
- Miejsce docelowe ujścia:
- Usługa ujścia: zasobnik Logging
- Wybierz zasobnik logów: utwórz nowy zasobnik logów
- Nazwa: Zastrzeżony
- 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ścia: pozostaw puste
- Logi, które mają być odfiltrowywane z ujścia: kliknij „Dodaj wykluczenie”
- Nazwa filtra wykluczeń: ExcludeNonRestrictedLogs
- 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:
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:
- 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 produktów.
- 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": {
"response": {
"matches": [
{
// ...
"vehicle": {
"name": "providers/test-123/vehicles/test-vehicle-0",
// ...
}
},
{
// ...
"vehicle": {
"name": "providers/test-123/vehicles/test-vehicle-1",
// ...
}
}
]
},
"@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
"request": {
"searchTripTypes": [
"EXCLUSIVE_TRIP"
],
"pickupPoint": {},
"count": 50,
"pickupRadiusMeters": 400,
"minimumCapacity": 1,
"matchOrderBy": "PICKUP_POINT_ETA",
"vehicleTypes": [
{
"vehicleCategory": "TAXI"
}
]
}
},
"resource": {
"type": "fleetengine.googleapis.com/Fleet",
"labels": {
"resource_container": "projects/test-123",
"location": "global"
}
},
// Same timestamp
"timestamp": "2024-02-06T22:48:50.620713Z",
"logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
"receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
"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": {
"response": {
"matches": [
{},{} // Previous matches appear as empty objects
{
// ...
"vehicle": {
"name": "providers/test-123/vehicles/test-vehicle-2",
// ...
},
}
]
},
"@type": "type.googleapis.com/maps.fleetengine.v1.SearchVehiclesLog",
"request": {
"searchTripTypes": [
"EXCLUSIVE_TRIP"
],
"pickupPoint": {},
"count": 50,
"pickupRadiusMeters": 400,
"minimumCapacity": 1,
"matchOrderBy": "PICKUP_POINT_ETA",
"vehicleTypes": [
{
"vehicleCategory": "TAXI"
}
]
}
},
"resource": {
"type": "fleetengine.googleapis.com/Fleet",
"labels": {
"resource_container": "projects/test-123",
"location": "global"
}
},
// Same timestamp
"timestamp": "2024-02-06T22:48:50.620713Z",
"logName": "projects/test-123/logs/fleetengine.googleapis.com%2Fsearch_vehicles",
"receiveTimestamp": "2024-02-06T22:48:52.006308491Z",
"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"
severity=ERROR
Aby wyświetlić logi RPC wykonane za pomocą metody UpdateVehicle
dla
przykładowego-projektu-projektu, użyj tego zapytania eksploratora logów:
logName="projects/project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle"
Poniższy przykład zawiera wpis logu do wpisu w UpdateVehicle
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.UpdateVehicleLog"
},
"resource": {
"type": "fleetengine.googleapis.com/Fleet",
"labels": {2}
},
"timestamp": "2021-01-01T00:00:00.000000000Z",
"labels": {2},
"logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
"receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
}
Jeśli zostanie zwrócony błąd RPC, pole responseVehicle
ma wartość
wyczyszczono, a pole errorResponse
zostało ustawione i wypełnione w jsonPayload
:
{
"insertId": "c6b85fbc927343fc8a85338c57a65733",
"jsonPayload": {
"errorResponse": {
"httpStatusCode": 404,
"code": "NOT_FOUND",
"message": "No entity with id invalidVehicleId exists"
},
"@type": "type.googleapis.com/maps.fleetengine.v1.UpdateVehicleLog",
"request": {
"vehicle": {3},
"updateMask": "deviceSettings",
"vehicleId": "fakeVehicleId",
"header": {4}
}
},
"resource": {
"type": "fleetengine.googleapis.com/Fleet",
"labels": {2}
},
"timestamp": "2021-01-01T00:00:00.000000000Z",
"severity": "ERROR",
"labels": {2}
"logName": "projects/example-project-id/logs/fleetengine.googleapis.com%2Fupdate_vehicle",
"receiveTimestamp": "2021-01-01T00:00:00.000000000Z"
}
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 dzienniki
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 API są oznaczone identyfikatorem wycieczki i identyfikator pojazdu. Możesz użyć tych etykiet do wyboru dzienników podróży lub pojazdów które Cię interesują.
Filtruj dzienniki według identyfikatora pojazdu
W eksploratorze logów możesz użyć poniższego zapytania, aby ograniczyć logi do konkretny pojazd:
resource.type="fleetengine.googleapis.com/Fleet"
labels.vehicle_id="vehicle_id"
Filtruj logi według identyfikatora podróży
W eksploratorze logów możesz użyć poniższego zapytania, aby ograniczyć logi do konkretna podróż:
resource.type="fleetengine.googleapis.com/Fleet"
labels.trip_id=~"trip_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/Fleet"
labels.vehicle_id="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ę podróży utworzonych na przestrzeni czasu.
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="audited_resource" resource.labels.method="maps.fleetengine.v1.TripService.ReportBillableTrip"
W panelu Wyniki zapytania kliknij menu Działania, a następnie wybierz Utwórz wskaźnik.
W oknie edytora wskaźników:
- Podaj nazwę danych (np. billable_trips).
- Określ opis danych (na przykład Liczba podróży podlegających rozliczeniu ).
- Pozostaw opcję Units (Jednostki) pustą. _ Zostaw jako opcję Typ wartość. Licznik.
Następnie kliknij przycisk Utwórz wskaźnik.
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.
Wybierz pionowe menu po prawej stronie nowych danych, a następnie wybierz Wyświetl w narzędziu Metrics Explorer.
W panelu po lewej stronie w sekcji Utwórz zapytanie ustaw typ zasobu na Flota wyszukiwarki i wyszukaj dane podlegające rozliczeniu.
Wykres po prawej stronie pokazuje współczynnik wywołań billable_trips.
Używaj 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:
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/Fleet.
W panelu Wyniki zapytania kliknij menu Działania i wybierz Utwórz Ujście.
W oknie Wybierz usługę ujścia wybierz Zbiór danych BigQuery.
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.
Logi powinny teraz zacząć wypełniać zbiór danych BigQuery. Możesz zobaczyć, w sekcji BigQuery w konsoli Cloud.
Kilka tabel w zbiorze danych FleetEngineLogs zostanie uzupełnionych automatycznie, po jednym na każdy typ dziennika:
- CreateVehicle
- GetVehicle
- ListVehicles
- SearchVehicles
- UpdateVehicle
- CreateTrip
- GetTrip
- UpdateTrip
- ListTrips
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 CreateTrip ma tę nazwę:
test_project.FleetEngineLogs.fleetengine_googleapis_com_create_trip
Przykładowe zapytania
W tej sekcji znajdziesz przykłady zapytań, które możesz utworzyć.
Podróże utworzone na godzinę
To zapytanie zlicza liczbę logów CreateTrips i grupuje je według godz.
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
Liczba przesiadek na pojazd na godzinę
Kolejne zapytanie generuje liczbę przystanków, w których został obsłużony, uszkodzony pojazd spadek o godzinę.
Na przykład zapytanie to może wskazać, ż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_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
Panele Studia danych
BigQuery można zintegrować z narzędziami do analityki biznesowej. Panele mogą które można utworzyć na potrzeby analityki biznesowej.
Przykład poniżej pokazuje, jak utworzyć panel, na których pasach i pojazdach ruch można zwizualizować na mapie.
Uruchom nowy panel Studia danych i wybierz BigQuery jako dane. połączenia.
Wybierz zapytanie niestandardowe i wybierz projekt Cloud, do którego ma być przypisana rozliczono.
Wpisz podane niżej zapytanie w polu zapytania.
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.FleetEngineLogs.fleetengine_googleapis_com_update_vehicle`
Jako typ wykresu wybierz Mapa bąbelkowa, a następnie wybierz pole lokalizacji.
Wybierz Utwórz pole.
Nazwij to pole i dodaj tę formułę: CONCAT(lat, ",", lng).
Następnie ustaw typ na Geo->szerokość geograficzna, długość geograficzna.
Do panelu możesz dodać elementy sterujące, aby filtrować dane. Na przykład wybierz filtrem zakresu dat.
Aby wybrać domyślny zakres dat, edytuj pole zakresu dat.
Możesz dodać więcej elementów sterujących rozwijaną listą dla pojazdu_id.
Za pomocą tych elementów sterujących możesz wizualizować ruch pojazdu lub ruch w trakcie podróży.