すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:イベントチェック関数

最終更新日:Aug 27, 2024

このトピックでは、イベントチェック関数の構文とパラメーターについて説明します。 このトピックでは、関数の使用方法の例も示します。

関数

カテゴリー

機能

説明

基本機能

e_has

ログフィールドが存在するかどうかを確認します。

e_not_has

ログフィールドが存在しないかどうかを確認します。

この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。

式関数

e_search

Searches for an event by using a query syntax that is similar to Lucene.

この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。

e_match

Checks whether the value of a log field meets the conditions specified in a regular expression.

This function can be used together with other functions. 詳細については、「関数を使用してデータを浄化する」をご参照ください。

e_match_any

ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認します。 1つ以上の指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

e_match_all

ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認します。 指定されたすべてのフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

イベントチェック関数と一緒に使用できる式関数を次の表に示します。

カテゴリー

機能

説明

論理関数

op_and

AND演算を呼び出します。

op_or

OR演算を呼び出します。

op_not

NOT操作を呼び出します。

op_nullif

2つの式の値が等しいかどうかをチェックします。

op_ifnull

値がNoneではない最初の式の値を返します。

op_coalesce

値がNoneではない最初の式の値を返します。

e_has

The function is used to check whether a log field exists.

  • 構文

    e_has("key")
  • パラメーター

    項目

    データ型

    必須/任意

    説明

    key

    String

    必須

    ログフィールドの名前。

  • レスポンス

    指定されたフィールドが存在する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

  • ログにコンテンツフィールドが含まれているかどうかを確認します。 ログにコンテンツフィールドが含まれている場合、ログは保持されます。 それ以外の場合、ログは削除されます。

    • Raw log:

      content: 123
    • 変換ルール:

      e_keep(e_has("content"))
    • 結果:

      content: 123

e_not_has

この関数は、ログフィールドが存在しないかどうかを確認するために使用されます。

  • 構文

    e_not_has("key")
  • パラメーター

    項目

    データ型

    必須/任意

    説明

    key

    String

    必須

    ログフィールドの名前。

  • レスポンス

    If the specified field does not exist, True is returned. それ以外の場合は、falseが返されます。

  • Check whether a log contains the content field. If the log does not contain the content field, the log is retained. Otherwise, the log is dropped.

    • Raw log:

      content: 123
    • 変換ルール:

      e_if_else(e_not_has("content"),KEEP,DROP)
    • 結果:

      The log is dropped.

  • その他のユースケース

    This function can be used together with other functions. 詳細については、「関数を使用してデータを浄化する」をご参照ください。

e_search

この関数は、Luceneに似たクエリ構文を使用してイベントを検索するために使用されます。

  • 構文

    e_search(querystring)
  • パラメーター

    項目

    データ型

    必須/任意

    説明

    querystring

    String

    必須

    ログデータのフィルタリングに使用するクエリ文字列。 詳細については、「クエリ文字列構文」をご参照ください。

  • レスポンス

    指定された条件が満たされる場合、Trueが返されます。 それ以外の場合は、falseが返されます。

  • # Full-text search
    e_search("active error")   # Search for multiple substrings in full text. The substrings are associated with each other by using the logical operator OR. 
    e_search('"active error"')   # Search for a substring in full text. 
    
    # Field search
    e_search("status: active")   # Search for a substring in a specified field. 
    e_search('author: "john smith"')   # Searches for a substring that contains a space character in a specified field. 
    e_search('field: active error')   # Search the specified field for the substring "active" or searches all logs for the substring "error". The query string in this example is equivalent to field:active OR "error". 
    
    # Exact match
    e_search('author== "john smith"')  
    
    # Search for field values by using wildcard characters. You can use an asterisk (*) to match zero or more characters. You can use a question mark (?) to match one character. 
    e_search("status: active*test")    # active*test contains one asterisk (*). You do not need to enclose the value in double quotation marks (""). 
    e_search("status: active?good")    # active?good contains one question mark (?). You do not need to enclose the value in double quotation marks (""). 
    e_search("status== ac*tive?good")  # The query string is used for exact match. 
    
    # Escape special characters in a field value. Asterisks (*) or question marks (?) that are not used as wildcards must be escaped in a field value by using backslashes (\). 
    e_search('status: "\*\?()[]:="')  # \*\?()[]:=  contains multiple special characters. You must enclose the value in double quotation marks (""). The asterisks (*), question marks (?), and backslashes (\) in the value are escaped. 
    e_search("status: active\*test")  # active\*test contains one asterisk (*). You do not need to enclose the value in double quotation marks (""). 
    e_search("status: active\* test")   # active\*test  contains one question mark (?). You do not need to enclose the value in double quotation marks (""). 
    
    # Escape special characters in a field name
    e_search("\*\(1+1\)\?: abc")                  # You cannot enclose the field name in double quotation marks (""). You must escape special characters by using backslashes (\). 
    e_search("__tag__\:__container_name__: abc")  # You must escape special characters by using backslashes (\). 
    e_search("field name in Chinese: abc")                     # Enter the Chinese characters that comprise the field name. 
    
    # Search for strings by using regular expressions.
    e_search('content~="regular expression"')   # Search for substrings that match the regular expression. 
    
    # Numeric value comparison
    e_search('count: [100, 200]')   # >=100 and <=200
    e_search('count: [*, 200]')     # <=200
    e_search('count: [200, *]')     # >=200
    e_search('age >= 18')           # >= 18
    e_search('age > 18')            # > 18
    
    # Relational operators
    e_search("abc OR xyz")    # The relational operator is case-insensitive. 
    e_search("abc and (xyz or zzz)")
    e_search("abc and not (xyz and not zzz)")
    e_search("abc && xyz")    # and
    e_search("abc || xyz")    # or
    e_search("abc || !xyz")   # or not
  • その他のユースケース

    この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。

