検索クエリ

すべての検索パラメーターは、ページの URL に含まれているので、ビューを共有するのに便利です。

検索構文

クエリは条件演算子で構成されます。

条件には 2 種類あります。

  • Span タグ: スパンに関連するコンテキスト情報を拡張するためのタグです。例えば、サービスが稼働しているインフラストラクチャーを示すホストやコンテナタグなどが含まれます。
  • Span 属性: アプリケーション内で自動または手動のインスツルメントによって収集されたスパンの内容を指します。

複合クエリで複数の条件を組み合わせるには、以下のブール演算子のいずれかを使用します。

演算子説明
AND: 両方の条件を含むイベントが選択されます (何も追加しなければ、AND がデフォルトで採用されます)。authentication AND failure
OR: いずれかの条件を含むイベントが選択されます。authentication OR password
-排他: 後続の条件はイベントに含まれません。authentication AND -password

Attribute 検索

特定のスパン属性を検索するには、属性キーの先頭に @ を付けてください。

例えば、以下の属性を持つスパンにアクセスしたい場合は、次のクエリを使用します:

@git.commit.sha:12345

  "git": {
    "commit": {
      "sha": "12345"
    },
    "repository": {
      "id": "github.com/datadog/datadog"
    }
  }

注: 予約属性 (env, operation_name, resource_name, service, status, span_id, timestamp, trace_id, type, link) については、属性キーの先頭に @ を付ける必要はありません。

タグ検索

スパンは、それらを生成するホストやインテグレーションからタグを継承します。これらのタグは検索クエリで利用可能です。

クエリ一致
("env:prod" OR test)タグ #env:prod またはタグ #test を持つすべてのトレース
(service:srvA OR service:srvB) または (service:(srvA OR srvB))タグ #service:srvA または #service:srvB を含むすべてのトレース。
("env:prod" AND -"version:beta")#env:prod を含み、#version:beta を含まないすべてのトレース

もしタグがタグ運用ベストプラクティスに従っていない場合、key:value 形式は使用せず、以下のような検索クエリを利用してください:

  • tags:<MY_TAG>

ベストプラクティスに従っていないタグの例:

tagging-not-recommended

この特定のタグを検索するクエリ: tags:"auto-discovery.cluster-autoscaler.k8s.io/daffy"

ワイルドカード

複数文字のワイルドカード検索を実行するには、* 記号を次のように使用します。

  • service:web* は、web で始まるサービスを持つすべてのトレースに一致します
  • @url:data* は、data で始まる url を持つすべてのトレースに一致します。

数値

<><=、または >= を使用して、数値属性の検索を実行します。たとえば、100ms を超える応答時間を持つすべてのトレースを取得するには、次のようにします。

@http.response_time:&gt;100

特定の範囲内にある数値属性を検索することもできます。たとえば、4xx エラーをすべて取得するには、次のようにします。

@http.status_code:[400 TO 499]

オートコンプリート

複雑なクエリを入力するのは面倒です。検索バーのオートコンプリート機能を使用すると、既存の値を使用してクエリを完成させることができます。

検索バーのオートコンプリート

特殊文字のエスケープ

?><:="~/、および \ は特殊属性と見なされ、\ を使用してエスケープする必要があります。 たとえば、urluser=JaneDoe を含むトレースを検索するには、次の検索を入力する必要があります。

@url:*user\=JaneDoe*

同じロジックはトレース属性内のスペースにも適用する必要があります。トレース属性にスペースを含めることはお勧めしませんが、含まれている場合は、スペースをエスケープする必要があります。 属性の名前が user.first name の場合、スペースをエスケープしてこの属性で検索を実行します。

@user.first\ name:myvalue

検索の保存

同じビューを毎日作成するのは時間の無駄です。保存された検索には、検索クエリ、列、期間が含まれます。検索名やクエリにかかわらず、オートコンプリートの一致により、これは検索バーで利用できます。

保存された検索

保存された検索を削除するには、Trace search ドロップダウンメニューの下にあるごみ箱のアイコンをクリックします。

サービスおよびエンティティの検索

サービスを検索するには service 属性を使用します。 データベース、キュー、サードパーティプロバイダなど、他のエンティティタイプを検索するには、ピア属性を使用します。これらは、APM でインスツルメントされていない依存関係を記述するために Datadog が用いる属性です。 例えば、Postgres データベースの users テーブルへの呼び出しを表すスパンを検索するには、次のクエリを使用します: @peer.db.name:users @peer.db.system:postgres

: グローバルサービスネーミングへ移行し、DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAME_ENABLED=true を設定している場合、スパンの service タグはそのスパンを発行しているサービスを表します。

タイムレンジ

タイムレンジを使用すると、特定の期間内のトレースを表示できます。タイムレンジをすばやく変更するには、プリセットされたレンジをドロップダウンメニューから選択します(または、カスタムタイムフレームを入力します):

タイムフレームを選択

Span テーブル

Span テーブルは、選択されたコンテキスト (検索バーフィルタおよび時間範囲で定義) に一致するスパンの一覧を表示します。

Service 列

デフォルトでは、Service 列はスパンの service 予約属性を表示します。

スパンテーブルのサービス列

スパンがインスツルメント済みサービスから推論されたサービスへのクライアント呼び出しを表す場合、Service 列には以下が表示されます。

  • service: service 予約属性で識別されるサービス

  • inferred service: ベースサービスから呼び出される推論先エンティティ名で、ピア属性のいずれかで識別されます。

    推論サービスを含むスパンテーブルのサービス列

