Zbieranie danych telemetrycznych

Wtyczka telemetrii Firebase eksportuje kombinację danych, śladów i dzienników do Google Cloud Observability. W tym dokumencie znajdziesz szczegółowe informacje o tym, które dane, atrybuty śledzenia i  logi będą zbierane, a także o tym, czego możesz się spodziewać w zakresie opóźnień, limitów i kosztów.

Opóźnienie danych telemetrycznych

Może minąć trochę czasu, zanim telemetria z danego wywołania będzie dostępna w Firebase. To zależy od interwału eksportu (domyślnie 5 minut).

Limity

Należy pamiętać o kilku ważnych limitach:

Koszt

Usługi Cloud Logging, Cloud Trace i Cloud Monitoring mają obszerne bezpłatne poziomy. Szczegółowe ceny znajdziesz pod tymi linkami:

Dane

Wtyczka telemetryi Firebase zbiera różne dane, aby obsługiwać różne typy działań Genkit wymienione w następnych sekcjach.

Dane o cechach

Funkcje to najwyższy poziom dostępu do kodu Genkit. W większości przypadków będzie to przepływ. W przeciwnym razie będzie to najwyższy przedział w śladzie.

Nazwa Typ Opis
genkit/feature/requests Licznik Liczba żądań
genkit/feature/latency Histogram Czas oczekiwania w ms

Każdy rodzaj danych zawiera te wymiary:

Nazwa Opis
nazwa Nazwa funkcji. W większości przypadków jest to najwyższy poziom Genkit
status „success” (udało się) lub „failure” (nie udało się) w zależności od tego, czy udało się dodać funkcję.
błąd Ustawiany tylko wtedy, gdy status=failure. Zawiera typ błędu, który spowodował błąd.
źródło Język źródłowy Genkit. 'ts'
sourceVersion Wersja platformy Genkit

Dane o działaniach

Działania to ogólny krok wykonania w Genkit. Każdy z tych kroków będzie śledzony pod kątem tych danych:

Nazwa Typ Opis
genkit/action/requests Licznik Liczba przypadków wykonania tej czynności
genkit/action/latency Histogram Czas oczekiwania w ms

Każdy rodzaj danych o działaniach zawiera te wymiary:

Nazwa Opis
nazwa Nazwa działania
featureName Nazwa nadrzędnej funkcji, która jest wykonywana
ścieżka Ścieżka wykonania od katalogu głównego funkcji do tego działania, np. '/myFeature/parentAction/thisAction'
status „success” (skuteczne) lub „failure” (nieskuteczne) w zależności od tego, czy działanie zostało wykonane.
błąd Ustawiany tylko wtedy, gdy status=failure. Zawiera typ błędu, który spowodował błąd.
źródło Język źródłowy Genkit. 'ts'
sourceVersion Wersja platformy Genkit

Generowanie danych

Są to specjalne dane o działaniach związanych z działaniami, które wchodzą w interakcję z modelem. Oprócz żądań i opóźnień śledzone są też dane wejściowe i wyjściowe, a także wymiary specyficzne dla modelu, które ułatwiają debugowanie i dostrajanie konfiguracji.

Nazwa Typ Opis
genkit/ai/generate/requests Licznik Liczba wywołań tego modelu
genkit/ai/generate/latency Histogram Czas oczekiwania w ms
genkit/ai/generate/input/tokens Licznik Tokeny wejściowe
genkit/ai/generate/output/tokens Licznik Tokeny wyjściowe
genkit/ai/generate/input/characters Licznik Wprowadzanie znaków
genkit/ai/generate/output/characters Licznik Znaki wyjściowe
genkit/ai/generate/input/images Licznik Obrazy wejściowe
genkit/ai/generate/output/images Licznik Obrazy wyjściowe
genkit/ai/generate/input/audio Licznik Wprowadzanie plików audio
genkit/ai/generate/output/audio Licznik Pliki wyjściowe

Każdy rodzaj danych zawiera te wymiary:

Nazwa Opis
modelName Nazwa modelu
featureName Nazwa nadrzędnej funkcji, która jest wykonywana
ścieżka Ścieżka wykonania od katalogu głównego funkcji do tego działania, np. '/myFeature/parentAction/thisAction'
latencyMs Czas odpowiedzi modelu
status „success” (udało się) lub „failure” (nie udało się) w zależności od tego, czy udało się dodać funkcję.
błąd Ustawiany tylko wtedy, gdy status=failure. Zawiera typ błędu, który spowodował błąd.
źródło Język źródłowy Genkit. 'ts'
sourceVersion Wersja platformy Genkit

Logi czasu

Wszystkie działania Genkit są automatycznie instrumentowane, aby zapewnić szczegółowe śledzenie funkcji AI. Ścieżki są widoczne lokalnie w interfejsie dla deweloperów. W przypadku wdrożenia aplikacji włącz Monitorowanie Genkit Firebase, aby uzyskać ten sam poziom widoczności.

