遙測資料收集

Firebase 遙測外掛程式會將指標、追蹤記錄和記錄檔匯出至 Google Cloud Observability。本文會詳細說明系統會收集哪些指標、追蹤記錄屬性和記錄,以及延遲、配額和費用的預期情況。

遙測延遲

在 Firebase 中提供特定叫用作業的遙測資料之前,可能會稍微延遲。這取決於匯出間隔 (預設為 5 分鐘)。

配額與限制

請注意以下幾項重要的配額:

費用

Cloud Logging、Cloud Trace 和 Cloud Monitoring 提供豐富的免費方案。如要瞭解具體價格,請點選下列連結:

指標

Firebase 追蹤記錄外掛程式會收集多種不同的指標,以支援下文詳述的各種 Genkit 動作類型。

功能指標

功能是 Genkit 程式碼的頂層進入點。在大多數情況下,這會是流程。否則,這會是追蹤記錄中位於最上方的跨度。

名稱 類型 說明
genkit/feature/requests 計數器 要求數量
genkit/feature/latency 直方圖 執行延遲時間 (以毫秒為單位)

每項功能指標都包含下列維度:

名稱 說明
名稱 功能名稱。在大多數情況下,這是頂層 Genkit 流程
狀態 視功能要求是否成功而定,傳回「成功」或「失敗」
錯誤 只有在 status=failure 時才會設定。包含導致失敗的錯誤類型
來源 Genkit 原文語言。例如:'ts'
sourceVersion Genkit 架構版本

動作指標

動作代表 Genkit 中的一般執行步驟。系統會追蹤下列指標:

名稱 類型 說明
genkit/action/requests 計數器 這項動作的執行次數
genkit/action/latency 直方圖 執行延遲時間 (以毫秒為單位)

每項行動指標都包含下列維度:

名稱 說明
名稱 動作名稱
featureName 正在執行的父項功能名稱
路徑 從功能根目錄到此動作的執行路徑,例如'/myFeature/parentAction/thisAction'
狀態 視動作是否成功而定,傳回「成功」或「失敗」
錯誤 只有在 status=failure 時才會設定。包含導致失敗的錯誤類型
來源 Genkit 原文語言。例如:'ts'
sourceVersion Genkit 架構版本

產生指標

這些是與與模型互動的動作相關的特殊動作指標。除了要求和延遲時間之外,系統也會追蹤輸入和輸出,並提供模型專屬維度,方便您進行偵錯和設定調整。

名稱 類型 說明
genkit/ai/generate/requests 計數器 這個模型的呼叫次數
genkit/ai/generate/latency 直方圖 執行延遲時間 (以毫秒為單位)
genkit/ai/generate/input/tokens 計數器 輸入內容詞元
genkit/ai/generate/output/tokens 計數器 輸出內容詞元
genkit/ai/generate/input/characters 計數器 輸入字元
genkit/ai/generate/output/characters 計數器 輸出字元
genkit/ai/generate/input/images 計數器 輸入內容圖片
genkit/ai/generate/output/images 計數器 輸出圖片
genkit/ai/generate/input/audio 計數器 輸入音訊檔案
genkit/ai/generate/output/audio 計數器 輸出音訊檔案

每個產生指標都包含下列維度:

名稱 說明
modelName 模型名稱
featureName 正在執行的父項功能名稱
路徑 從功能根目錄到此動作的執行路徑,例如'/myFeature/parentAction/thisAction'
latencyMs 模型的回應時間
狀態 視功能要求是否成功而定,傳回「成功」或「失敗」
錯誤 只有在 status=failure 時才會設定。包含導致失敗的錯誤類型
來源 Genkit 原文語言。例如:'ts'
sourceVersion Genkit 架構版本

追蹤記錄

所有 Genkit 動作都會自動檢測,為 AI 功能提供詳細追蹤記錄。在本機上,您可以在開發人員 UI 中查看追蹤記錄。針對已部署的應用程式,啟用 Firebase Genkit Monitoring 即可獲得相同程度的資訊可視性。

以下各節將說明,根據追蹤記錄中特定跨距的 Genkit 動作類型,您可以預期的追蹤記錄屬性。

根時距

根區間具有特殊屬性,可協助區分整個追蹤記錄與個別區間的狀態屬性。

屬性名稱 說明
genkit/feature 正在執行的父項功能名稱
genkit/isRoot 如果這個區間是根區間,則標示為 true
genkit/rootState 整體執行作業的狀態為 successerror。這並不表示這個步驟特別失敗。

心流狀態

屬性名稱 說明
genkit/input 流程的輸入內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/metadata/subtype Genkit 動作的類型。對於資料流,則是 flow
genkit/name 這個 Genkit 動作的名稱。在本例中,是流程的名稱
genkit/output 流程中產生的輸出內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/path 導致追蹤記錄中這個步驟的完整執行路徑,包括類型資訊。
genkit/state 這個區間的執行狀態為 successerror
genkit/type 與此區間相對應的 Genkit 原始類型。對於流程,則為 action

Util

屬性名稱 說明
genkit/input 提供給 util 的輸入內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/name 這個 Genkit 動作的名稱。在本例中,是流程的名稱
genkit/output 在 util 中產生的輸出內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/path 導致追蹤記錄中這個步驟的完整執行路徑,包括類型資訊。
genkit/state 這個區間的執行狀態為 successerror
genkit/type 與此區間相對應的 Genkit 原始類型。對於流程,則為 util

模型

屬性名稱 說明
genkit/input 模型的輸入內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/metadata/subtype Genkit 動作的類型。對於模型來說,就是 model
genkit/model 模型名稱。
genkit/name 這個 Genkit 動作的名稱。在本例中,是模型的名稱。
genkit/output 模型產生的輸出內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/path 導致追蹤記錄中這個步驟的完整執行路徑,包括類型資訊。
genkit/state 這個區間的執行狀態為 successerror
genkit/type 與此區間相對應的 Genkit 原始類型。對於流程,則為 action

