このバージョンはまだ開発中であり、まだ安定しているとは考えられていません。最新のスナップショットバージョンについては、Spring AI 1.0.3 を使用してください。 |
可観測性
Spring AI は、Spring エコシステムの可観測性機能に基づいて構築され、AI 関連の操作に関する分析情報を提供します。
可観測性を有効にするには、spring-boot-actuator モジュールが必要です。プロジェクトの Maven pom.xml ビルドファイルに Spring Boot Actuator 依存関係を追加してください。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency> または、Gradle build.gradle ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}Spring AI provides metrics and tracing capabilities for its core components: ChatClient (including Advisor), ChatModel、EmbeddingModel、ImageModel、VectorStore.
| 低いカーディナリティキーはメトリクスとトレースに追加されますが、高いカーディナリティキーはトレースにのみ追加されます。 |
1.0.0-RC1 重大な変更 次の構成プロパティは、目的をより適切に反映するために名前が変更されました。
|
チャットクライアント
spring.ai.chat.client 観測は、ChatClient call() または stream() 操作が呼び出されたときに記録されます。呼び出しの実行に費やされた時間を測定し、関連するトレース情報を伝播します。
| 名前 | 説明 |
|---|---|
| 常に |
| 常に |
| チャットモデルのレスポンスはストリームですか - |
| Spring AI のフレームワーク API の種類: |
| 名前 | 説明 |
|---|---|
| チャットクライアント経由で送信されるプロンプトの内容。オプション。 |
| アドバイザーパラメーターのマップ。会話 ID が |
| 構成されたチャットクライアントアドバイザーのリスト。 |
| チャットメモリを使用する場合の会話の識別子。 |
| チャットクライアントのシステムパラメーター。オプション。 |
| チャットクライアントのシステムテキスト。オプション。 |
| 有効なツール機能名。 |
| 構成されたチャットクライアント関数のコールバックのリスト。 |
| チャットクライアントに渡されるツールの名前。 |
| チャットクライアントのユーザーパラメーター。オプション。 |
| チャットクライアントのユーザーテキスト。オプション。 |
Prompt and Completion Data
The ChatClient prompt and completion data is typically big and possibly containing sensitive information. For those reasons, it is not exported by default.
Spring AI supports logging the prompt and completion data to help with debugging and troubleshooting.
| プロパティ | 説明 | デフォルト |
|---|---|---|
| チャットクライアントのプロンプトの内容をログに記録するかどうか。 |
|
| Whether to log the chat client completion content. |
|
| If you enable logging of the chat client prompt and completion data, there’s a risk of exposing sensitive or private information. Please, be careful! |
入力データ (非推奨)
spring.ai.chat.client.observations.include-input プロパティは非推奨となり、spring.ai.chat.client.observations.log-prompt に置き換えられました。プロンプトコンテンツを参照してください。 |
ChatClient 入力データは通常大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、デバッグとトラブルシューティングに役立つ入力データのログ記録をサポートしています。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| 入力コンテンツを観測に含めるかどうか。 |
|
| 入力内容を観測に含めることを有効にすると、機密情報や個人情報が公開されるリスクがあります。ご注意ください。 |
チャットクライアントアドバイザー
spring.ai.advisor 観測は、アドバイザーの実行時に記録されます。アドバイザー内で費やされた時間(内部アドバイザーで費やされた時間を含む)を測定し、関連するトレース情報を伝播します。
| 名前 | 説明 |
|---|---|
| 常に |
| 常に |
| アドバイザーがリクエスト処理においてロジックを適用する場所は、 |
| Spring AI のフレームワーク API の種類: |
| 名前 | 説明 |
|---|---|
| アドバイザーの名前。 |
| アドバイザーチェーンのアドバイザーオーダー。 |
チャットモデル
オブザーバビリティ機能は現在、以下の AI モデルプロバイダーの ChatModel 実装でのみサポートされています: Anthropic、Azure、OpenAI、Mistral AI、Ollama、OpenAI、Vertex AI、MiniMax、Moonshot、QianFan、Zhipu AI。今後のリリースでは、その他の AI モデルプロバイダーもサポートされる予定です。 |
gen_ai.client.operation 観測は、ChatModel call または stream メソッドを呼び出すときに記録されます。メソッドの完了に費やされた時間を測定し、関連するトレース情報を伝播します。
gen_ai.client.token.usage メトリクスは、単一のモデル呼び出しで使用される入力トークンと出力トークンの数を測定します。 |
| 名前 | 説明 |
|---|---|
| 実行される操作の名前。 |
| クライアントインストルメンテーションによって識別されるモデルプロバイダー。 |
| リクエストが行われているモデルの名前。 |
| レスポンスを生成したモデルの名前。 |
| 名前 | 説明 |
|---|---|
| モデルリクエストの頻度ペナルティ設定。 |
| モデルがリクエストに対して生成するトークンの最大数。 |
| モデルリクエストのプレゼンスペナルティ設定。 |
| モデルがそれ以上のトークンの生成を停止するために使用するシーケンスのリスト。 |
| モデルリクエストの温度設定。 |
| モデルリクエストの top_k サンプリング設定。 |
| モデルリクエストの top_p サンプリング設定。 |
| 受信した各世代に対応する、モデルがトークンの生成を停止した理由。 |
| AI レスポンスの一意の識別子。 |
| モデル入力 (プロンプト) で使用されるトークンの数。 |
| モデル出力(完了)で使用されるトークンの数。 |
| モデル交換で使用されるトークンの合計数。 |
| モデルに送信される完全なプロンプト。オプション。 |
| モデルから受信した完全なレスポンス。オプション。 |
| リクエストでモデルに提供されるツール定義のリスト。 |
ユーザートークンを測定する場合、前の表には観測トレースに存在する値がリストされています。ChatModel によって提供されるメトリクス名 gen_ai.client.token.usage を使用します。 |
チャットプロンプトと完了データ
チャットプロンプトと完了データは通常サイズが大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、チャットプロンプトと完了データのログ記録をサポートしており、トラブルシューティングに役立ちます。トレースが利用可能な場合、ログにはトレース情報が含まれるため、相関関係の精度が向上します。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| プロンプトの内容をログに記録します。 |
|
| 完了内容をログに記録します。 |
|
| 観測にエラーログを含めます。 |
|
| チャットプロンプトと完了データのログ記録を有効にすると、機密情報や個人情報が漏洩するリスクがあります。ご注意ください。 |
ツール呼び出し
spring.ai.tool 観測は、チャットモデルのインタラクションのコンテキストでツール呼び出しを実行した際に記録されます。呼び出し完了までに費やされた時間を測定し、関連するトレース情報を伝播します。
| 名前 | 説明 |
|---|---|
| 実行中の操作の名前。常に |
| 操作を担当するプロバイダー。常に |
| Spring AI が実行する操作の種類。常に |
| ツールの名前。 |
名前 | 説明 |
| ツールの説明。 |
| ツールを呼び出すために使用されるパラメーターのスキーマ。 |
| ツール呼び出しへの入力引数。(有効になっている場合のみ) |
| ツールを呼び出すために使用されるパラメーターのスキーマ。(有効になっている場合のみ) |
EmbeddingModel
可観測性機能は現在、Azure、OpenAI、Mistral AI、Ollama、OpenAI の AI モデルプロバイダーの EmbeddingModel 実装でのみサポートされています。追加の AI モデルプロバイダーは、将来のリリースでサポートされる予定です。 |
gen_ai.client.operation の観測は、埋め込みモデルメソッド呼び出しに記録されます。メソッドの完了に費やされた時間を測定し、関連するトレース情報を伝播します。
gen_ai.client.token.usage メトリクスは、単一のモデル呼び出しで使用される入力トークンと出力トークンの数を測定します。 |
| 名前 | 説明 |
|---|---|
| 実行される操作の名前。 |
| クライアントインストルメンテーションによって識別されるモデルプロバイダー。 |
| リクエストが行われているモデルの名前。 |
| レスポンスを生成したモデルの名前。 |
| 名前 | 説明 |
|---|---|
| 結果として得られる出力埋め込みの次元数。 |
| モデル入力で使用されるトークンの数。 |
| モデル交換で使用されるトークンの合計数。 |
ユーザートークンを測定する場合、前の表には観測トレースに存在する値がリストされています。EmbeddingModel によって提供されるメトリクス名 gen_ai.client.token.usage を使用します。 |
イメージモデル
可観測性機能は現在、次の AI モデルプロバイダーの ImageModel 実装でのみサポートされています: OpenAI。追加の AI モデルプロバイダーは、将来のリリースでサポートされる予定です。 |
gen_ai.client.operation の観測は、イメージモデルメソッドの呼び出し時に記録されます。メソッドの完了に費やされた時間を測定し、関連するトレース情報を伝播します。
gen_ai.client.token.usage メトリクスは、単一のモデル呼び出しで使用される入力トークンと出力トークンの数を測定します。 |
| 名前 | 説明 |
|---|---|
| 実行される操作の名前。 |
| クライアントインストルメンテーションによって識別されるモデルプロバイダー。 |
| リクエストが行われているモデルの名前。 |
| 名前 | 説明 |
|---|---|
| 生成されたイメージが返される形式。 |
| 生成するイメージのサイズ。 |
| 生成するイメージのスタイル。 |
| AI レスポンスの一意の識別子。 |
| レスポンスを生成したモデルの名前。 |
| モデル入力 (プロンプト) で使用されるトークンの数。 |
| モデル出力(生成)で使用されるトークンの数。 |
| モデル交換で使用されるトークンの合計数。 |
| モデルに送信される完全なプロンプト。オプション。 |
ユーザートークンを測定する場合、前の表には観測トレースに存在する値がリストされています。ImageModel によって提供されるメトリクス名 gen_ai.client.token.usage を使用します。 |
イメージプロンプトデータ
イメージプロンプトデータは通常サイズが大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、トラブルシューティングに役立つイメージプロンプトデータのログ記録をサポートしています。トレースが利用可能な場合、ログにはトレース情報が含まれるため、相関関係の精度が向上します。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| イメージプロンプトの内容をログに記録します。 |
|
| イメージプロンプトデータのログ記録を有効にすると、機密情報や個人情報が漏洩するリスクがあります。ご注意ください。 |
ベクトルストア
Spring AI のすべてのベクトルストア実装は、Micrometer を通じてメトリクスと分散トレースデータを提供するようにインストルメント化されています。
db.vector.client.operation の観測は、ベクトルストアとやり取りするときに記録されます。query、add、remove 操作に費やされた時間を測定し、関連するトレース情報を伝播します。
| 名前 | 説明 |
|---|---|
| 実行される操作またはコマンドの名前。 |
| クライアントインストルメンテーションによって識別されるデータベース管理システム (DBMS) 製品。 |
| Spring AI のフレームワーク API の種類: |
| 名前 | 説明 |
|---|---|
| データベース内のコレクション (テーブル、コンテナー) の名前。 |
| サーバーアドレスとポート内で完全修飾されたデータベースの名前。 |
| 存在する場合はレコード識別子。 |
| 類似性検索で使用されるメトリクス。 |
| ベクトルの次元。 |
| ベクトルの名前フィールド (フィールド名など)。 |
| 実行中の検索クエリの内容。 |
| 検索クエリで使用されるメタデータフィルター。 |
| 類似検索クエリから返されたドキュメント。オプション。 |
| すべての検索スコアを受け入れる類似度しきい値。しきい値が 0.0 の場合、すべての類似度が受け入れられるか、類似度しきい値フィルタリングが無効になります。しきい値が 1.0 の場合、完全一致が必要です。 |
| クエリによって返される上位 k 個の最も類似したベクトル。 |
レスポンスデータ
ベクトル検索レスポンスデータは通常大きく、機密情報が含まれている可能性があります。そのため、デフォルトではエクスポートされません。
Spring AI は、トラブルシューティングに役立つベクトル検索レスポンスデータのログ記録をサポートしています。トレースが利用可能な場合、ログにはトレース情報が含まれるため、相関関係の精度が向上します。
| プロパティ | 説明 | デフォルト |
|---|---|---|
| ベクトルストアクエリレスポンスの内容をログに記録します。 |
|
| ベクトル検索レスポンスデータのログ記録を有効にすると、機密情報や個人情報が漏洩するリスクがあります。ご注意ください。 |
その他のメトリクスリファレンス
このセクションでは、Prometheus に表示される、Spring AI コンポーネントによって生成されたメトリクスについて説明します。
メトリクスの命名規則
Spring AI は Micrometer を使用します。基本メトリクス名はドット(例: gen_ai.client.operation)を使用し、Prometheus はアンダースコアと標準のサフィックスを使用してエクスポートします。
タイマー→
<base>_seconds_count、<base>_seconds_sum、<base>_seconds_max、および(サポートされている場合)<base>_active_countカウンター→
<base>_total(単調)
以下は、基本メトリクス名が Prometheus 時系列にどのように拡張されるかを示しています。
|
参照
OpenTelemetry — 生成 AI のためのセマンティック規約 (概要) (英語)
Micrometer — メーターの命名 (英語)
チャットクライアントのメトリクス
| メトリクス名 | タイプ | 単位 | 説明 |
|---|---|---|---|
| タイマー | 秒 | ChatClient 運用に費やされた合計時間 (呼び出し / ストリーム) |
| カウンター | カウント | 完了した ChatClient 操作の数 |
| ゲージ | 秒 | ChatClient 運用の最大観測期間 |
| ゲージ | カウント | 現在飛行中の ChatClient 運用の数 |
アクティブ vs 完了 : active_count は進行中の呼び出しを表示します。_seconds シリーズは完了した呼び出しのみを反映します。
チャットモデルメトリクス (モデルプロバイダーの実行)
| メトリクス名 | タイプ | 単位 | 説明 |
|---|---|---|---|
| タイマー | 秒 | チャットモデル操作の実行時間合計 |
| カウンター | カウント | 完了したチャットモデル操作の数 |
| ゲージ | 秒 | チャットモデル操作の最大観測期間 |
| ゲージ | カウント | 現在実行中のチャットモデル操作の数 |
ベクトルストアメトリクス
| メトリクス名 | タイプ | 単位 | 説明 |
|---|---|---|---|
| タイマー | 秒 | ベクトルストア操作に費やされた合計時間 (追加 / 削除 / クエリ) |
| カウンター | カウント | 完了したベクトルストア操作の数 |
| ゲージ | 秒 | ベクトルストア操作の最大観測期間 |
| ゲージ | カウント | 現在実行中のベクトルストア操作の数 |