サービス名がベースサービス名からオーバーライドされている場合、Service 列には以下が表示されます:

  • base service: @base_service 属性によって識別されるスパン発行元のサービス

  • service override: Datadogインテグレーションによって自動設定、またはプログラマティックAPIによって変更されたベースサービス名とは異なるサービス名で、service 予約属性によって識別されます。

    サービスオーバーライドを含むスパンテーブルのサービス列

完全なトレースの表示

任意のスパンをクリックすると、関連するトレースの詳細を確認できます。

トレースストリームのトレース

リストに他のスパンタグや属性を列として追加するには、Options ボタンをクリックして、追加したい任意のディメンションを選択します。

列を含むトレースリスト

ファセット

ファセットは、1 つの属性またはタグの個別値をすべて表示すると共に、示されたトレースの量などのいくつかの基本分析も提供します。また、データを絞り込むためのスイッチにもなります。

ファセットを使用すると、特定の属性に基づいてデータセットを絞り込んだり、データセットの切り口を変えることができます。ファセットには、ユーザーやサービスなどがあります。

ファセットデモ

メジャー

メジャー (Measures) は定量的な値に対応する特定のファセットです。

次が必要な場合は、メジャーを使用します。

  • 複数のトレースから値を集計する。たとえば、Cassandra の行数にメジャーを作成し、リクエストされたファイルサイズの合計ごとに最上位の参照元または P95 を表示します。
  • ショッピングカートの値が $1000 を超えるサービスの最もレイテンシーの高いものを数値的に計算します。
  • 連続する値をフィルタリングします。たとえば、ビデオストリームの各ペイロードチャンクのサイズ(バイト単位)。

タイプ

メジャーには、同等の機能のために、(長)整数またはダブル値が付属しています。

単位

メジャーは、クエリ時間と表示時間の桁数を処理するための単位(秒単位の時間またはバイト単位のサイズ)をサポートします。単位は、フィールドではなく、メジャー自体のプロパティです。たとえば、ナノ秒単位の duration メジャーを考えてみます。duration:1000 が 1000 ミリ秒を表す service:A からのスパンタグと、duration:500 が 500 マイクロ秒を表す service:B からの他のスパンタグがあるとします。 算術演算プロセッサーで流入するすべてのスパンタグの期間をナノ秒にスケーリングします。service:A のスパンタグには *1000000 乗数を使用し、service:B のスパンタグには *1000 乗数を使用します。 duration:>20ms(検索構文を参照)を使用して、両方のサービスから一度に一貫してスパンタグにクエリを実行し、最大 1 分の集計結果を確認します。

ファセットの作成

属性をファセットとして使用したり、検索で使用したりするには、属性をクリックしてファセットとして追加します。

ファセットの作成

新しいファセットを作成すると、フィルタリングや基本分析のために、そのファセットがファセットパネルで利用可能になります。

ファセットパネル

ファセットを使用し、トレースをフィルタリングします。検索バーと URL には、選択内容が自動的に反映されます。

ファセットパネル

視覚化

分析セレクターを使用して、Analytics の可視化タイプを選択します。

Timeseries

選択したタイムフレーム内での Duration メトリクス(またはファセットのユニーク値数)の動きを可視化し、使用可能なファセットで分割します (オプション) 。

次の時系列 Analytics は、各サービスにおける pc995 分おきの継続時間の動きを示しています。

時系列例

Toplist

継続時間(またはファセットのユニーク値数)に基づいて、ファセットの上位の値を可視化します。

以下の Analytics トップリストは、pc99サービス継続時間を上から示しています。

トップリストの例

選択したメジャー (リストで選択した最初のメジャー) に基づいてファセットから上位の値を可視化し、この上位のリストに現れる要素に対して他のメジャーの値を表示します。検索クエリを更新したり、いずれかのディメンションに対応するログを調査することができます。

  • 複数のディメンションがある場合、上位の値は最初のディメンションに基づき決定されます。その後最初のディメンション内の上位値内の 2 番めのディメンション、次に 2 番目のディメンション内の上位値内の 3 番めのディメンションに基づき決定されます。
  • メジャーが複数ある場合、最初のメジャーに基づいて上位または下位リストが決定されます。
  • サブセット(上位または下位)のみが表示されるため、小計がグループ内の実際の合計値とは異なる場合があります。このディメンジョンに対する、値が null または空欄のイベントは、サブグループとして表示されません。

: 単一のメジャーと単一のディメンジョンで使用されるテーブルの可視化は、表示が異なりますが、上位リストと同じです。

次のテーブルログ分析は、スループットに基づいて、過去 15 分間の上位ステータスコードの動きをユニーククライアント IP の数と共に示しています。

上位リストの例

関連トレース

グラフの一部を選択またはクリックすると、グラフをズームインしたり、選択範囲に対応するトレースのリストを表示したりすることができます。

トレースを確認

エクスポート

分析をエクスポートボタン

クエリのエクスポート先:

また、このクエリから新たなメトリクスを生成することも可能です。

: ダッシュボードおよびノートブック内の APM クエリは、すべてのインデックス化されたスパンに基づきます。一方、モニター内の APM クエリは、カスタム保持フィルターでインデックス化されたスパンにのみ基づきます。

その他の参考資料