- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
クエリフィルターは条件と演算子で構成されます。
条件には 2 種類あります。
単一条件は、1 つの単語です (test
、hello
など)。
シーケンスは、二重引用符で囲まれた単語のグループです ("hello dolly"
など)。
複合クエリで複数の条件を組み合わせるには、以下の大文字と小文字を区別するブール演算子を使用します。
演算子 | 説明 | 例 |
AND | 積: 両方の条件を含むイベントが選択されます (何も追加しなければ、AND がデフォルトで採用されます)。 | authentication AND failure |
OR | 和: いずれかの条件を含むイベントが選択されます。 | authentication OR password |
- | 除外: 以下の用語はイベントに含まれません (個々の生テキスト検索に適用されます)。 | authentication AND -password |
検索バーのオートコンプリート機能を使用すると、以下を使用してクエリを完成させることができます。 - ログにある既存のキーと値 - ユーザーごとの最近の検索 - 保存ビュー
明確なエラー状態は、クエリのどの部分に構文エラーがあり、それをどのように修正すればよいかを知らせます。例えば、クエリ service:
に値がない状態で入力した場合、クエリにカーソルを合わせると “Missing value in key:value pair” というメッセージが表示されます。
次の文字は特殊文字とみなされます: +
-
=
&&
||
>
<
!
(
)
{
}
[
]
^
"
“
”
~
*
?
:
\
/
は、\
文字でエスケープすることが必要です。ログメッセージから特殊文字を検索することはできません。しかし、特殊文字が属性の中にある場合は、検索することができます。特殊文字を検索するには、grok parser で特殊文字を属性にパースし、その属性を含むログを検索してください。
特定の属性を検索するには、まずそれをファセットとして追加し、次に @
を追加してファセット検索を指定します。
たとえば、属性名が url で、url の値 www.datadoghq.com
で絞り込む場合は、次のように入力します。
@url:www.datadoghq.com
注:
ファセット検索では大文字と小文字が区別されます。大文字と小文字を区別したくない場合はフリーテキスト検索を使用してください。または、Grok パーサーでのパース実行中に小文字フィルターを適用すれば、文字の種類に関わらない検索結果を得ることができます。
特殊文字を含むファセット値を検索するには、エスケープ処理または二重引用符が必要です。
hello:world
のファセット my_facet
は、@my_facet:hello\:world
または @my_facet:"hello:world"
を使用して検索します。?
ワイルドカードを使用します。たとえば、値が hello world
のファセット my_facet
は、@my_facet:hello?world
を使用して検索します。特定の属性で検索するには、@
を付けて属性検索を指定します。
たとえば、属性名が url で、url の値 www.datadoghq.com
で絞り込む場合は、次のように入力します。
@url:www.datadoghq.com
注:
属性やタグを検索するためのファセットの定義は不要です。
属性検索では大文字と小文字が区別されます。大文字と小文字を区別したくない場合はフリーテキスト検索を使用してください。または、Grok パーサーでのパース実行中に lowercase
フィルターを適用すれば、文字の種類に関わらない検索結果を得ることができます。
特殊文字を含む属性値を検索するには、エスケープ処理または二重引用符が必要です。
hello:world
の属性 my_attribute
は、@my_attribute:hello\:world
または @my_attribute:"hello:world"
を使用して検索します。?
ワイルドカードを使用します。たとえば、値が hello world
の属性 my_attribute
は、@my_attribute:hello?world
を使用して検索します。例:
検索クエリ | 説明 |
---|---|
@http.url_details.path:"/api/v1/test" | 属性 http.url_details.path に /api/v1/test と一致するすべてのログを検索します。 |
@http.url:\/api\/v1\/* | 属性 http.url に、/api/v1/ で始まる値を含むすべてのログを検索します。 |
@http.status_code:[200 TO 299] @http.url_details.path:\/api\/v1\/* | 200 から 299 の http.status_code 値を含み、http.url_details.path 属性に /api/v1/ で始まる値を含むすべてのログを検索します。 |
複数文字のワイルドカード検索を実行するには、*
記号を次のように使用します。
service:web*
は、web
で始まるサービスを持つすべてのログメッセージに一致します。web*
は、web
で始まるすべてのログメッセージに一致します。*web
は、web
で終わるすべてのログメッセージに一致します。注: ワイルドカードは、二重引用符の外側にあるワイルドカードとしてのみ機能します。例えば、”*test*”
は、メッセージの中に *test*
という文字列があるログにマッチします。*test*
は、メッセージのどこかに test という文字列を持つログにマッチします。
ワイルドカード検索は、この構文を使用してファセット内で機能します。次のクエリは、文字列 mongo
で終わるすべてのサービスを返します。
ワイルドカード検索は、この構文を使用してタグと属性 (ファセットの有無を問わず) 内で機能します。次のクエリは、文字列 mongo
で終わるすべてのサービスを返します:
service:*mongo
ワイルドカード検索は、ファセットに含まれないログのプレーンテキスト内の検索にも使用できます。次のクエリは、文字列 NETWORK
を含むすべてのログを返します。
*NETWORK*
ただし、この検索条件は、ファセット内に文字列 NETWORK
を含み、ログメッセージには含まれない場合はログを返しません。
特殊文字を含むファセット値を検索する場合、またはエスケープまたは二重引用符を必要とする場合は、?
ワイルドカードを使用して単一の特殊文字またはスペースに一致させます。たとえば、値が hello world
のファセット my_facet
を検索するには @my_facet:hello?world
を使用します。
特殊文字を含む属性やタグ値を検索する場合、またはエスケープまたは二重引用符を必要とする場合は、?
ワイルドカードを使用して単一の特殊文字またはスペースに一致させます。たとえば、値が hello world
の属性 my_attribute
を検索するには @my_attribute:hello?world
を使用します。
数値属性で検索するには、まずファセットとして追加します。次に、数値演算子 (<
、>
、<=
、または >=
) を使用して、数値ファセットの検索を行うことができます。
例えば、応答時間が 100ms 以上のログをすべて検索するには、次のようにします。
@http.response_time:>100
特定の範囲内にある数値属性を検索することができます。たとえば、4xx エラーをすべて取得するには、次のようにします。
@http.status_code:[400 TO 499]
ログは、タグを生成するホストとインテグレーションからタグを引き継ぎます。これらも、ファセットとして検索で使用できます。
test
は文字列「test」を検索します。env:(prod OR test)
は、タグ env:prod
またはタグ env:test
を含むすべてのログに一致します。(env:prod AND -version:beta)
は、タグ env:prod
を含み、タグ version:beta
は含まないすべてのログに一致します。タグがタグのベストプラクティスに従わず、key:value
構文も使用していない場合は、次の検索クエリを使用します。
tags:<MY_TAG>
次の例では、ファセットで Peter
値をクリックすると、users.names
属性の値が Peter
であるか、Peter
を含む配列であるすべてのログが返されます。
注: 同等の構文を使用して、検索をファセットではない配列属性にも使用することができます。
以下の例では、Windows 用の CloudWatch ログは、@Event.EventData.Data
の下に JSON オブジェクトの配列が含まれています。JSON オブジェクトの配列にファセットを作成することはできませんが、以下の構文で検索することができます。
@Event.EventData.Data.Name:ObjectServer
はキーName
と値 ObjectServer
ですべてのログに一致します。保存ビューに、検索クエリ、列、対象期間、およびファセットが格納されます。
お役に立つドキュメント、リンクや記事: