遙測資料收集

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 或輔助程式的名稱。
路徑 陣列,其中包含所收集區段的所有執行路徑。