e_match

この関数は、ログフィールドの値が式で指定された条件を満たすかどうかを確認するために使用されます。

  • 構文

    e_match(key, regular_expression, full=True)
    説明

    ほとんどの場合、e_match関数はop_notop_and、またはop_or関数とともに使用されます。

  • パラメーター

    項目

    データ型

    必須/任意

    説明

    key

    String

    必須

    The name of the log field. 指定されたフィールドが存在しない場合、フィールドは指定された条件を満たしていません。

    For example, if the f1 field does not exist, the e_match("f1", ...) function returns False.

    regular_expression

    String

    必須

    The regular expression. If you want to match strings by using string literals, you can use the str_regex_escape function to escape characters.

    フル

    Bool

    いいえ

    完全一致を実行するかどうかを指定します。 デフォルトでは、パラメーターはTrueに設定され、完全一致を指定します。 詳細については、「正規表現」をご参照ください。

  • レスポンス

    指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

  • k1フィールドの値が数値であるかどうかを確認します。

    • Raw log:

      k1: 123
    • 変換ルール:

      e_set("match",e_match("k1",r'\d+'))
    • 結果:

      k1: 123
      match: True
  • その他のユースケース

    この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。

e_match_any

この関数は、ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認するために使用されます。 1つ以上の指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

  • 構文

    e_match_any(key1, regular_expression1, key2, regular_expression2, ..., full=True)
    説明
    • keyパラメーターとregular_expressionパラメーターはペアで指定する必要があります。

    • ほとんどの場合、e_match_any関数は、op_notop_and、またはop_or関数とともに使用されます。

  • パラメーター

    項目

    データ型

    必須/任意

    説明

    key

    String

    必須

    ログフィールドの名前。 指定されたフィールドが存在しない場合、フィールドは指定された条件を満たしていません。

    たとえば、f1フィールドが存在しない場合、e_match_any("f1", ...) 関数はFalseを返します。

    regular_expression

    String

    必須

    正規表現。 文字列リテラルを使用して文字列を照合する場合は、str_regex_escape関数を使用して文字をエスケープできます。

    フル

    Bool

    いいえ

    完全一致を実行するかどうかを指定します。 デフォルト値Trueは完全一致を指定します。 詳細については、「正規表現」をご参照ください。

  • レスポンス

    指定されたフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

  • ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認します。 1つ以上の指定されたフィールドが正規表現と一致する場合、Trueが返されます。

    • Raw log:

      k1: 123
      k2: abc
      k3: abc123
    • 変換ルール:

      e_set("match",e_match_any('k1', r'\d+', 'k2', '.+'))
    • 結果:

      k1:123
      k2:abc
      k3:abc123
      match:true
  • その他のユースケース

    This function can be used together with other functions. 詳細については、「関数を使用してデータを浄化する」をご参照ください。

e_match_all

この関数は、ログフィールドの値が正規表現で指定された条件を満たしているかどうかを確認するために使用されます。 指定されたすべてのフィールドが正規表現と一致する場合、Trueが返されます。 それ以外の場合は、falseが返されます。

  • 構文

    e_match_all(key1, regular_expression1, key2, regular_expression2, ..., full=True)
    説明
    • keyパラメーターとregular_expressionパラメーターはペアで指定する必要があります。

    • ほとんどの場合、e_match_all関数は、op_notop_and、またはop_or関数とともに使用されます。

  • パラメーター

    項目

    データ型

    必須/任意

    説明

    key

    String

    必須

    ログフィールドの名前。 指定されたフィールドが存在しない場合、フィールドは指定された条件を満たしていません。

    たとえば、f1フィールドが存在しない場合、e_match_all("f1", ...) 関数はFalseを返します。

    regular_expression

    String

    必須

    正規表現。 文字列リテラルを使用して文字列を照合する場合は、str_regex_escape関数を使用して文字をエスケープできます。

    フル

    Bool

    いいえ

    Specifies whether to perform an exact match. By default, the parameter is set to True, which specifies an exact match. 詳細については、「正規表現」をご参照ください。

  • レスポンス

    If the specified field matches the regular expression, True is returned. それ以外の場合は、falseが返されます。

    • Raw log:

      k1: 123
      k2: abc
      k3: abc123
    • 変換ルール:

      e_set("match", e_match_all("k1", r"\d+", "k2", r"\d+"))
    • 結果:

      k1:123
      k2:abc
      k3:abc123
      match:false
  • その他のユースケース

    この関数は、他の関数と一緒に使用できます。 詳細については、「関数を使用してデータを浄化する」をご参照ください。