W sekcjach poniżej opisujemy atrybuty śledzenia, których możesz się spodziewać w zależności od typu działania Genkit w konkretnym fragmencie ścieżki.

Spany główne

Przedziały główne mają specjalne atrybuty, które pomagają rozróżnić atrybuty stanu dotyczące całego prześledzenia od atrybutów stanu dotyczących pojedynczego przedziału.

Nazwa atrybutu Opis
genkit/feature Nazwa nadrzędnej funkcji, która jest wykonywana
genkit/isRoot Oznaczone jako true, jeśli ten element jest elementem głównym.
genkit/rootState Stan ogólnego wykonania jako success lub error. Nie oznacza to, że ten krok nie powiódł.

Płynięcie

Nazwa atrybutu Opis
genkit/input Dane wejściowe przepływu. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/metadata/subtype Typ działania Genkit. W przypadku przepływów będzie to flow.
genkit/name Nazwa tej akcji Genkit. W tym przypadku nazwa przepływu
genkit/output Dane wyjściowe wygenerowane w przepływie. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/ścieżka Pełna ścieżka wykonania, która prowadzi do tego kroku w śladzie, w tym informacje o typie.
genkit/state Stan wykonania tego elementu: success lub error.
genkit/type Typ prymitywu Genkit odpowiadający temu zakresowi. W przypadku przepływów jest to action.

Util

Nazwa atrybutu Opis
genkit/input Dane wejściowe dla funkcji. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/name Nazwa tej akcji Genkit. W tym przypadku nazwa przepływu
genkit/output Dane wyjściowe wygenerowane w util. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/ścieżka Pełna ścieżka wykonania, która prowadzi do tego kroku w śladzie, w tym informacje o typie.
genkit/state Stan wykonania tego elementu: success lub error.
genkit/type Typ prymitywu Genkit odpowiadający temu zakresowi. W przypadku przepływów jest to util.

Model

Nazwa atrybutu Opis
genkit/input Dane wejściowe modelu. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/metadata/subtype Typ działania Genkit. W przypadku modeli będzie to model.
genkit/model Nazwa modelu.
genkit/name Nazwa tej akcji Genkit. W tym przypadku nazwa modelu.
genkit/output Dane wyjściowe wygenerowane przez model. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/ścieżka Pełna ścieżka wykonania, która prowadzi do tego kroku w śladzie, w tym informacje o typie.
genkit/state Stan wykonania tego elementu: success lub error.
genkit/type Typ prymitywu Genkit odpowiadający temu zakresowi. W przypadku przepływów jest to action.

Narzędzie

Nazwa atrybutu Opis
genkit/input Dane wejściowe modelu. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/metadata/subtype Typ działania Genkit. W przypadku narzędzi jest to tool.
genkit/name Nazwa tej akcji Genkit. W tym przypadku nazwa modelu.
genkit/output Dane wyjściowe wygenerowane przez model. Zawsze będzie to <redacted> z powodu limitów rozmiaru atrybutów ścieżki.
genkit/ścieżka Pełna ścieżka wykonania, która prowadzi do tego kroku w śladzie, w tym informacje o typie.
genkit/state Stan wykonania tego elementu: success lub error.
genkit/type Typ prymitywu Genkit odpowiadający temu zakresowi. W przypadku przepływów jest to action.

Logi

W przypadku wdrożenia aplikacji z wykorzystaniem Firebase Genkit Monitoring stosowane są dzienniki, które służą do rejestrowania metadanych dotyczących danych wejściowych, danych wyjściowych i konfiguracji. Zapewniają one szczegółowe informacje o każdym kroku funkcji AI.

Wszystkie logi będą zawierać te wspólne pola metadanych:

