Firebase テレメトリー プラグインは、指標、トレース、ログの組み合わせを Google Cloud Observability にエクスポートします。このドキュメントでは、収集される指標、トレース属性、ログの詳細と、レイテンシ、割り当て、費用に関する予想について説明します。
テレメトリーの遅延
特定の呼び出しからのテレメトリが Firebase で利用可能になるまでに少し時間がかかることがあります。これは、エクスポート間隔(デフォルトは 5 分)によって異なります。
割り当てと上限
以下に示す割り当ての上限に注意してください。
費用
Cloud Logging、Cloud Trace、Cloud Monitoring には無料枠が十分に用意されています。具体的な料金については、次のリンクをご覧ください。
指標
Firebase テレメトリー プラグインは、次のセクションで詳しく説明するさまざまな Genkit アクション タイプをサポートするために、さまざまな指標を収集します。
特徴指標
特徴は、Genkit コードの最上位のエントリ ポイントです。ほとんどの場合、これはフローになります。それ以外の場合は、トレース内の最上位のスパンになります。
名前 | 型 | 説明 |
---|---|---|
genkit/feature/requests | カウンタ | リクエスト数 |
genkit/feature/latency | ヒストグラム | 実行レイテンシ(ミリ秒) |
各特徴指標には、次のディメンションが含まれています。
名前 | 説明 |
---|---|
name | 機能の名前。ほとんどの場合、これはトップレベルの Genkit フローです。 |
ステータス | 機能リクエストが成功したかどうかに応じて「success」または「failure」 |
エラー | status=failure の場合にのみ設定されます。障害の原因となったエラーの種類が含まれます。 |
ソース | Genkit のソース言語。例: 'ts' |
sourceVersion | Genkit フレームワークのバージョン |
アクションの指標
アクションは、Genkit 内の実行の一般的なステップを表します。これらの各ステップでは、次の指標が追跡されます。
名前 | 型 | 説明 |
---|---|---|
genkit/action/requests | カウンタ | このアクションが実行された回数 |
genkit/action/latency | ヒストグラム | 実行レイテンシ(ミリ秒) |
各アクション指標には、次のディメンションが含まれます。
名前 | 説明 |
---|---|
name | アクションの名前 |
featureName | 実行中の親機能の名前 |
パス | 特徴ルートからこのアクションへの実行パス。例: '/myFeature/parentAction/thisAction' |
ステータス | アクションが成功したかどうかに応じて「success」または「failure」 |
エラー | 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 | モデルがレスポンスに要した時間 |
ステータス | 機能リクエストが成功したかどうかに応じて「success」または「failure」 |
エラー | status=failure の場合にのみ設定されます。障害の原因となったエラーの種類が含まれます。 |
ソース | Genkit のソース言語。例: 'ts' |
sourceVersion | Genkit フレームワークのバージョン |
トレース
すべての Genkit アクションは、AI 機能の詳細なトレースを提供するために自動的に計測されます。ローカルでは、トレースはデベロッパー UI に表示されます。デプロイ済みのアプリの場合は、Firebase Genkit Monitoring を有効にして、同じレベルの可視性を確保します。
以降のセクションでは、トレース内の特定のスパンに対する Genkit アクション タイプに基づいて、どのようなトレース属性が期待できるかについて説明します。
ルートスパン
ルートスパンは、個々のスパンとトレース全体の状態属性の曖昧さを解消するために、特別な属性を持ちます。
属性名 | 説明 |
---|---|
genkit/feature | 実行中の親機能の名前 |
genkit/isRoot | このスパンがルートスパンでない場合は false、ルートスパンでの場合は true に設定されます |
genkit/rootState | 全体的な実行の状態(success または error )。これは、このステップが特に失敗したことを示すものではありません。 |
フロー
属性名 | 説明 |
---|---|
genkit/input | フローへの入力。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/metadata/subtype | Genkit アクションのタイプ。フローの場合は flow です。 |
genkit/name | この Genkit アクションの名前。この場合、フローの名前 |
genkit/output | フロー内で生成された出力。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/path | トレース内のこのステップに至る完全修飾実行パス(型情報を含む)。 |
genkit/state | このスパンの実行状態(success または error )。 |
genkit/type | このスパンに相当する Genkit プリミティブのタイプ。フローの場合は action です。 |
Util
属性名 | 説明 |
---|---|
genkit/input | ユーティリティへの入力。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/name | この Genkit アクションの名前。この場合、フローの名前 |
genkit/output | ユーティリティで生成された出力。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/path | トレース内のこのステップに至る完全修飾実行パス(型情報を含む)。 |
genkit/state | このスパンの実行状態(success または error )。 |
genkit/type | このスパンに相当する Genkit プリミティブのタイプ。フローの場合は util です。 |
モデル
属性名 | 説明 |
---|---|
genkit/input | モデルへの入力です。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/metadata/subtype | Genkit アクションのタイプ。モデルの場合は model です。 |
genkit/model | モデルの名前。 |
genkit/name | この Genkit アクションの名前。この場合はモデルの名前です。 |
genkit/output | モデルによって生成された出力。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/path | トレース内のこのステップに至る完全修飾実行パス(型情報を含む)。 |
genkit/state | このスパンの実行状態(success または error )。 |
genkit/type | このスパンに相当する Genkit プリミティブのタイプ。フローの場合は action です。 |
ツール
属性名 | 説明 |
---|---|
genkit/input | モデルへの入力です。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/metadata/subtype | Genkit アクションのタイプ。ツールの場合は tool です。 |
genkit/name | この Genkit アクションの名前。この場合はモデルの名前です。 |
genkit/output | モデルによって生成された出力。トレース属性のサイズ制限により、これは常に <redacted> になります。 |
genkit/path | トレース内のこのステップに至る完全修飾実行パス(型情報を含む)。 |
genkit/state | このスパンの実行状態(success または error )。 |
genkit/type | このスパンに相当する Genkit プリミティブのタイプ。フローの場合は action です。 |
ログ
Firebase Genkit Monitoring を使用してデプロイされたアプリの場合、ログを使用して入力、出力、構成のメタデータをキャプチャし、AI 機能の各ステップに関する詳細情報を提供します。
すべてのログには、次の共有メタデータ フィールドが含まれます。
フィールド名 | 説明 |
---|---|
insertId | ログエントリの一意の ID |
jsonPayload | ログタイプごとに一意の変数情報を格納するコンテナ |
ラベル | {module: genkit} |
logName | projects/weather-gen-test-next/logs/genkit_log |
receivedTimestamp | Cloud がログを受信した時刻 |
リソース | ログのソースに関する情報(デプロイ情報のリージョン、projectId など) |
重要度 | 書き込まれたログレベル。Cloud の LogSeverity をご覧ください。 |
spanId | このログを作成したスパンの ID |
タイムスタンプ | クライアントがメッセージをログに記録した時刻 |
トレース | projects/<project-id>/traces/<trace-id> 形式のトレース識別子 |
traceSampled | トレースがサンプリングされたかどうかを表すブール値。ログはサンプリングされません。 |
各ログタイプには、各セクションで説明されている異なる JSON ペイロードがあります。
入力
JSON ペイロード:
フィールド名 | 説明 |
---|---|
メッセージ | [genkit] Input[<path>, <featureName>] (マルチパート メッセージ用の (message X of N) を含む) |
metadata | アクションに送信された入力メッセージなどの追加コンテキスト |
メタデータ:
フィールド名 | 説明 |
---|---|
コンテンツ | この Genkit アクションに送信される入力メッセージ コンテンツ |
featureName | Genkit のフロー、アクション、ツール、ユーティリティ、ヘルパーの名前。 |
messageIndex * | 複数のメッセージを含む入力のメッセージの順序を示すインデックス。単一メッセージの場合、これは常に 0 になります。 |
model * | モデル名。 |
パス | step1 > step2 > step3 形式のこのログを生成した実行パス |
partIndex * | マルチパート メッセージの場合、メッセージ内のパートの順序を示すインデックス。これは、テキストと画像を 1 つの入力で組み合わせる場合によく見られます。 |
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) を含む) |
metadata | アクションに送信された入力メッセージなどの追加コンテキスト |
メタデータ:
フィールド名 | 説明 |
---|---|
candidateIndex *(非推奨) | 複数の候補を含む出力の候補の順序を示すインデックス。候補が 1 つのログの場合、これは常に 0 になります。 |
コンテンツ | Genkit アクションによって生成された出力メッセージ |
featureName | Genkit のフロー、アクション、ツール、ユーティリティ、ヘルパーの名前。 |
messageIndex * | 複数のメッセージを含む入力のメッセージの順序を示すインデックス。単一メッセージの場合、これは常に 0 になります。 |
model * | モデル名。 |
パス | 「step1 > step2 > step3」形式のこのログを生成した実行パス |
partIndex * | マルチパート メッセージの場合、メッセージ内のパートの順序を示すインデックス。これは、テキストと画像を 1 つの出力に組み合わせる場合によく見られます。 |
qualifiedPath | このログを生成する実行パス(/{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 形式のタイプ情報を含む) |
totalCandidates *(非推奨) | 出力として生成された候補の合計数。単一候補メッセージの場合、これは常に 1 です。 |
totalParts * | このメッセージのパート数の合計。単一パートのメッセージの場合、これは常に 1 です。 |
(*) アスタリスクが付いた項目は、モデルのインタラクションの出力ログにのみ表示されます。
Config
JSON ペイロード:
フィールド名 | 説明 |
---|---|
メッセージ | [genkit] Config[<path>, <featureName>] |
metadata | アクションに送信された入力メッセージなどの追加コンテキスト |
メタデータ:
フィールド名 | 説明 |
---|---|
featureName | Genkit のフロー、アクション、ツール、ユーティリティ、ヘルパーの名前。 |
モデル | モデル名。 |
パス | 「step1 > step2 > step3」形式のこのログを生成した実行パス |
qualifiedPath | このログを生成する実行パス(/{flow1,t:flow}/{generate,t:util}/{modelProvider/model,t:action,s:model 形式のタイプ情報を含む) |
ソース | 使用される Genkit ライブラリの言語。サポートされている言語は ts のみであるため、常に ts に設定されます。 |
sourceVersion | Genkit ライブラリのバージョン。 |
温度 | 使用されるモデル温度。 |
パス
JSON ペイロード:
フィールド名 | 説明 |
---|---|
メッセージ | [genkit] Paths[<path>, <featureName>] |
metadata | アクションに送信された入力メッセージなどの追加コンテキスト |
メタデータ:
フィールド名 | 説明 |
---|---|
flowName | Genkit のフロー、アクション、ツール、ユーティリティ、ヘルパーの名前。 |
パス | 収集されたスパンのすべての実行パスを含む配列。 |