工具

屬性名稱 說明
genkit/input 模型的輸入內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/metadata/subtype Genkit 動作的類型。工具的權限為 tool
genkit/name 這個 Genkit 動作的名稱。在本例中,是模型的名稱。
genkit/output 模型產生的輸出內容。由於追蹤記錄屬性大小有限制,因此這個值一律會是 <redacted>
genkit/path 導致追蹤記錄中這個步驟的完整執行路徑,包括類型資訊。
genkit/state 這個區間的執行狀態為 successerror
genkit/type 與此區間相對應的 Genkit 原始類型。對於流程,則為 action

記錄

如果已部署的應用程式使用 Firebase Genkit 監控功能,則記錄可用於擷取輸入、輸出和設定的結構描述,提供 AI 功能中各個步驟的詳細資訊。

所有記錄都會包含下列共用中繼資料欄位:

欄位名稱 說明
insertId 記錄項目的專屬 ID
jsonPayload 容納每個記錄類型專屬變數資訊
標籤 {module: genkit}
logName projects/weather-gen-test-next/logs/genkit_log
receivedTimestamp Cloud 收到記錄的時間
資源 記錄來源的相關資訊,包括部署資訊區域和 projectId
嚴重性 寫入的記錄層級。參閱 Cloud 的 LogSeverity
spanId 建立此記錄的區間 ID
時間戳記 用戶端記錄訊息的時間
trace 追蹤記錄的 ID,格式為 projects/<project-id>/traces/<trace-id>
traceSampled 布林值,表示是否已對追蹤記錄進行取樣。系統不會對記錄進行取樣。

每個記錄類型都會有不同的 JSON 酬載,請參閱各節的說明。

輸入

JSON 酬載:

欄位名稱 說明
訊息 [genkit] Input[<path>, <featureName>] 包括 (message X of N) (適用於多部分郵件)
中繼資料 其他背景資訊,包括傳送至動作的輸入訊息

中繼資料:

欄位名稱 說明
內容 傳送至此 Genkit 動作的輸入訊息內容
featureName Genkit 流程、動作、工具、util 或輔助程式的名稱。
messageIndex * 索引,指出包含多個訊息的輸入內容的訊息順序。對於單一訊息,這個值一律為 0。
型號 * 型號名稱。
路徑 產生此記錄的執行路徑,格式為 step1 > step2 > step3
partIndex * 索引,指出多部分郵件中郵件部分的順序。在單一輸入內容中結合文字和圖片時,通常會發生這種情況。
qualifiedPath 產生此記錄的執行路徑,包括格式為 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 的類型資訊
totalMessages * 此輸入內容的訊息總數。對於單一訊息,這個值一律為 1。
totalParts * 此訊息的部分總數。對於單一部分的訊息,這個值一律為 1。

(*) 標有星號的項目只會顯示在模型互動輸入記錄中。

輸出

JSON 酬載:

欄位名稱 說明
訊息 [genkit] Output[<path>, <featureName>] 包括 (message X of N) (適用於多部分郵件)
中繼資料 其他背景資訊,包括傳送至動作的輸入訊息

中繼資料:

欄位名稱 說明
candidateIndex * (已淘汰) 用於表示包含多個候選項目的輸出內容候選項目順序的索引。對於只有單一候選項目的記錄,這個值一律為 0。
內容 Genkit 動作產生的輸出訊息
featureName Genkit 流程、動作、工具、util 或輔助程式的名稱。
messageIndex * 索引,指出包含多個訊息的輸入內容的訊息順序。對於單一訊息,這個值一律為 0。
型號 * 型號名稱。
路徑 產生此記錄的執行路徑,格式為「step1 > step2 > step3
partIndex * 索引,指出多部分郵件中郵件部分的順序。在單一輸出內容中結合文字和圖片時,通常會發生這種情況。
qualifiedPath 產生此記錄的執行路徑,包括格式為 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 的類型資訊
totalCandidates * (已淘汰) 產生為輸出的候選項總數。對於單一候選訊息,這個值一律為 1。
totalParts * 此訊息的部分總數。對於單一部分的訊息,這個值一律為 1。

(*) 標有星號的項目只會顯示在模型互動輸出記錄中。

設定

JSON 酬載:

欄位名稱 說明
訊息 [genkit] Config[<path>, <featureName>]
中繼資料 其他背景資訊,包括傳送至動作的輸入訊息

中繼資料:

欄位名稱 說明
featureName Genkit 流程、動作、工具、util 或輔助程式的名稱。
模型 型號名稱。
路徑 產生此記錄的執行路徑,格式為「step1 > step2 > step3
qualifiedPath 產生此記錄的執行路徑,包括格式為 /{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 的類型資訊
來源 使用的 Genkit 程式庫語言。這個值一律會設為 'ts',因為這是唯一支援的語言。
sourceVersion Genkit 程式庫版本。
溫度 使用的模型溫度。

路徑

JSON 酬載:

欄位名稱 說明
訊息 [genkit] Paths[<path>, <featureName>]
中繼資料 其他背景資訊,包括傳送至動作的輸入訊息

中繼資料:

欄位名稱 說明
flowName Genkit 流程、動作、工具、util 或輔助程式的名稱。
路徑 陣列,其中包含所收集區段的所有執行路徑。

Firebase gives you the tools and infrastructure you need to build better mobile and web apps, improve app quality, and grow your business.

更新時間:Aug 29, 2024

See upcoming events and explore all the great content from past events

更新時間:Oct 3, 2024

Developer documentation for Firebase

更新時間:Feb 28, 2025