Nazwa pola Opis
insertId Unikalny identyfikator wpisu dziennika
jsonPayload kontener na informacje o zmiennych, które są unikalne dla każdego typu dziennika;
etykiety {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Czas otrzymania dziennika przez Cloud
zasób Informacje o źródle pliku dziennika, w tym region informacji o wdrożeniu i identyfikator projektu (projectId)
wagi, Zapisywany poziom logowania. Zapoznaj się z poważnymi logami w Google Cloud.
spanId Identyfikator zakresu, który utworzył ten dziennik
sygnatura czasowa Czas, w którym klient wysłał wiadomość
ślad Identyfikator ścieżki w formacie projects/<project-id>/traces/<trace-id>
traceSampled Wartość logiczna wskazująca, czy ślad został próbkowany. Logi nie są próbkowane.

Każdy typ dziennika będzie miał inny ładunek JSON opisany w każdej sekcji.

Dane wejściowe

Ładunek JSON:

Nazwa pola Opis
wiadomość [genkit] Input[<path>, <featureName>], w tym (message X of N) w przypadku wiadomości wieloczęściowych
metadane Dodatkowy kontekst, w tym wiadomość z danymi wejściowymi wysłana do działania

Metadane:

Nazwa pola Opis
treść Treść wiadomości wejściowej wysłanej do tej akcji Genkit
featureName Nazwa procesu, działania, narzędzia, narzędzia pomocniczego lub pomocnika Genkit.
messageIndex * Indeks wskazujący kolejność wiadomości w przypadku danych wejściowych zawierających wiele wiadomości. W przypadku pojedynczych wiadomości wartość ta zawsze wynosi 0.
model * Nazwa modelu.
ścieżka Ścieżka wykonania, która wygenerowała ten dziennik w formacie step1 > step2 > step3
partIndex * Indeks wskazujący kolejność części w wiadomościach wieloczęściowych. Jest to typowe, gdy łączysz tekst i obrazy w jednym wejściu.
qualifiedPath Ścieżka wykonania, która wygenerowała ten dziennik, w tym informacje o typie w formacie: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalMessages * Łączna liczba wiadomości dla tego wejścia. W przypadku pojedynczych wiadomości wartość ta zawsze wynosi 1.
totalParts * Łączna liczba części tego komunikatu. W przypadku wiadomości jednoczęściowych wartość ta zawsze wynosi 1.

(*) Elementy oznaczone gwiazdką znajdują się tylko w dziennikach danych wejściowych w przypadku interakcji z modelem.

Wyniki

Ładunek JSON:

Nazwa pola Opis
wiadomość [genkit] Output[<path>, <featureName>], w tym (message X of N) w przypadku wiadomości wieloczęściowych
metadane Dodatkowy kontekst, w tym wiadomość z danymi wejściowymi wysłana do działania

Metadane:

Nazwa pola Opis
candidateIndex * (wycofany) Indeks wskazujący kolejność kandydatów w przypadku danych wyjściowych zawierających wielu kandydatów. W przypadku dzienników z jednym kandydatem wartość ta zawsze wynosi 0.
treść Komunikat wyjściowy wygenerowany przez działanie Genkit
featureName Nazwa procesu, działania, narzędzia, narzędzia pomocniczego lub pomocnika Genkit.
messageIndex * Indeks wskazujący kolejność wiadomości w przypadku danych wejściowych zawierających wiele wiadomości. W przypadku pojedynczych wiadomości wartość ta zawsze wynosi 0.
model * Nazwa modelu.
ścieżka Ścieżka wykonania, która wygenerowała ten plik dziennika w formacie „krok1 > krok2 > krok3
partIndex * Indeks wskazujący kolejność części w wiadomościach wieloczęściowych. Jest to typowe, gdy łączysz tekst i obrazy w jednym wyjściu.
qualifiedPath Ścieżka wykonania, która wygenerowała ten dziennik, w tym informacje o typie w formacie: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
totalCandidates * (wycofane) Łączna liczba kandydatów wygenerowanych jako dane wyjściowe. W przypadku wiadomości dotyczących jednego kandydata wartość ta zawsze wynosi 1.
totalParts * Łączna liczba części tego komunikatu. W przypadku wiadomości jednoczęściowych wartość ta zawsze wynosi 1.

(*) Elementy oznaczone gwiazdką znajdują się tylko w dziennikach danych wyjściowych interakcji z modelem.

Konfiguracja

Ładunek JSON:

Nazwa pola Opis
wiadomość [genkit] Config[<path>, <featureName>]
metadane Dodatkowy kontekst, w tym wiadomość z danymi wejściowymi wysłana do działania

Metadane:

Nazwa pola Opis
featureName Nazwa procesu, działania, narzędzia, narzędzia pomocniczego lub pomocnika Genkit.
model Nazwa modelu.
ścieżka Ścieżka wykonania, która wygenerowała ten plik dziennika w formacie „krok1 > krok2 > krok3
qualifiedPath Ścieżka wykonania, która wygenerowała ten dziennik, w tym informacje o typie w formacie: /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model
źródło Język biblioteki Genkit. Zawsze będzie ustawiona wartość „ts”, ponieważ jest to jedyny obsługiwany język.
sourceVersion Wersja biblioteki Genkit.
temperatura Używana temperatura modelu.

Ścieżki

Ładunek JSON:

Nazwa pola Opis
wiadomość [genkit] Paths[<path>, <featureName>]
metadane Dodatkowy kontekst, w tym wiadomość z danymi wejściowymi wysłana do działania

Metadane:

Nazwa pola Opis
flowName Nazwa procesu, działania, narzędzia, narzędzia pomocniczego lub pomocnika Genkit.
ścieżki Tablica zawierająca wszystkie ścieżki wykonania zebranych zakresów.