スパンとトレースのクエリ

This product is not supported for your selected Datadog site. ().

概要

このページでは、Datadog の Agent Observability Trace Explorer を使用して、LLM アプリケーションのスパンとトレースをクエリする方法について説明します。

スパンとトレースにまたがるクエリ

Agent Observability において、_スパン_は、LLM アプリケーション内の単一の操作を表す作業単位です。_トレース_は、LLM アプリケーションでのリクエスト処理に関与するエンドツーエンドの操作を表し、多くの場合、1 つ以上のネストされたスパンで構成されます。この用語の詳細については、Agent Observability の用語と概念を参照してください。

Agent Observability Trace Explorer で、トレースとスパンのどちらを検索するかを選択します。

  • Traces を選択すると、ルートスパンがクエリと一致するトレースを検索できます。
  • Spans を選択すると、ネストされた子スパンを含むすべてのスパンを検索できます。

一部の検索語句はトレースにのみ適用されます。例については、トレースレベルのクエリを参照してください。

属性によるクエリ

_スパン属性_は、各スパンに直接付加されるキーと値のペアです。属性は、パフォーマンスメトリクス、リソース識別子、パラメーター値など、スパンの実行に関する詳細を取得します。

属性クエリは @key:value の形式を取ります。すべての属性キーには @ が先頭に付加されます。

クエリ一致
@duration:>5s完了までに 5 秒以上かかったスパン

タグによるクエリ

_スパンタグ_は、スパン、サービス、または環境全体でテレメトリデータをグループ化、セグメント化、および相関付けるために使用されるキーと値のペアです。タグは多くの場合、アプリケーション名、環境、デプロイメントリージョンなどのより広範なコンテキストを示し、効率的な検索と集計を容易にするためにスパンに付加されます。

タグクエリは key:value の形式を取ります。属性キーとは対照的に、タグキーの先頭には @ は付きません。

クエリ一致
ml_app:my_llm_appアプリケーション名が my_llm_app

LLM の入力と出力をクエリ

フリーテキストクエリを使用して、入力または出力のペアを持つ任意のスパンで、特定のキーワード、フレーズ、または文字列を検索することもできます。フリーテキスト検索を使用するには、クエリを " で囲みます。

クエリ一致
"what's the weather"入力または出力に文字列 what's the weather を含む Agent、ワークフロー、または LLM スパン
フリーテキストクエリは、スパンの入力または出力の最初の 20,500 文字に制限されています。

演算子

ブール演算子の AND (積集合)、OR (和集合)、および - (差集合) を使用して、複数の検索語を組み合わせることができます。

クエリ一致
@duration:>5s AND -"foo"完了までに 5 秒以上かかり、入力または出力に文字列 foo を含まないスパン

クエリ構文

Agent Observability Trace Explorer は、Datadog の APM Trace Explorer と同じクエリ構文を使用します。ワイルドカード検索、数値の処理、特殊文字のエスケープなど、クエリ構文の詳細については、Trace Explorer のクエリ構文を参照してください。

クエリの例

クエリ一致
@status:errorステータスが error
@meta.error.type:"Max turns exceeded"エラータイプが Max turns exceeded
@duration:>5s完了までに 5 秒以上かかったスパンまたはトレース
@trace.total_tokens:>=1000合計 1000 トークン以上を消費したトレース
ml_app:my_llm_appアプリケーション名が my_llm_app
"what's the weather"入力または出力に文字列 what's the weather を含む Agent、ワークフロー、または LLM スパン

評価クエリ

@evaluation 属性を使用して、評価の結果でスパンまたはトレースを検索します。

評価

評価の結果によってスパンを検索できます。たとえば、user_mood という名前の評価があり、そのカテゴリ値が happy、sad、tired である場合、次のようなクエリを使用できます: @evaluation.user_mood.value:happy。

クエリ一致
@evaluation.user_satisfaction.value:>5user_satisfaction
@evaluation.user_mood.value:happyuser_mood という評価で happy と評価されたスパンまたはトレース (カテゴリ値は happy、sad、tired

フィードバッククエリ

@feedback 属性を使用して、エンドユーザーのフィードバックの送信内容に基づいてスパンまたはトレースを検索します。たとえば、ユーザーが user_satisfaction というラベルの下で thumbs_up または thumbs_down というカテゴリ値を使用してフィードバックを送信している場合、次のようなクエリを使用できます: @feedback.user_satisfaction.value:thumbs_down。

クエリ一致
@feedback.user_satisfaction.value:thumbs_downuser_satisfaction
@feedback.user_comment.assessment:failuser_comment
@feedback.user_score.value:<2user_score

メタデータクエリ

@meta 属性を使用して、メタデータ情報によってスパンを検索します。

クエリ一致
@meta.span.kind:llmスパン llmスパンの種類
@meta.model_provider:openaiモデルプロバイダーが OpenAI であるスパンまたはトレース
@meta.model_name:gpt-4.1モデルが GPT-4.1 であるスパンまたはトレース

カスタムメタデータ

インスツルメンテーション中に付加されたカスタムメタデータフィールドによってスパンやトレースをクエリできます。カスタムメタデータフィールドには @meta.metadata.<key> からアクセスできます。

クエリ一致
@meta.metadata.config.debug_mode:falseカスタムメタデータフィールド config.debug_mode が false
@meta.metadata.job_id:job_14fb81c3カスタムメタデータフィールド job_id が job_14fb81c3

トレースレベルのクエリ

ネストされたスパンの属性に基づいてトレースを検索するには、@child 属性を使用します。

クエリ一致
@child.@evaluation.hallucination.value:"hallucination found"ハルシネーションが発生しているサブスパンを持つトレース
@child.@meta.span.kind:retrieval AND @meta.span.kind:workflow検索スパンを含むワークフロートレース

推定総コスト、LLM 呼び出し数、ツール数などのトレースレベルの情報にアクセスするには、@trace 属性を使用します。

クエリ一致
@trace.llm_calls:>3LLM 呼び出しが 3 回を超えるトレース
@trace.tool_calls:>=4ツール呼び出しが 4 回以上のトレース
@trace.number_of_tools:<5異なるツールを 5 種類未満呼び出すトレース

参考資料